Repository navigation
Home
Full-stack colour palette app and a small community (v5.0): accounts own palettes, a public feed shows what people publish, and you can fork anyone's palette or import colours from an image, a Figma file or a Pinterest board. Solo portfolio project built to a production bar: httpOnly-cookie auth with CSRF, an async FastAPI backend on PostgreSQL, Redis-backed rate limiting, OAuth import tokens encrypted at rest, a dark theme, encrypted secrets, and continuous delivery to a live server.
Live demo: palettes-app.com · Changelog · Roadmap
React + TypeScript → Fetch API → FastAPI (async) → PostgreSQL

| Home — the community feed | Admin — colour-row editor | Export — PNG preview |
|---|---|---|
![]() |
![]() |
![]() |
- Setup — run the stack locally with Docker.
- Architecture — ER model, request path, auth flow (Mermaid diagrams).
-
API Reference — versioned, paginated
/api/v1.
| Area | Page |
|---|---|
| System design & diagrams | Architecture |
| HTTP endpoints | API Reference |
| Auth (cookies + CSRF + refresh) | Authentication |
| Schema & migrations | Database |
| Ship to the VM | Deployment |
| Health, Sentry, backups | Operations |
| Encrypted secrets (SOPS + age) | Secrets |
| Local dev setup | Setup |
| Common issues | Troubleshooting |
| Repo hygiene | Git Cleanup |
Frontend React 19 · TypeScript · Vite · vanilla-extract · TanStack Query · React Router (code-split) · self-hosted fonts · Vitest · Playwright · Lighthouse CI · Sentry Backend FastAPI (async) · SQLAlchemy 2.0 · PostgreSQL 16 (JSONB + GIN) · Alembic · Argon2id · Redis · slowapi Infra Docker Compose · nginx · GHCR · GitHub Actions CI/CD · CodeQL · Dependabot · Cloudflare + Caddy · SOPS + age
This wiki mirrors the in-repo
docs/. The repo docs are the source of truth; edits should land there first.


