Full product lifecycle: GPU media pipeline, payments, reliability
Swapzy
A face-swap video generator: pick a GIF, add a face, get a shareable clip — with a GPU fleet, queue, and spend model built to survive real traffic.
- Role
- Sole engineer, designer, and operator
- Year
- 2026
- Status
- Live
- Live
- Visit site
- Python / FastAPI
- React / Vite
- FaceFusion + ComfyUI (GPU)
- AWS EC2 GPU Auto Scaling + SQS
- RDS PostgreSQL / ElastiCache
- Cognito / WAF / CloudFront
- Stripe
- AWS CDK / GitHub Actions OIDC
7m 25s
RDS restore drill (recovery time)
2026-04-18 · Chaos drill against a 30-minute RTO target
Challenge
Face-swap video is a generative-media problem, not a CRUD app. Each job needs a GPU, takes seconds to minutes, can fail, and costs real money per second of compute. Build it naively and it either melts the budget sitting idle or makes users wait behind a cold queue. The product had to feel instant to a first-time visitor while staying economically sane at near-zero traffic.
Process
The pipeline is fully asynchronous: an upload triggers an S3 event to SQS, a GPU worker runs FaceFusion (with ComfyUI as a second engine for stylized swaps), and the result is delivered through CloudFront. The API runs on a multi-AZ Auto Scaling Group; the GPU worker fleet scales on queue depth and runs on Spot instances. I hold the fleet at a minimum of one warm worker so a new user’s first job never waits behind a cold start — a cost-versus-latency tradeoff I decided with the math written down.
I treated security and reliability as first-class. GitHub Actions deploys via federated OIDC with no stored keys and tag-scoped SSM; the runtime database user is DML-only, separate from the migration owner; an append-only, hash-chained audit log is anchored hourly to S3 Object Lock in WORM mode. The system carries 21+ CloudWatch alarms, and I validated it through a chaos-drill campaign I designed, including a database restore measured at 7 minutes 25 seconds against a 30-minute target. A Stripe-billed Pro tier and an admin-gated entitlement system are built and verified end-to-end on production.
Result
Live in an audience-scoped soft launch (friends-and-family beta) at swapzy.co. The generative pipeline, payments, and reliability engineering are all built and proven; I deliberately hold the product in restricted beta rather than opening it to the public. It is the one project in the portfolio running a GPU generative-media workload as its core, with the distinct architecture and economics that implies.