Этот проект представляет собой SPA (Single Page Application) для управления блогом. Цель: Продемонстрировать навыки построения масштабируемой архитектуры с использованием современного стека React, разделения серверного и клиентского состояния, а также надежной валидации данных.
Статус: 🟢 Ready for Review (MVP)
- Smart Data Fetching: Использование SWR для кэширования, ревалидации и оптимистичного UI.
- State Management: Гибридный подход. SWR для серверного состояния, Zustand для клиентского (фильтры, UI).
- Serverless Backend: Полная интеграция с Google Firebase (Firestore).
- Type Safety: Строгая типизация на всех уровнях (TypeScript + Zod).
- Forms: Управляемые формы с валидацией через React Hook Form.
| Слой | Технологии |
|---|---|
| Core | React 18, Vite, TypeScript |
| Data Fetching | SWR (Stale-While-Revalidate) |
| State Manager | Zustand |
| Backend / DB | Firebase Firestore |
| Validation | Zod, React Hook Form |
| Styling | Tailwind CSS, Lucide React (Icons) |
| Routing | React Router v6 |
-
Клонирование:
git clone <your-repo-link> cd react-blog-kit
-
Установка зависимостей:
npm install
-
Настройка окружения: Создайте файл
.envв корне и добавьте ключи Firebase (см..env.example). -
Запуск:
npm run dev
Проект следует принципу FSD (Feature Sliced Design).
src/shared— Общие компоненты и утилиты.src/features— Функциональные компоненты.src/pages— Страницы.src/entities— Сущности.src/widget— Виджеты.