The brief
A fintech startup came to us with a working Bubble.io prototype and a hard deadline: they needed a production-grade web application in six weeks to demonstrate to investors at a pre-scheduled pitch. The prototype covered core flows but had no API, no proper auth, and couldn't handle concurrent users.
The constraints were real: six weeks, two engineers from our side, one product owner from theirs, no extensions.
Week 1–2: architecture and auth
We resisted the urge to start building features immediately. The first two weeks were entirely infrastructure: Next.js App Router for the frontend, a lightweight Node.js/Fastify API, PostgreSQL on Supabase (managed, no ops burden), and Clerk for auth.
Clerk was a deliberate trade-off. Rolling our own auth would have taken a week; Clerk took a day and gave us MFA, social login, and a solid session model out of the box. At this stage, buying time is worth the vendor dependency.
We also set up CI/CD on day two — GitHub Actions deploying to a staging Vercel environment on every push. Fast feedback loops are non-negotiable on tight timelines.
Week 3–4: core feature build
We ran two-day sprints with a daily async standup. The product owner triaged every feature against a simple criterion: "Does this need to exist for the investor demo?" Everything else went into a post-launch backlog.
The hardest technical problem was real-time data: the product involved a live dashboard that needed to reflect transactions as they happened. We used Supabase Realtime (Postgres logical replication over WebSockets) rather than building a polling layer. It added half a day of setup and eliminated a whole class of stale-data problems.
Week 5: hardening
Feature freeze at the start of week five. The rest of the week was error handling, loading states, mobile responsiveness, and load testing. We used k6 to simulate 200 concurrent users — the system held without issue. We added Sentry for error tracking and set up basic uptime monitoring.
Week 6: rehearsal and launch
We ran the investor demo scenario five times with the product owner, fixing every friction point. Production deploy happened on day 38. The client had two days of buffer before the pitch.
The pitch went well. The startup secured its seed round. They came back to us six weeks later to continue building.
What made it work
- Ruthless scope control — the product owner had authority to cut, and used it.
- CI/CD from day one — no "works on my machine" problems at launch.
- Buying time with managed services (Supabase, Clerk, Vercel) — premature infrastructure is a timeline killer.
- Feature freeze one week before deadline — hardening is not optional.