Phase 1.1: Monorepo Setup & Design System - Turborepo + pnpm workspaces monorepo structure - Shared packages: @yetanother/types, @yetanother/utils, @yetanother/hooks, @yetanother/ui, @yetanother/db - Radix UI primitives with custom shadcn/ui-style components (Button, Dialog, Toast, Tooltip, Tabs, Label) - Tailwind CSS v4 with design tokens (light theme) - TypeScript strict mode with composite project references Phase 1.2: Authentication & User Management - Fastify server setup with JWT auth (register, login, me endpoints) - @fastify/jwt with cookie support - User and workspace models with Prisma ORM Phase 1.3: Database Schema & Migrations - Full Prisma schema: User, Workspace, Node, NodeLink, Tag, Folder, Reminder, Embedding, Activity, Attachment, WorkspaceMember, SyncCheckpoint - pgvector extension for embeddings (vector(1536)) - Seed script for dev data - Comprehensive indexes (GIN, BRIN, B-tree) Phase 1.4: API Foundation & Middleware - Fastify REST API with versioned routes (/api/v1) - Zod request validation on all endpoints - CORS, Helmet security headers, rate limiting - Structured logging with pino-pretty - Swagger/OpenAPI docs at /docs - WebSocket support (collaboration ready) - CRUD routes: nodes, workspaces, search, auth Tooling: - ESLint 9 flat config with TypeScript parser - Prettier with consistent formatting rules - Turbo v2 task orchestration - GitHub Actions CI workflow - Husky + lint-staged pre-commit hooks
15 lines
360 B
TypeScript
15 lines
360 B
TypeScript
export const API_VERSION = 'v1';
|
|
export const API_PREFIX = `/api/${API_VERSION}`;
|
|
|
|
export const TRASH_RETENTION_DAYS = 30;
|
|
export const SYNC_DEBOUNCE_MS = 1500;
|
|
export const SEARCH_DEBOUNCE_MS = 300;
|
|
|
|
export const PRIORITY_LABELS: Record<number, string> = {
|
|
1: 'P1 - Critical',
|
|
2: 'P2 - High',
|
|
3: 'P3 - Medium',
|
|
4: 'P4 - Low',
|
|
5: 'P5 - Wishlist',
|
|
};
|