| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router, React Compiler, proxy.ts) · React 19 · TypeScript |
| Styling | Tailwind CSS 4 with CSS-first tokens · shadcn/ui primitives |
| Type | Thmanyah Sans, Serif Display and Serif Text via next/font/local |
| Data | Prisma 7 + PostgreSQL (Neon in production, local Postgres in development) |
| Validation | Zod 4, run on the server in every Server Action |
| i18n | [lang] segment (ar default, en) with JSON dictionaries |
| Docs | fumadocs-mdx + rehype-pretty-code, highlighted at build time |
| Hosting | Cloudflare Workers via OpenNext |
Design tokens
Space uses the thmanyah system re-expressed as shadcn semantic tokens in src/app/globals.css: white paper, near-black ink, one loud green (--brand), a mint companion (--brand-soft), cream and a dark surface.
Contrast
--brand is a surface colour. Never set small text in --brand on white — use --brand-ink for green text.
Fonts
The Thmanyah typefaces are bundled into the build by next/font/local, the web-embedding use their licence permits. Never link, rehost or redistribute the raw font files.