Crypto Fintech: 13 Apps in 70 Days
A full crypto payment platform (gateway, OTC exchange, on-chain settlement) built solo in 70 days with Spec-Driven Development. 13 apps, ~1,650 tests, production-grade with compliance.
Built solo in 70 days
- 13
- apps in production
- 3
- Fastify APIs
- ~1,650
- automated tests
- 138K
- lines of TypeScript
The challenge
Build a complete crypto payment platform: PIX payment gateway, OTC exchange, on-chain settlement on Bitcoin’s Liquid Network. End to end. Solo. Real money, real compliance. 70 days.
Not a prototype. A Turborepo monorepo of 13 apps (3 Fastify APIs, 9 Next.js frontends, a component library) on 3 isolated PostgreSQL databases, deployed to Kubernetes.
How I built it: spec first, prompt never
Every capability started as a written specification: requirements, design, tasks. Not a prompt. AI agents executed against the spec; I reviewed against acceptance criteria and shipped. When something was wrong, I fixed the spec, not the prompt. Every line of generated code traced back to a decision I made.
The delivery loop, repeated per capability
Input
A capability to ship (e.g. the settlement engine)
- 01Specify
Requirements + design + tasks written before a line of code. The spec is the contract.
- 02Generate
The agent implements against the spec, tests alongside code.
- 03Verify
Review against acceptance criteria. Wrong output means a wrong spec. Fix the spec.
Output
Merged, tested, deployed to Kubernetes
What shipped to production
In production, not a demo
- Required:Payment gatewayPIX with 4 payment providers behind a factory pattern (REST + bank-direct BACEN Cob v2 over mTLS). HMAC-SHA256 signed merchant webhooks with a 6-attempt exponential backoff queue; per-charge idempotency keys.
- Required:OTC exchange engineRolling 24h VWAP once ≥5 confirmed trades exist; cross-rate from 5 market sources aggregated by median + outlier filtering; asymmetric per-pair spreads. All money math in 8-decimal integers (satoshi precision), no floating point.
- Required:On-chain settlement engine10s deposit polling, 2-block confirmation, tolerance-based auto-refund (>10% deviation), a $10K auto-settle cap that overflows to manual approval, 3-phase atomic commit, and crash recovery for settlements stuck mid-flight.
- Required:OAuth 2.1 / OIDC auth server5 roles, 19 scopes, 18 granular permissions, TOTP 2FA, JWKS-verified JWTs, and machine-to-machine client-credentials with row-level scoping.
- Required:Platform & operationsKubernetes on managed DOKS (HPA 2-10, non-root hardened pods), Terraform IaC, and Prometheus/Grafana/Loki with 23 custom business metrics.
The spec is the multiplier
The more capable the model, the further it runs in the wrong direction on a vague instruction. The spec is what points it right, and what lets one person ship a 13-app platform in 70 days.
The secret was never the AI. It was the specification. I wrote up the full Spec-Driven Development case study: the method, the spec corpus, and the honest limits.
Stack
- TypeScript
- Fastify 5
- Next.js 16
- React 19
- PostgreSQL
- Drizzle ORM
- Redis
- BullMQ
- Turborepo
- Kubernetes (DOKS)
- Terraform
- Prometheus
- Grafana
- Claude Code