DEV Community

Cover image for Idea to Deployed MVP: MicroSaaSBot's Complete Workflow
Chudi Nnorukam
Chudi Nnorukam

Posted on • Edited on • Originally published at chudi.dev

Idea to Deployed MVP: MicroSaaSBot's Complete Workflow

Originally published at chudi.dev


"I want to build something that converts bank statements to spreadsheets."

Seven days later, StatementSync was live. Users could sign up, upload PDFs, and download Excel files. Stripe was processing payments.

Here's exactly how that happened.

The Starting Point

Input: A problem statement.

"Freelance bookkeepers spend 10+ hours per week manually transcribing PDF bank statements into spreadsheets. Existing tools either charge per file ($0.25-1.00 each) or require proprietary software integrations."

That's it. No spec document. No wireframes. No architecture plan.

MicroSaaSBot takes it from here.

Phase 1: Validation (Day 1-2)

The Researcher agent investigates whether this is worth building.

Day 1: Market Research

Activities:

  • Web search for existing solutions
  • Competitor pricing analysis
  • User pain point research (forums, Reddit, reviews)
  • Market size estimation

Findings:

  • TextSoap: $0.50/file, professional but expensive
  • HappyFox: $0.25/file, complex setup
  • Zapier connectors: $1.00/file, requires technical setup
  • Manual OCR tools: Free but 60-80% accuracy

Day 2: Scoring and Persona

Validation Score: 78/100

  • Severity: 24/30 (daily pain, hours wasted)
  • Frequency: 16/20 (constant for active bookkeepers)
  • Willingness to Pay: 22/30 (already paying competitors)
  • Competition: 16/20 (clear differentiation opportunity)

Persona:

Freelance bookkeepers processing 50+ bank statements monthly for multiple clients. Tech-comfortable but not developers. Currently using per-file tools or manual transcription.

Differentiation Path:

Flat-rate pricing ($19/month unlimited) vs per-file competitors. Simple drag-drop interface vs complex workflows.

Score: 78 > 60. Proceed to Architecture.

Validation Handoff Document

problem: Bank statement transcription for bookkeepers
score: 78
recommendation: proceed
persona:
  who: Freelance bookkeepers
  behavior: 50+ statements/month
  pain: 10+ hours/week manual work
  current_spend: $25-100/month
differentiation:
  primary: Flat-rate pricing
  secondary: Simple UX, high accuracy
constraints:
  - Must achieve near-zero marginal cost
  - Must support top 5 US banks
  - Must be simpler than competitors
Enter fullscreen mode Exit fullscreen mode

Phase 2: Architecture (Day 3)

The Architect agent designs the technical system.

Tech Stack Selection

Based on constraints and differentiation:

Component Choice Reasoning
Framework Next.js 15 App Router, serverless-ready
Auth Clerk Handles OAuth, fast setup
Database Supabase PostgreSQL + Storage + RLS
Payments Stripe Industry standard
PDF Parsing unpdf Serverless-compatible
Hosting Vercel Serverless, auto-scaling

Database Schema

-- Users (synced from Clerk)
CREATE TABLE users (
  id UUID PRIMARY KEY,
  clerk_id TEXT UNIQUE,
  email TEXT,
  subscription_tier ENUM('FREE', 'PRO'),
  conversions_this_month INT DEFAULT 0,
  created_at TIMESTAMP DEFAULT NOW()
);

-- Conversions (processed statements)
CREATE TABLE conversions (
  id UUID PRIMARY KEY,
  user_id UUID REFERENCES users(id),
  original_filename TEXT,
  status ENUM('PENDING', 'PROCESSING', 'COMPLETED', 'FAILED'),
  extracted_data JSONB,
  excel_path TEXT,
  csv_path TEXT,
  created_at TIMESTAMP DEFAULT NOW()
);
Enter fullscreen mode Exit fullscreen mode

Key Decisions Surfaced

Decision 1: Pattern-based vs LLM extraction?

  • Pattern-based: $0/extraction, 99% accuracy, 3-5 seconds
  • LLM: $0.01-0.05/extraction, 99.5% accuracy, 10-30 seconds

Human approved: Pattern-based (cost control for flat-rate model)

Decision 2: Flat-rate vs per-file pricing?

  • Flat-rate: $19/month unlimited, attracts heavy users
  • Per-file: $0.25-0.50/file, matches competitors

Human approved: Flat-rate (differentiation strategy)

Tech stack defined, schema complete, key decisions approved. Proceed to Development.

Architecture Handoff Document

