I'm rebuilding a small event business website that currently consists of plain HTML and an embedded ticket-shop page. The new version should show upcoming events with individual detail pages and image galleries, while leaving room for a self-hosted ticketing solution later. It also needs equipment-rental request forms, a small merch shop with checkout, and a backoffice where authorized users can manage events, products, variable content, and permissions. The public site will mainly be used on mobile, while the backoffice should work well on both desktop and mobile. I have about a year of professional web development experience and roughly three years of learning experience. My background is mostly PHP, JavaScript/jQuery, and SCSS, but I'd like to use this project to learn a modern stack. I initially tried Next.js with Supabase and Vercel, but relying too heavily on AI-generated code left me with a codebase I don't understand well enough to maintain comfortably. I'm considering starting over with something simpler and more deliberate. The priorities are low hosting costs—ideally free or only a few euros per month—along with EU/GDPR-friendly hosting. I don't need a general CMS for static pages; I mainly need a custom backoffice for managing events, products, galleries, and other changing data. What stack would you choose for this project, and why?
5 Answers
A Laravel-based application with Filament for the backoffice would be a strong fit. It matches your existing PHP experience, has excellent documentation, and is straightforward to deploy on an inexpensive European VPS such as one from Hetzner. Filament can provide resource management, forms, tables, authentication, and permissions without forcing you to build the entire admin area yourself. For interactive frontend pieces, Alpine.js, HTMX, or Livewire can cover most needs without introducing a large client-side application. For the shop, use a mature Laravel commerce package rather than implementing product variants, stock, orders, and checkout from scratch. Stripe Checkout is also a practical option for payments, with webhooks updating order status in your database.
For a small project, a relatively simple server-rendered setup would be enough: vanilla JavaScript on the frontend, Node.js with Fastify on the backend, and SQLite for the initial database. It can be hosted cheaply on a shared server or small VPS and should comfortably handle modest traffic. This keeps the architecture easy to inspect and avoids adding a separate frontend framework unless the site actually needs one. If the project grows substantially, you can move to a more robust database and hosting setup later.
The original Next.js and Supabase combination isn’t inherently a bad choice, but the maintainability problem is a warning that the architecture and development process were too opaque. Starting over with a stack closer to your existing skills may be more productive than switching to another trendy combination. Whichever stack you choose, define the data model and business rules first, keep payment logic behind server-side endpoints, use provider webhooks to confirm orders, and avoid generating code you can’t explain or test.
If the people managing the site need a conventional content-management interface, WordPress with WooCommerce is worth considering. It is inexpensive to host in Germany, and your PHP, JavaScript, and jQuery experience would make customization relatively approachable. That said, if you mainly want a purpose-built backoffice for events and products—and you want full control over the design—a custom Laravel application may be cleaner than adapting WordPress. Another reasonable split is to build the event and rental site yourself and use Stripe Checkout or a hosted shop for merchandise instead of owning all of the commerce logic.
You could also keep the public-facing site very lightweight with Hugo and Alpine.js. That would make event pages and galleries fast on mobile and inexpensive to host. However, the rental workflow, authenticated backoffice, permissions, product management, and checkout are the parts that need careful design. A static-site generator alone won’t solve those requirements, so you’d still need a backend service or separate application for the dynamic features.

I’m not looking for a general CMS for the normal pages. I mainly need a custom backoffice where users can create and edit events, galleries, products, and other changing content while I keep control over the public design.