Форк https://github.com/neandreev/FreeTalk с мажорными изменениями стека:
- Create React App ==> NextJS
- Позволил имплементировать Server-Side Rendering
- Избавил от React-Router
- Изначально содержит в себе множество способов оптимизации производительности приложения
- Firebase Authentication + кастомный useAuth ==> NextAuth
- Позволяет авторизовываться через OAuth посредством встроенных провайдеров (от Google до VK)
- Остается возможность авторизовываться через почту посредством Nodemailer
- Хранение пользователей нативно встроено посредством возможности подключения адаптеров к популярным базам данных
- Firebase Database ==> Prisma + PlanetScale
- Переход с ограниченной JSON базы данных на MySQL-совместимую базу данных PlanetScale позволил более точно описать объекты предметной области, и также намного удобнее изменять и получать данные из базы данных.
- В отличие от популярных ORM, Prisma позволяет описывать модели приложения декларативно и просто (в форме Prisma Schema)
- Описывал модели приложения через Prisma, я также автоматически получаю их TypeScript типы, что приятно)
- Redux RTK Query ==> tRPC
- TypeSafe API из коробки
- Redux Toolkit ==> Zustand
- RTK Query больше не нужен, а он - очень большой довод в пользу Redux
- Zustang позволяет писать store'ы с намного меньшим boilerplate-кодом, при этом не лишая основного функционала redux
- Весит всего ~1Kb