Культура и исскусство
Октябрь 2026
«Алхимия» продаёт аудиоконтент. Клиенту нужен был не обычный интернет-магазин, а платформа, где покупатель находит запись в каталоге, оплачивает её и сразу слушает во встроенном плеере, а купленное остаётся в личной библиотеке. Команде клиента нужна админ-панель, чтобы самостоятельно вести каталог, заказы и контент главной страницы.
Архитектуру определили два требования. Аудиофайлы являются платным товаром, и прямые публичные ссылки на них недопустимы. Дизайн подготовлен в Figma, и витрина должна совпадать с макетом без отступлений.
Мы разрабатываем проект целиком: серверную часть, витрину для покупателей и админ-панель.
Каталог состоит из товаров, категорий и тегов. Аудиофайлы хранятся в AWS S3 без публичного доступа: для прослушивания сервер выдаёт временную подписанную ссылку, которая перестаёт работать через короткое время. При загрузке трека система сама считывает длительность и теги из файла, контент-менеджеру не нужно вводить их вручную.
Поверх каталога работают плеер, личная библиотека и избранное. Покупка устроена привычно: корзина, заказ с позициями, оплата. Покупатель слушает записи там же, где их купил, и не уходит в сторонние сервисы. На основе каталога и покупок работают рекомендации, покупатели оставляют отзывы.

Витрина написана на Next.js 16 и React 19 и свёрстана по макету из Figma. Цвета, шрифты и сетка перенесены из переменных Figma в дизайн-токены Tailwind, поэтому новые экраны собираются из тех же значений и интерфейс остаётся единообразным. Код витрины организован по Feature-Sliced Design, границы слоёв проверяются автоматически. Есть тесты на Vitest и Playwright, линтеры и форматирование проверяются перед каждым коммитом.

В админ-панели команда клиента загружает треки в хранилище, ведёт каталог, категории и теги, смотрит заказы и оплаты, модерирует отзывы и меняет слайды на главной странице. Там же сводная статистика. Права доступа разделены по ролям через CASL.
API построен на NestJS с Fastify, данные хранятся в PostgreSQL, Redis используется для кеша. Входящие данные проверяются схемами Zod, по тем же схемам генерируется документация API в Swagger, поэтому описание API не расходится с кодом. Письма пользователям уходят через Mailgun, регулярные задачи выполняет встроенный планировщик, пароли хранятся в виде хешей bcrypt.
Платформа развёрнута на боевом окружении. Реализованы каталог, прослушивание, личная библиотека и избранное, корзина, заказы, оплата, рекомендации и отзывы, а также админ-панель для управления контентом и продажами. Платный контент защищён: файлы недоступны напрямую и открываются только по временным ссылкам.
Проект в активной разработке.

Технологии: NestJS, Fastify, TypeORM, PostgreSQL, Redis, AWS S3, Next.js 16, React 19, Tailwind CSS, HeroUI.