Перейти к содержимому
Catshredia
← К портфолио

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 для БД)
DevOpsCI (lint/test/build), скрипты бэкапа, health check, cron для отложенных постов

Результат

Готовый к продакшену продукт с 7 из 8 этапов ТЗ
Единая точка входа для работодателя: блог + портфолио + резюме + контакты
Удобное управление контентом: админка с интуитивным редактором и превью
Безопасность: rate limit, Turnstile, разделение прав доступа
Производительность: SSR, оптимизированные изображения, cursor pagination
Поддержка тем: светлая / тёмная / системная
Лёгкий деплой: Docker Compose, документация по Nginx и SSL