Mohamed BardouniProduct Engineer

Ubuntu Bags: A Static Storefront with a Separate Admin

An e-commerce store for luxury handbags: product catalogue, cart, wishlist, reviews, and editorial content about the artisans, with an admin panel and a separate backend.

Next.js 14Laravel 12FilamentStripe
Ubuntu Bags: A Static Storefront with a Separate Admin

Context

A small store has no operations team. If product listings depend on an API call at every visit, any backend hiccup becomes an empty shop in front of a customer. The storefront had to survive the service behind it going down.

Scope I disclose publicly

  • A statically exported Next.js storefront that reads a catalogue file generated at build time, not fetched per visit.
  • A Laravel 12 backend owning products, orders, reviews, wishlists, and accounts, with Filament for administration.
  • A separate Node service for the Stripe integration, isolated from both the backend and the storefront.
  • An explicit fallback ladder in the catalogue fetch script: the live API, then the last committed generated file with a warning, then a loud build failure if neither exists.

Decisions and trade-offs

  • The catalogue is fetched at build time rather than at request time, which decouples storefront uptime from API uptime.
  • Failing the build rather than shipping an empty catalogue: a shop with no products is worse than a failed deploy, and the silent failure is the one worth preventing.
  • Payments live in their own service, so payment logic never mixes with catalogue logic or the admin panel.
  • Filament for administration and Next.js for the customer: two surfaces, two very different users, each with the right tool.
  • The trade-off: a product change needs a rebuild and a deploy instead of appearing immediately.

I show no public link for this project, because the domain was not reachable for inspection when this page was written. What is offered here is a technical description of an architecture I built and deployed — not a link you cannot check.

Disclosure: I publish no sales figures, order counts, or conversion rates.

Need something similar?

Send me the problem, the users, and the expected scope.