In early 2024, I decided to build an AI SaaS product from a blank terminal. No co-founder, no funding, no team. Just a thesis: German tradespeople -- electricians, plumbers, roofers -- lose business every day because they cannot answer the phone while on a job site. An AI phone assistant could fix that. Eighteen months later, BureauFlow is live at bureauflow.de with 239+ indexed pages, a working voice AI system, and hard-won lessons about what actually matters when building from zero.
The Stack: Why Next.js 15
I chose Next.js 15 with App Router, TypeScript strict mode, and React 19. This was not an obvious choice for a solo founder -- the App Router was still stabilizing in early 2024, and the ecosystem had rough edges. But the bet paid off for three reasons:
- Server Components for SEO: Programmatic SEO pages need to be server-rendered with proper metadata. App Router's server components deliver this out of the box, with zero client-side JavaScript on landing pages.
- API routes for webhooks: Stripe webhooks, Resend webhooks, Vapi webhooks -- all handled through Next.js route handlers without a separate backend.
- Vercel deployment: Push to main, deployed in 30 seconds. With 9 cron jobs running on Vercel, the entire backend infrastructure is managed through a single platform.
The rest of the stack: Prisma ORM with Neon PostgreSQL (serverless Postgres), Auth.js v5 for authentication, Stripe for billing with proper tax handling, Resend for transactional and campaign emails, and shadcn/ui for the component layer. Total infrastructure cost: roughly EUR 120 per month.
Voice AI: The Core Product
BureauFlow's AI phone assistant is built on Vapi, which orchestrates the voice pipeline: a Twilio phone number receives the call, Vapi handles speech-to-text, sends the transcript to a large language model (Claude), gets a response, converts it to speech, and sends it back -- all in under 500ms. The caller talks to what sounds like a professional German receptionist.
The prompt engineering was the hardest part. German has formal and informal registers (Sie vs. du), compound nouns that trip up tokenizers, and trade-specific terminology that no general-purpose model handles well out of the box. I spent weeks on prompt iteration, testing with native German speakers, and building a pronunciation guide for the text-to-speech engine.
The demo number (+49 158 886 58328) is live and working. Anyone can call it and experience the AI assistant in real time. This demo-first approach -- let the product sell itself -- was inspired by my experience with partnership deals where showing, not telling, closes the deal.
Programmatic SEO: 239+ Pages
BureauFlow targets German tradespeople, which means targeting search queries like "KI-Telefonassistent fuer Elektriker in Muenchen." The problem is there are dozens of trades and hundreds of cities. Creating each page manually is impossible. Programmatic SEO is the answer.
I built a configuration file (config/seo-trades.ts) that defines every supported trade and city. A dynamic route template renders unique pages for each combination, with:
- Trade-specific headlines, benefits, and objection handling
- City-specific statistics and local references
- 9 JSON-LD schemas per page (LocalBusiness, Product, FAQPage, etc.)
- Unique meta descriptions and OpenGraph data
- Internal links to related trades and cities
The result: 239+ indexable pages, all server-rendered, all with proper structured data. Google Search Console shows steady crawl activity. The pages rank for long-tail queries that no competitor is targeting because no competitor has the infrastructure to generate them.
What Worked
Programmatic SEO was the best ROI of anything I built. 239 pages generating organic traffic for the cost of a template and a config file. If you are building a SaaS targeting specific verticals or geographies, this should be the first thing you invest in.
The fork ecosystem saved months. Instead of building everything from scratch, I forked 15 open-source repos and integrated 12 of them. The base starter template (next-saas-stripe-starter) gave me auth, billing, and dashboard scaffolding in a day. Voice providers (Pipecat, LiveKit, Vapi) each got evaluated via forks before committing.
AI-assisted development is real. I used Claude Code throughout the build. Not as a crutch, but as a co-developer. The accounting scripts, the email campaign system, the CRM -- all built in collaboration with AI. This is not a gimmick. It is a legitimate 3-5x productivity multiplier for a solo technical founder.
What I Would Do Differently
Ship a simpler v1. I built a full platform -- dashboard, admin panel, email campaigns, CRM, 9 cron jobs -- before having a single paying customer. The honest truth is that a landing page, a demo phone number, and a Stripe checkout would have validated (or killed) the idea in two weeks.
Pick a market I can sell in. BureauFlow targets German tradespeople. I do not speak German fluently. Every sales conversation required translation or a German-speaking partner. When I moved to AI voice agents for Irish real estate, where I live and speak the language, everything became easier.
Invest in outbound earlier. Programmatic SEO is a slow burn. It takes 3-6 months for pages to rank and generate consistent traffic. I should have run parallel outbound from day one -- cold email, LinkedIn, trade association partnerships -- instead of waiting for organic to kick in.
The Numbers
The Takeaway
Building a SaaS from zero taught me that the engineering is the easy part. Distribution is hard. Market selection is critical. And the best technology in the world means nothing if you cannot get it in front of the right customer at the right time. This is the same lesson I learned scaling Kreditech and across 14 years in fintech: distribution beats product, every time.
Frequently Asked Questions
What tech stack does BureauFlow use?
BureauFlow runs on Next.js 15 with React 19 and App Router, TypeScript in strict mode, Tailwind CSS with shadcn/ui components, Prisma ORM with Neon PostgreSQL, Auth.js v5 for authentication, Stripe for billing, Resend for email, and Vapi for voice AI. It is hosted on Vercel Pro with 9 active cron jobs.
What is programmatic SEO and how did BureauFlow use it?
Programmatic SEO is the practice of generating large numbers of search-optimized pages from structured data. BureauFlow generated 239+ pages targeting specific trade-by-city combinations (e.g., 'KI-Telefonassistent fuer Elektriker in Muenchen'). This is driven by a configuration file that defines trades and cities, with templates that render unique content for each combination.
How much does it cost to build an AI SaaS from scratch?
BureauFlow's infrastructure costs approximately EUR 120 per month: Vercel Pro ($20), Neon database ($19), Vapi voice AI (pay-per-minute, roughly $30-50), Resend email ($20), Stripe fees (2.9% per transaction), and a Twilio phone number ($2). The biggest cost is time, not infrastructure.
What is Vapi and how does it work for AI phone calls?
Vapi is a voice AI platform that enables building AI phone assistants. It connects a phone number to a large language model (like Claude or GPT-4o), handles real-time speech-to-text and text-to-speech, and manages the call flow. BureauFlow uses Vapi to answer calls for German tradespeople, qualify leads, and take messages.
What are the biggest mistakes when building a SaaS as a solo founder?
The three biggest mistakes are: building too much before validating demand (BureauFlow had 239 SEO pages before its first paying customer), choosing the wrong market language (building a German-language product without speaking German fluently), and underestimating the go-to-market effort relative to the engineering effort.