Background
Leila had been doing content strategy consulting for three years and had a clear picture of what content marketers needed: an AI writing tool that understood brand voice, enforced style guidelines, and tracked how much of the AI-generated content was actually used. She'd validated the idea with five clients before writing a line of code. The technical risk wasn't the product — it was everything around the product. Stripe pricing tiers with per-user credit limits, a customer portal for self-serve plan changes, magic link auth for a non-technical user base, and landing pages that ranked for the right keywords. She'd built SaaS products before and knew those pieces would cost her two to three weeks before she could touch the editor.
The challenge
Leila needed a billing setup that wasn't a toy: three tiers (Free, Pro, Team) with different AI credit allowances, per-user credit consumption tracked against the current plan, automatic enforcement when limits were hit, and a Stripe customer portal so users could upgrade, downgrade, and manage payment methods without emailing her. She also needed auth that worked for non-technical marketers — magic links, no password friction — and a landing page she could customize without designing from scratch. Building any one of these from scratch was tractable. Building all three before touching the product was not.
How they built it
Billing infrastructure live in a day
Leila configured the three-tier Stripe integration on day one: Free (50 AI credits/month), Pro (500 credits), and Team (2,000 credits with seat management). The webhook handler, subscription portal, plan enforcement middleware, and Stripe checkout flow were all pre-wired. She updated the product IDs in the environment config, adjusted the plan names in the billing constants, and tested a checkout flow end-to-end in about four hours. On previous projects, the same work had taken her three to four days — mostly debugging webhook signature verification and idempotency edge cases.
Per-user AI credit metering from the start
DraftIQ charges by AI credit — one credit per generation request. Leila used the built-in usage metering to track per-user consumption and wired the plan enforcement middleware to her AI generation endpoints. When a user hit their monthly limit, the middleware blocked the request and returned the correct response before the AI call was made. No credits wasted, no surprise overages. The metering also fed the admin analytics view — she could see which users were hitting limits and prioritize them for upgrade conversations.
Magic link auth tuned for a non-technical audience
DraftIQ's users are content marketers, not developers. Password reset flows and OAuth prompts create friction for this audience. Leila enabled magic link auth as the primary method — users enter their email and get a login link, no password required. The Better Auth integration had magic links pre-configured. She updated the React Email template with DraftIQ branding, tested the flow on a staging environment, and deployed it in under two hours. User feedback consistently mentioned that onboarding felt 'frictionless.'
Landing page and programmatic SEO from day one
Leila wanted to rank for keywords like 'AI writing tool for marketers' and 'brand voice AI assistant' before launch. She used ShipAI's landing page system — 24 landing sections, programmatic SEO routes, JSON-LD schema, and dynamic sitemap — as her starting point. She customized the hero copy, pricing section, and feature callouts for DraftIQ's audience in about a day. The SEO page templates let her create use-case-specific landing pages for 'AI content brief generator' and 'AI brand voice checker' without building new page templates. Both were indexed and returning organic traffic within the first two weeks.
Outcomes
First paying customer on day 8
The first paid Stripe subscription arrived 8 days after Leila started building — before she'd planned to do a public launch.
Billing and metering live in under 6 hours
Three pricing tiers, per-user AI credit tracking, plan enforcement middleware, and a working Stripe customer portal — fully operational on day one.
Organic traffic within 2 weeks of launch
Two programmatic SEO landing pages targeting specific content marketing use cases were indexed and returning organic search traffic within 14 days of going live.
Zero billing support requests in month one
Every plan change, upgrade, and payment method update in the first month was handled by users directly through the Stripe customer portal — no email requests to Leila.
In their own words
The thing I keep telling other solo founders is that the billing layer is deceptively expensive to build correctly. Not in hours, in decisions. What happens when a webhook fires twice? What happens when a user upgrades mid-cycle? What happens when a card declines on renewal? All of those are handled. I didn't make a single billing-related decision in my first sprint. That's why I had time to build the editor.
“I had three pricing tiers, per-user AI credit metering, and a Stripe customer portal live before I wrote a single line of product code. That kind of infrastructure usually takes me two weeks. Doing it in a day meant I could spend the rest of the sprint on the actual editor — the thing users pay for.”
— Leila Mansouri
Frequently asked questions
How did Leila set up the three-tier billing for DraftIQ?
The billing configuration lives in a constants file where plan names, Stripe product IDs, and feature flags are defined. Leila updated the product IDs from her Stripe dashboard, set the credit limits per tier in the metering config, and the plan enforcement middleware automatically applied the correct limits based on the user's active subscription.
How does the AI credit metering prevent overage?
The usage metering middleware runs before each AI generation request. It reads the user's current month consumption from the database, compares it against the plan's credit allowance, and blocks the request with a 402 response if the limit is reached — before any API call is made to the AI provider. Leila configured a 90% usage notification email using the React Email template so users get a heads-up before hitting the wall.
Can the programmatic SEO pages be customized for different audiences?
Yes. The SEO page templates use a data-driven structure — each page is defined by a content object with headline, description, features, and FAQ data. Leila created new use-case pages by copying the template and changing the content object, with no new component code. The JSON-LD schema, canonical URLs, and sitemap entries are generated automatically from the page data.