Выбранный стек для проекта

Во время написания архитектуры мы с агентами выбрали следующий стек:

Next.js — основа приложения. Так как в проекте много теоретической информации, важно чтобы было хорошее SEO. Next позволяет собирать страницы на бэкенде, что важно для скорости загрузки и поисковиков. Ну и лишнего JS в бандле не будет.

tRPC + TanStack Query — типобезопасный API. Сервер и клиент говорят на одном TypeScript, никаких разъехавшихся схем. TanStack Query берёт на себя управление кэшом, состояние загрузки и другими плюшками.

Drizzle ORM + PostgreSQL — надёжная база данных и ORM для неё. Плюс Drizzle позволяет типизировать таблицы через TypeScript.

Auth.js — Telegram OAuth + Magic Link. Пользователю не нужен пароль — либо кликнул в письме, либо вошёл через Telegram. Авторизация нужна будет для сохранения прогресса. В остальном приложение и без логина будет работать.

Zod — единственный инструмент валидации во всём проекте. Одна схема для всего: API, формы, импорт упражнений.

shadcn/ui + Tailwind CSS v4 — готовые элементы интерфейса: кнопки, карточки, меню. Tailwind для точечной стилизации элементов.

Помимо стека — закрыли первую сторю. Развернули проект, настроили Docker из трёх сервисов (приложение, PostgreSQL, nginx), подключили все нужные библиотеки, добавили тестовый стек и написали CLAUDE.md — документ соглашений для ИИ-агентов, чтобы каждый следующий работал по одним правилам.

Наконец-то добрались до кода 😊