tech_stack:
  frontend: Next.js 15 (App Router)
  auth: Clerk
  database: Supabase PostgreSQL
  storage: Supabase Storage
  payments: Stripe
  pdf: unpdf
  hosting: Vercel
features:
  - user_auth
  - file_upload
  - pdf_extraction
  - excel_export
  - csv_export
  - stripe_billing
  - usage_tracking
  - conversion_history
pricing:
  free_tier:
    conversions: 3
    batch_size: 1
    history_days: 7
  pro_tier:
    price: 19
    conversions: unlimited
    batch_size: 20
    history_days: 90
Enter fullscreen mode Exit fullscreen mode

Phase 3: Development (Day 4-6)

The Developer agent builds features incrementally.

Day 4: Core Infrastructure

Features built:

  1. Project setup (Next.js, TypeScript, Tailwind)
  2. Clerk authentication integration
  3. Supabase connection and schema migration
  4. Basic dashboard layout

Checkpoint: User can sign up, sign in, see empty dashboard.

Day 5: PDF Processing

Features built:

  1. File upload component (drag-drop, validation)
  2. PDF parsing engine (unpdf integration)
  3. Transaction extraction (pattern-based)
  4. Bank detection (Chase, BofA, Wells, Citi, Capital One)

Checkpoint: User can upload PDF, see extracted transactions.

pdf-parse failed on Vercel serverless. Native dependency issue. Switched to unpdf—2 hour debugging, then back on track.

Day 6: Export and Billing

Features built:

  1. Excel export (ExcelJS with formatting)
  2. CSV export
  3. Stripe integration (products, prices, checkout)
  4. Webhook handler (subscription status)
  5. Usage tracking (conversions per month)
  6. Tier enforcement (free vs pro limits)

Checkpoint: Full flow works—upload, extract, export, pay.

Build passes. Types compile. Core flow functional. Proceed to Deployment.

Development Handoff Document

build_status: passing
type_check: clean
features_complete:
  - auth_flow: true
  - file_upload: true
  - pdf_extraction: true
  - excel_export: true
  - csv_export: true
  - stripe_billing: true
  - usage_tracking: true
env_vars_needed:
  - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
  - CLERK_SECRET_KEY
  - DATABASE_URL
  - SUPABASE_URL
  - SUPABASE_ANON_KEY
  - STRIPE_SECRET_KEY
  - STRIPE_WEBHOOK_SECRET
Enter fullscreen mode Exit fullscreen mode

Phase 4: Deployment (Day 7)

The Deployer agent ships to production.

Morning: Infrastructure Setup

Activities:

  1. Create Vercel project
  2. Connect GitHub repository
  3. Create Supabase production project
  4. Run database migrations
  5. Configure environment variables

Afternoon: Billing Configuration

Activities:

  1. Create Stripe product ("StatementSync Pro")
  2. Create Stripe price ($19/month)
  3. Configure Stripe webhook endpoint
  4. Test subscription flow

Evening: Final Verification

Checklist:

  • [ ] Home page loads
  • [ ] Sign up flow works
  • [ ] Sign in flow works
  • [ ] File upload accepts PDFs
  • [ ] Extraction completes
  • [ ] Excel download works
  • [ ] CSV download works
  • [ ] Free tier limits enforced
  • [ ] Checkout redirects to Stripe
  • [ ] Subscription activates on success
  • [ ] Webhook updates user tier

All checks passed.

Live URL accessible. Auth works. Payments work. Deployment complete.

The Result

Day 7, 8:00 PM: StatementSync is live.

https://statement-sync-gamma.vercel.app
Enter fullscreen mode Exit fullscreen mode
  • User auth working
  • PDF processing functional
  • Stripe billing active
  • Free and Pro tiers enforced

From "bookkeepers hate transcription" to production SaaS in exactly 7 days.

The Timeline Summary

Day Phase Agent Output
1 Validation Researcher Market research
2 Validation Researcher 78/100 score, approved
3 Architecture Architect Tech stack, schema
4 Development Developer Core infrastructure
5 Development Developer PDF processing
6 Development Developer Export + billing
7 Deployment Deployer Live production URL

What Made This Possible

  1. Validation first - Didn't waste time on a bad idea
  2. Clear handoffs - Each phase knew exactly what to do
  3. Incremental checkpoints - Caught the pdf-parse issue on Day 5
  4. Focused scope - MVP only, no feature creep
  5. Human gates - Key decisions were approved, not assumed

MicroSaaSBot didn't replace thinking. It replaced the tedious execution that turns weeks into days.


Related: Introducing MicroSaaSBot | Portfolio: StatementSync

Top comments (0)