Sladkoru
Интернет-магазин турецких сладостей с админ-панелью.
Next.jsReactTypeScriptZodTailwind CSSshadcn/ui
Решение
- Собрал монорепозиторий на pnpm workspaces с общим пакетом контрактов (Zod-схемы + типы) — единственным источником правды для DTO, которые использует фронтенд.
- Разделил Next.js App Router на публичную витрину (RSC, кеширование) и защищённую админку, у каждой — своя стратегия загрузки и рендеринга данных.
- Сделал админ-интерфейс: CRUD для товаров и категорий с ручной сортировкой и featured-слотами, загрузку и конвертацию изображений в WebP через sharp, Notion-подобный блочный редактор для статей, модерацию пользовательского контента.
- Настроил SEO-модуль с генерацией метаданных и структурированных данных и точечную инвалидацию кеша страниц по тегам при изменении каталога.
- Собрал типобезопасный слой доступа к API: фабрика клиентов с отдельным классом ошибок и Zod-валидацией ответов для каждого ресурса, одинаково для JSON и загрузки файлов.