A work sample that is the argument.
This is a deliberately over-engineered interactive resume + cover letter, built as a job-application work sample. It uses a modern TypeScript application-layer stack — Next.js, Tailwind, tRPC — while being honestly deployed on Fly.io instead of AWS. (Ask me why. Or read the ADR.)
| Tab | URL | What it is |
|---|---|---|
| Resume | / |
Data-driven CV — all content from src/data/resume.ts |
| Cover Letter | /cover-letter |
Scrollytelling letter — content from src/data/cover-letter.ts |
| Play | /play |
Placeholder for a future Agent Orchestrator mini-game |
- Print-to-PDF: browser print with CSS that hides UI chrome and forces light colors
- Dark mode: default light (
#f5ecffbrand background), toggle persists to localStorage - Cookieless analytics: first-party pageview tRPC ping to SQLite — no third-party, no cookie banner
- OG image: branded purple card via
next/og - Vitest suite: covers sanitization, rate-limit, and data integrity
npm install
cp .env.example .env.local # Fill in values
npm run dev # http://localhost:3000npm run db:generate # Generate SQL migration from schema
npm run db:migrate # Apply migrations to ./data/app.db
npm test # Run the Vitest suite
npm run build # Production build → .next/standaloneflyctl launch(first time) — usesfly.tomlin this repoflyctl volumes create data --size 1— SQLite volumeflyctl secrets set NEXT_PUBLIC_SITE_URL=...- Push to
main→ GitHub Actions →flyctl deploy --remote-only(needsFLY_API_TOKENsecret)
Migration runs automatically on container start via scripts/start.sh → scripts/migrate.mjs.
The conventional default would be AWS. This app runs on Fly.io instead — intentionally, self-awarely, and with a documented rationale. The ADR argues the case: pick the tool that fits the workload, and be able to explain why.
This repo ships CLAUDE.md (Claude Code), AGENTS.md (cross-tool), and four ADRs as first-class deliverables — because context as infrastructure for AI agents is the discipline the role values.
- CLAUDE.md — Full architecture, commands, conventions, gotchas
- AGENTS.md — Tool-agnostic agent guidance
- docs/adr/ — Architecture Decision Records
Built by Mario Alina — June 2026