← К портфолио
Catshredias-Blog
Next.js 16 (App Router)React 19TypeScriptPostgreSQL 16Prisma 6DockerNginx
Описание
Персональный сайт-визитка с блогом, портфолио, библиотекой книг и админ-панелью.
Проблема
- Необходимость в едином персональном пространстве для презентации навыков, блога и библиотеки, вместо разрозненных ресурсов.
- Отсутствие гибкой админ-панели с поддержкой Markdown, черновиков и отложенной публикации.
- Потребность в модерации контента: система жалоб на комментарии, защита от спама.
- Требование к масштабируемости: развёртывание на VPS рядом с другим проектом (Runews) без конфликтов портов.
- Необходимость автоматизации: бэкапы БД, health checks, CI/CD.
Решение
| Компонент | Реализация |
|---|---|
| Архитектура | Next.js 16 (App Router) + Route Handlers + Server Actions |
| Аутентификация | Auth.js v5 (JWT), роли USER/ADMIN, OAuth (опционально) |
| Контент | Markdown-редактор с автосохранением, загрузкой изображений, черновики |
| Блог | Infinite scroll, фильтры по категориям/тегам, поиск, SEO (OG, JSON-LD) |
| Портфолио | Кейсы «Проблема → Решение → Результат», фильтры по стеку, PDF-резюме |
| Библиотека | Статусы книг, рейтинги, теги, привязка отзывов к постам |
| Комментарии | Только для авторизованных, жалобы, Cloudflare Turnstile (опционально) |
| Админка | Полный CRUD, настройки сайта (hh.ru, «Ищу работу»), управление жалобами |
| Деплой | Docker standalone, Nginx на VPS, разделение портов (55433 для БД) |
| DevOps | CI (lint/test/build), скрипты бэкапа, health check, cron для отложенных постов |
Результат
✅ Готовый к продакшену продукт с 7 из 8 этапов ТЗ
✅ Единая точка входа для работодателя: блог + портфолио + резюме + контакты
✅ Удобное управление контентом: админка с интуитивным редактором и превью
✅ Безопасность: rate limit, Turnstile, разделение прав доступа
✅ Производительность: SSR, оптимизированные изображения, cursor pagination
✅ Поддержка тем: светлая / тёмная / системная
✅ Лёгкий деплой: Docker Compose, документация по Nginx и SSL