Skip to content

Сайт-сервис для перевода, изучения и повторения иностранных слов

License

Notifications You must be signed in to change notification settings

neandreev/FreeTalk-NextJS

Repository files navigation

FreeTalk

Code Climate maintainability CodeFactor Grade GitHub last commit

Сайт-сервис для перевода, изучения и повторения иностранных слов.

PageSpeed

screenshot

Форк 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

About

Сайт-сервис для перевода, изучения и повторения иностранных слов

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published