ListingForge

Case Study

Building a full-stack AI SaaS from scratch

ListingForge helps marketplace sellers create optimized listings with AI. I designed, built, and grew it solo — from first commit to 50+ daily active users through organic search and AI referral traffic.

Christopher Foote · Full-Stack Engineer · 2025–2026

footechristopher50@gmail.com · GitHub

75K+
Lines of code
50+
Daily active users
30+
AI-powered tools
6
Marketplaces

The problem

Marketplace sellers on Etsy, Amazon, eBay, Shopify, Facebook Marketplace, and Airbnb spend hours writing titles, descriptions, tags, and bullet points for every listing. Each platform has different character limits, SEO rules, and compliance requirements. Most sellers either write generic copy that doesn't rank, or pay $50+/month for tools that do one thing.

I wanted to build a single tool that handles all of it — free for casual sellers, with a paid tier for power users — and use it as a proving ground for production AI application development.

Technical architecture

Next.js 14TypeScriptTailwind CSSSupabase (Auth + DB)StripeClaude APIPostHogVercelZodZustand

Frontend

Next.js App Router with server components for SEO-critical pages (blog, tools, platform hubs) and client components for interactive tools. 168 React components with a strict design system (stone palette, backdrop blur cards, platform-specific accent colors). Dark mode throughout. Mobile-first responsive layout with a bottom navigation bar for tool access.

AI generation pipeline

Streaming API routes call Claude with marketplace-specific system prompts from a prompt library. Each marketplace has field-level character constraints enforced client-side and server-side via Zod schemas. Output includes real-time validation, SEO scoring, compliance warnings, and one-click refinement. Bulk generation supports CSV upload for batch processing.

Auth & payments

Supabase Auth with Google/email OAuth (PKCE flow). Free users get 3 generations; paid tiers managed via Stripe Checkout with webhook-driven subscription lifecycle. Server-side event capture ensures payment analytics don't depend on client-side JavaScript. Credits system with signup bonuses and usage tracking.

Analytics & observability

PostHog for product analytics with a full instrumented funnel: pageview → generate_start → generate_success → activation → checkout_start → purchase_success. Server-side capture for webhook events. Custom PostHog queries in CI workflows for automated conversion recovery and revenue monitoring.

44 API routes

Listing generation (streaming), fee calculators, compliance scanning, listing grading, review response generation, competitor analysis, Stripe webhooks, auth callbacks, email capture, drip campaigns, and usage metering. All input-validated with Zod.

Content engine & SEO

109 long-form articles covering marketplace fees, character limits, SEO strategies, and seller guides. Each article is MDX with structured data, internal linking, and embedded interactive tools (mini calculators, title generators, caption generators). Articles target high-intent keywords and link to relevant tools.

Growth results

  • 0 → 50+daily active users in 3 months, entirely organic
  • 15%of traffic from AI referrals (ChatGPT, Perplexity, Claude)
  • Top 10Google rankings for “Etsy character limits,” “Amazon referral fees,” and other seller queries
  • llms.txtstructured for AI model discovery — intent-to-tool mapping so AI assistants recommend the right tool

AI-powered development workflow

Beyond the product itself, I built an AI-assisted development pipeline that accelerates every part of the workflow:

  • 14 specialized AI agents— product strategist, SEO planner, compliance checker, human editor, UX reviewer, QA tester, design system auditor, and more. Each agent has scoped tool access and domain-specific instructions.
  • Orchestrated pipelines— a “forge” command routes tasks to the right agent sequence. Article creation runs 6 agents in sequence (research → SEO → compliance → draft → humanize → QA). Feature builds route through product strategy, implementation, design audit, and testing.
  • 10 CI/CD workflows— automated conversion recovery (PostHog → GitHub Issues), revenue snapshots, internal linking audits, broken link checks, and Stripe/PostHog sync. All running on GitHub Actions with Claude Code Action for analysis.
  • 1,455 commits— rapid iteration with human-AI pair programming. Every commit represents a decision, not just generated code.

What I'd do differently

Validate demand before building. I built a full SaaS before confirming that my traffic (reference-content readers) would convert to paid subscriptions. A landing page with a waitlist would have revealed the mismatch earlier.

Instrument from day one. I added PostHog analytics mid-project and discovered my server-side events (Stripe webhooks, auth callbacks) were silently failing because I was using a client-side SDK in server contexts. Building the analytics layer first would have caught conversion issues months earlier.

Separate content monetization from SaaS. The blog drives 58% of traffic but was only designed as a SaaS funnel. Treating it as an independent monetizable asset (affiliate, digital products) alongside the SaaS would have generated revenue sooner.

By the numbers

75,000+Lines of TypeScript
605Source files
168React components
44API routes
109Blog articles (MDX)
30+AI-powered tools
14Dev automation agents
10CI/CD workflows
6Marketplace integrations
1,455Git commits

Interested in working together?

I build production AI applications, full-stack web products, and data-driven growth systems.