One developer, one clean full-stack app, built with Amplifier
A full-stack, multi-service app normally means weeks of scaffolding across frontend, backend, and jobs — and that speed usually comes at the cost of clean architecture and real type safety. You rarely get both.
But one real app is a counter-example.
Built by Sam Schillace + Amplifier AI, Cascade reached MVP-complete as of 2026-01-28 — a concrete, verifiable app, not a hypothetical.
So what is it made of?
A Next.js/React + TypeScript frontend, a FastAPI/Python backend with a dedicated background-jobs component, running over PostgreSQL and Redis.
That much surface area is exactly where trouble usually starts.
Frontend, API, jobs, and data — each is a place where shipping this fast normally sacrifices structure and type safety. The more services, the more corners get cut.
Cascade held the line in two ways.
Ten service modules and seven route modules keep concerns separated — disciplined layering, not a scaffolding shortcut.
Structure is half of clean. The other half is types.
The frontend runs strict TypeScript ("strict": true), and the backend wires up mypy and ruff — enforced typing and linting from day one.
Structure plus types — so what was the verdict?
"strict": true in tsconfig~90% production ready, passing 11 of 12 security tests (91.7%), on ~4,900 lines of production Python. Fast did not mean sloppy — validated by an audit, not a self-claim.
The pattern behind this is what matters.
The leverage is disciplined structure, kept human. One developer shipped a layered, typed, security-audited multi-service app — fast and clean at the same time.
Cascade is the proof; the pattern is the takeaway.
Data as of: 2026-01-28 (MVP_STATUS.md)
Feature status: Showcase / project example — Cascade at MVP-complete (~90% production ready, security-audited)
Primary source: ramparte/cascade at /home/ramparte/dev/ANext/cascade — the closest real repo matching the deck's stated architecture.
Commands run:
grep -n 'Built by' MVP_STATUS.md → line 229 "Built by: Sam Schillace + Amplifier AI"sed -n '1,40p' README.md ; grep -E '^\s{2}[a-z].*:' docker-compose.yml → frontend / backend / PostgreSQL; services postgres, redis, backendls backend/src/jobs ; wc -l backend/src/jobs/*.py → monero_monitor.py (68), phase_checker.py (54)ls -d backend/src/*/ ; ls backend/src/services ; ls backend/src/api → 8 layers, 10 service modules, 7 route modulesgrep -n '"strict"' frontend/tsconfig.json → line 7 "strict": truegrep -iE 'strict|mypy|ruff' backend/pyproject.toml → mypy≥1.8.0, ruff≥0.2.0grep -n '4,900' MVP_STATUS.md → "~4,900 lines of production Python code"head -30 MVP_STATUS.md ; grep -n '11/12' MVP_STATUS.md → MVP COMPLETE - 90% Production Ready; 11/12 security tests passed (91.7%)cat frontend/package.json → next ^14.0.4, react ^18.2.0, typescript ^5.3.3, tailwindcss ^3.4.0git -C cascade log -1 --format='%H %ai %s' ; git rev-list --count HEAD → single squashed commit, 2026-01-28Gaps / not verifiable in this repo: a per-day four-day timeline (history is a single squashed commit), per-layer AGENTS.md files (none present), three independently-deployed service containers (jobs run inside the backend package), and cloud CI/CD claims (no GitHub Actions or Azure config). The backend's mypy is configured with disallow_untyped_defs = false, so "strict typing from day one" is fully accurate only for the TypeScript frontend.
Primary contributors: Sam Schillace (human developer) + Amplifier AI (AI assistance).