Fast Without the Mess

One developer, one clean full-stack app, built with Amplifier

The Tradeoff

Every full-stack build forces the same tradeoff: ship fast, or ship clean.

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.

Cascade is a real full-stack app that was actually shipped.

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?

Built by
Sam Schillace + Amplifier AI
Status
MVP COMPLETE — 90% production ready
Dated
2026-01-28

Cascade is a monorepo spanning frontend, backend, and data.

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.

The Risk

All that surface area is where speed turns into tangled, untyped code.

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.

The backend stays clean because it is split into 8 layers.

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.

8
backend layers (api, crypto, integrations, jobs, models, schemas, services, utils)
10
service modules
7
route modules

Type safety is on from the start, across the stack.

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?

Frontend
TypeScript 5.3 — "strict": true in tsconfig
Backend
mypy ≥ 1.8.0 + ruff ≥ 0.2.0 in pyproject.toml

Cascade hit MVP-complete and passed the security audit.

~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.

90%
production ready (MVP complete)
11/12
security tests passed (91.7%)
~4,900
lines of production Python
The Pattern

AI that follows your codebase's own patterns dissolves the fast-vs-clean tradeoff.

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.

Sources

Sources & Research Methodology

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:

Gaps / 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).

More Amplifier Stories