@famin1l
Release MVP V1.0.0
Что сделано:
Frontend:
Двухшаговый редактор статей: написание контента, настройки, превью и публикация.
Rich-text на TipTap с toolbar, загрузкой изображений и редактором обложки поста.
Лента с пагинацией, сортировкой, фильтрами и страницами поиска и тегов.
Страница поста с голосованием, счётчиком просмотров и древовидными комментариями.
Публичные профили по
username: посты, комментарии, «О себе», подписки и список связей.Регистрация и вход по
emailилиusername; настройки аккаунта, профиля и безопасности.Смена пароля и
username, генерацияnicknameпри регистрации.
Backend:
REST API на Express + TypeScript с модульной структурой:
routes,controller,service,Prisma.Prisma ORM, миграции и seed; snake_case в PostgreSQL через `@map`.
JWT access + refresh-токены; middleware авторизации и роли USER / MODERATOR / ADMIN.
CRUD постов со
slug, категориями, тегами, черновиками и валидацией через Zod.Голосование за посты и комментарии; древовидные комментарии с редактированием и удалением.
Профили и подписки; rate limit на
follow/unfollowи чувствительные мутации.Подсчёт просмотров через Redis с TTL – без накрутки при повторных заходах.
Загрузка изображений с полными URL; SEO-эндпоинт для данных sitemap.
BaseRepository,asyncHandler, централизованная обработка ошибок и валидация env при старте.
Devops:
Docker Compose для
devиprod: PostgreSQL, Redis, backend, frontend, Caddy с HTTPS.Автоматические миграции Prisma при старте контейнера; корневые npm-скрипты для всего стека.
Caddy как reverse proxy: фронт на
/, API на/api/*
SEO:
Динамические
metadataи Open Graph для постов и профилей.sitemap.xml,robots.txt,manifest; серверная генерация карты сайта из API.
Комментарии
@demoRasla3657
Спасибо за альтернативный взгляд на привычные вещи.
@famin1l
Круто!