Стек · лише те, що в коді
Стек, обраний свідомо
Кожна технологія тут справді працює в цьому репозиторії, і за кожною стоїть рішення з причиною та компромісом. Жодного рядка «для резюме».
- технологій у коді
- 20
- категорій
- 6
- демо на цьому стеку
- 4
Принципи вибору
Чому саме ці інструменти — коротко, з номером запису в журналі рішень.
- 01D3
Один контракт — два рантайми
Zod-схеми з packages/contracts перевіряють запит на сервері й відповідь у браузері. Типи виводяться зі схем, тож розбіжність між фронтендом і бекендом ловить компілятор, а не користувач.
- 02D17
Canvas там, де дані швидкі
До 1 500 подій за секунду малює uPlot на canvas у requestAnimationFrame. React не перерендерюється на кожну точку, тож інтерфейс тримає частоту кадрів дисплея.
- 03D5 · D14
Нудна інфраструктура
Модульний моноліт, PostgreSQL і жодних черг, поки вони справді не потрібні. Менше рухомих частин — менше точок відмови й простіший онбординг.
- 04D6
Перевірено end to end
Vitest покриває логіку обох застосунків, Playwright проходить кожне демо на desktop і мобільному, а e2e-тести API працюють зі справжньою базою.
Увесь стек
Фільтруйте за категорією; кожна картка показує, де технологія використовується.
Next.js
ФронтендApp Router, серверний рендеринг і маршрути з префіксом локалі для індексованих сторінок.
Офіційна документаціяДе використовується
- Уся платформа
React
ФронтендКомпонентна модель для оболонки застосунку та інтерфейсів усіх демо.
Офіційна документаціяДе використовується
- Уся платформа
TypeScript
ФронтендСтрога типізація наскрізь, включно з контрактами, спільними для обох застосунків.
Офіційна документаціяДе використовується
- Уся платформа
Tailwind CSS
ФронтендУтилітарні стилі над власним шаром дизайн-токенів продукту.
Офіційна документаціяДе використовується
- Уся платформа
next-intl
ФронтендАнглійська та українська з локаллю в URL і типізованими ключами перекладів.
Офіційна документаціяДе використовується
- Уся платформа
TanStack Query
ФронтендСерверний стан, кешування та життєвий цикл запитів до API демо.
Офіційна документаціяДе використовується
uPlot
ФронтендГрафіки на canvas для дашборда аналітики та монітора реального часу; потокові графіки перемальовуються щокадру без повторного рендеру React.
Офіційна документаціяДе використовується
React Flow
ФронтендСхема-граф дослідника процесів, намальована з того самого визначення, яке виконує сервер.
Офіційна документаціяДе використовується
@hello-pangea/dnd
ФронтендПеретягування карток дашборду мишею й клавіатурою.
Офіційна документаціяДе використовується
React Hook Form
ФронтендСтан форми та звʼязка з валідацією для контактної форми.
Офіційна документаціяДе використовується
- Уся платформа
NestJS
БекендМодульний моноліт за /api/v1: один модуль на демо.
Офіційна документаціяZod
БекендОдна схема на контракт: валідація запитів на сервері та відповідей у браузері.
Офіційна документаціяOpenAPI / Swagger
БекендЗгенерована документація API за адресою /api/v1/docs.
Офіційна документаціяДе використовується
- Уся платформа
node-postgres (pg)
ДаніДрайвер PostgreSQL: стан рану і події йдуть через пул з'єднань і оновлення з версіями.
Офіційна документаціяДе використовується
ws (WebSocket)
Реальний часСерверна частина потоку реального часу, підключена через WebSocket-платформу NestJS.
Офіційна документаціяДе використовується
Vitest
ТестуванняЮніт- та інтеграційні тести для обох застосунків.
Офіційна документаціяДе використовується
- Уся платформа
Playwright
ТестуванняE2E-тести реальних маршрутів і консолі розробника.
Офіційна документаціяДе використовується
- Уся платформа
Docker Compose
ІнфраструктураВідтворюване локальне середовище: фронтенд, API, PostgreSQL і Redis.
Офіційна документаціяДе використовується
- Уся платформа
pnpm workspaces
ІнфраструктураВоркспейс, що тримає застосунки та спільні контракти в одному репозиторії.
Офіційна документаціяДе використовується
- Уся платформа
EmailJS
ІнфраструктураНадсилає запити з контактної форми з браузера через наявний сервіс EmailJS Web-Mriya.
Офіційна документаціяДе використовується
- Уся платформа
Потрібна команда з таким підходом?
Ми обираємо інструменти під задачу й пояснюємо чому. Розкажіть про свій продукт — запропонуємо стек і архітектуру.