Tech Stack
Tech stack selection by project type (static, API, full-stack, etc.). Use when creating a new project, service, or module or when choosing technologies.
Overview
Tech Stack provides strict rules for selecting technologies based on project type. When creating a new project, service, or module, the agent selects the stack automatically from a decision tree — no guessing, no inventing, no asking. The core principles are: simplicity over complexity, performance over convenience, widely adopted tools with strong communities.
Project Types and Stacks
- Static Landing — HTML, CSS, Tailwind, Alpine.js (optional). No SPA.
- Static Multi-Page — PHP, HTML, Tailwind. SSR templates. Docker required.
- Web Frontend (SEO) — Next.js, React, Tailwind, shadcn/ui, Vite, pnpm, Vitest, Playwright.
- SPA / Dashboard — Vite, React or Vue, Tailwind, TanStack Query, Vitest.
- Microservice API — NestJS, Fastify (mandatory), PostgreSQL, Prisma, Redis, NATS.
- Python API — FastAPI, uvicorn, uv, ruff, pydantic, sqlalchemy, pytest.
- AI/LLM — Python, FastAPI, uv, ruff, OpenAI/OpenRouter SDK, Redis.
Mandatory Toolchains
Python projects always use uv (dependencies), ruff (lint + format), pytest (testing). Node/TypeScript projects always use pnpm, TypeScript, eslint + prettier, vitest, playwright for E2E. Docker is required for all backend services.
Architecture Rules
- No SPA where HTML suffices
- Fastify over Express — always
- Redis as default cache
- Event-driven systems use NATS or Kafka
- PHP is for SSR/template reuse only
- No exotic libraries without justification
Infrastructure & Backups
Server backups use restic + Backblaze B2 (native backend, client-side encryption, dedup, snapshots). Database backups use per-engine tooling (pg_dump, mysqldump) piped into restic.
Dependency Version Policy
Always install the latest stable (LTS where applicable) version. If a new major has breaking changes, adapt the code — do not downgrade. Run pnpm outdated immediately after scaffold. AI hallucination guard: verify latest versions via npm view or pip index versions before specifying in config files.
Ecosystem Website Pattern
Arcanada ecosystem marketing sites use PHP 8.4 FPM (no framework), Tailwind CSS 4 (CDN), Alpine.js 3 (CDN), nginx, Cloudflare (DNS + SSL), deployed via rsync. URL-based i18n with /en/ and /ru/ prefixes.