Skip to content

Вступ ​

vibe-template — це full-stack TypeScript-монорепозиторій-шаблон: фронтенд на Vue 3, високопродуктивний бекенд на uWebSockets.js і пакет shared зі спільними контрактами (схеми, enum-и, guards, відповіді), які використовуються з обох боків. Репозиторій організовано як pnpm workspace (README.md, pnpm-workspace.yaml).

Для чого він ​

Шаблон призначений для швидкого старту production-ready SPA-застосунків: замість того щоб щоразу будувати однаковий фундамент, ви починаєте з робочого застосунку, у якому вже є:

  • Автентифікація — вхід через email, телефон (SMS) і соцпровайдери; сесії, CSRF-захист і throttling.
  • Real-time — налаштований WebSocket-шар на uWebSockets.js (оновлення в реальному часі, presence, двобічні повідомлення).
  • Push-сповіщення — серверна доставка web push.
  • PWA — фронтенд налаштований як Progressive Web App.
  • Інше — файлове сховище (S3/MinIO), транзакційна пошта, i18n, інтеграції з AI-провайдерами, моніторинг помилок і типобезпечний шар контрактів.

Готові продуктові флоу: реєстрація/підтвердження email, логін/логаут (зокрема logout-all), зміна та скидання пароля, опційна телефонна автентифікація, основа OAuth (auth/oauth/:provider/redirect і /callback), сторінка акаунта з аватаром, керування push-підписками, адмін-зона (користувачі, онлайн, база знань), AI-чат підтримки та API playground (README.md).

Кому підходить ​

  • SaaS-дашборди та продукти з акаунтами, адмін-панелі з real-time активністю;
  • PWA з автентифікацією, push і офлайн-режимом;
  • застосунки, яким із першого дня потрібні спільні контракти фронтенду й бекенду;
  • backend-only / API-сервіси: пакет frontend можна прибрати, вимкнути роздачу статики (SERVE_STATIC=false) і обробку сесій/CSRF, а для ручного тестування API використовувати api-playground.

Ймовірно, надмірний для статичних лендингів, serverless/edge-first застосунків і проєктів без автентифікації, БД та real-time.

Стек ​

ОбластьЩо використовується
APIuWebSockets.js, валідація маршрутів (arktype), WebSocket
БДPostgreSQL, Drizzle ORM / drizzle-kit 1.0.0-rc.5 (міграції + seed)
Auth/безпекаcookies, CSRF, CORS, throttling, CSP
ФронтендVue 3, Pinia, vue-router, vue-i18n, PWA, Vitest, Playwright
СпостережуваністьSentry (@sentry/node, @sentry/vue), Pino
ІнтеграціїS3/MinIO (@aws-sdk/client-s3), nodemailer, web-push, OpenAI / Mistral / xAI

Джерела: package.json, packages/backend/package.json, packages/frontend/package.json, packages/shared/package.json.

Вимоги: Node.js ^24.22.2 і pnpm >=9 (зафіксовано pnpm@9.15.0 через packageManager), TypeScript 6.0.3.

Наступний крок

Це перша сторінка маршруту «Перший день» (меню ліворуч): шість сторінок від запуску до власного проєкту. Далі — Швидкий старт: запуск локально і перший вхід.

Інші розділи ​

Автор: Олександр Блажейко · blazheiko@gmail.com