Sladkoru
An e-commerce store for Turkish sweets with an admin panel.
Next.jsReactTypeScriptZodTailwind CSSshadcn/ui
Solution
- Set up a pnpm workspaces monorepo with a shared contracts package (Zod schemas + types) — the single source of truth for the DTOs the frontend uses.
- Split the Next.js App Router into a public storefront (RSC, caching) and a protected admin area, each with its own data-fetching and rendering strategy.
- Built the admin UI: CRUD for products and categories with manual ordering and featured slots, image upload and WebP conversion via sharp, a Notion-style block editor for articles, and content moderation.
- Set up an SEO module generating metadata and structured data, plus tag-based cache invalidation whenever catalog data changes.
- Built a type-safe API-client layer: a factory of clients with a dedicated error class and Zod response validation per resource, for both JSON and file uploads.