Topmart
Topmart is an everyday e-commerce product listing site: a public storefront and a separate administrator app. The storefront is Next.js with TypeScript on the App Router. A big reason for that choice was SEO and performance; server-rendered product and billboard pages, sensible metadata, and predictable data loading from the API the admin exposes.
The admin app lives in another repository and behaves like a headless CMS plus API: the storefront consumes catalogue data from it, similar in spirit to pairing a shop front with Strapi.
Process
SEO work is mostly Next.js metadata and rendering choices. As is the norm, rendering is a mix of what fits each route: static generation where the catalogue can be resolved up front, and dynamic server rendering where IDs need a request-time fetch, so crawlers and first visits still get full HTML for product and billboard pages. A route-level sitemap.ts pregenerates /sitemap.xml from the live product and billboard IDs the API returns, alongside fixed URLs like home and cart.
Visitors browse and filter by category, size, and colour, open product detail routes, and pay through Paystack. There is no customer auth on the shop side.
Next Steps
The repos are already open source, and I am happy to take contributions, issues, and PRs are welcome.
Whenever I'm less stressed with work, I plan to build richer analytics so store owners can see more than surface-level traffic. I also want deeper page customisation, closer to what Shopify and similar platforms make easy out of the box; the trade-off I care about is that Topmart stays open source, so teams can fork and adapt without a closed ecosystem.
Including a multivendor storefront is the major milestone on the roadmap. Single-store storefronts would remain a first-class path for anyone who only needs one shop.
