I'm opening up the production source code behind FinanceAI - the AI personal-finance app I shipped across 6 phases, 45 features, and 80+ unit tests over the last year: AI Personal Finance - SaaS Starter.
This is not a shallow "auth + dashboard" starter. This is the codebase running in production: real Stripe billing (Free / Pro / Family), Supabase RLS on every table, Claude API weekly insights, multi-currency (VND / IDR / THB / USD), tax calculators (VN PIT / ID PPh 21 / TH PIT), gamification, admin analytics (MRR / LTV / churn / cohort), public API v2 + TypeScript SDK, full security baseline.
Launch price: $129 for the first 20 buyers (then $199). This post tours each piece, shows real screenshots from the live demo, and explains how many months of dev work it saves.
View live demo → · Buy launch $129 →
Why I'm opening the source instead of keeping it closed
FinanceAI shipped early 2025 and the app itself still serves real users. But SEA fintech is heating up - Indonesia, Thailand, and Vietnam all need locally-aware personal-finance apps. I don't have bandwidth to ship for all three.
Opening the source is win-win: you save 3-4 months on plumbing (Stripe + Supabase RLS + AI prompts + multi-currency + tax), I recoup dev cost, and I keep maintaining it publicly for buyers.
Read the full FinanceAI product review if you want to see how the live app actually works before buying the source.
The six features that matter most (ordered by "weeks saved")
1. Full Stripe billing - saves 3 weeks
Stripe sounds easy until production. The seven edge cases below are already solved and packaged:
- Free → Pro upgrade with correct proration (no double-charge)
- Webhook race condition when a user upgrades right after subscribing
- Dunning + 3-day grace period when a card declines
- Customer portal redirect URL switches by locale
- Family tier with multi-seat - invite link expiry
- Partial refund on mid-cycle downgrade
- HMAC signature verification - fake webhooks bounce
Each is small. Together they're three weeks of production debugging. The codebase already ships them solved.
2. Claude API weekly AI insights - saves 2 weeks
The hottest feature with users - localized system prompts per language (VN / EN / ID / TH), not one shared prompt translated post-hoc:
- Smart Forecast Engine - 3-12 month cashflow projection from transaction history
- Action Recommender - surfaces 1-3 actions for the week ("food spend dropped noticeably - keep it up!")
- Financial health score 1-10, refreshed weekly
- Anomaly detection on unusual spending
Prompt engineering for 4 languages + a cache layer + a cost cap (so a runaway loop doesn't burn $500 overnight) - that's the hard part.
3. Multi-currency + SEA tax calculators - saves 2 weeks
- Locale-aware
formatAmountfor VND, IDR, THB, USD (correct decimal/thousand separators + symbol position) - VN PIT calculator - full family-deduction + insurance handling
- Indonesian PPh 21 - 5 brackets + PTKP 54M
- Thai PIT - 8 brackets
If you only target VN that's two weeks. Target SEA and it's 2-3 months plus a tax consultant to verify each bracket.
4. Gamification engine - saves 1 week
- Streak counter + streak freeze (forgiveness pass)
- XP / level thresholds (10 levels)
- 10 badge types (first transaction, week-1 streak, save 10% income, …)
- Fire-and-forget award pipeline - never blocks the main request
In our test cohort, the gamified group had 40% higher active rate than the non-gamified one. This is "easy to copy, hard to get right" - small UX details like the award sound and the streak-burn animation matter more than the engine logic.
5. Admin analytics + investor reporting - saves 2 weeks
For when you raise or report to a mentor:
- MRR / LTV / churn / cohort LTV heatmap dashboard
- Onboarding funnel events with daily cron snapshots
- One-click investor PDF export via jsPDF (cover + 6 charts + footnote)
The cohort LTV heatmap is the highest-value piece - external tools (Mixpanel, Amplitude) get it wrong because they don't understand Stripe edge cases, so you have to build it yourself.
6. Public API v2 + TypeScript SDK - saves 1 week
- Batch transaction import (100/call) - for users automating their own pipelines
- Webhook event filtering with HMAC signature
- Rate-limited usage stats endpoint
- Typed
FinanceAIClientSDK with 429 auto-retry + exponential backoff
Security baseline - not an afterthought
For a fintech app, security is the first layer, not the last:
- Content-Security-Policy - explicit allowlist, not
default-src * - Centralized rate-limit middleware (no per-route improvisation)
- Supabase RLS on every table - RLS policies tested in Vitest, not just eyeballed
- Webhook HMAC verification - fake Stripe webhooks bounce
- Security headers: X-Frame-Options DENY, COOP, COEP, Strict-Transport-Security
- Audit log on every transaction mutation
I wrote a separate post on Next.js App Router SEO best practices - this security baseline pairs with that pattern.
Full stack
Next.js 16 (App Router) · React 19 · TypeScript strict · Tailwind 4 · Supabase Postgres + Auth + RLS · Stripe · Claude API (Sonnet 4.6 + Haiku 4.5) · i18next · Vitest (83+ unit tests) · Playwright E2E (5 critical flows) · GitHub Actions CI/CD · Docker multi-stage · UptimeRobot health endpoints.
Bilingual VN/EN + SEA partials (ID/TH)
Full VN/EN bilingual. Indonesian + Thai have partial coverage - categories + AI prompts + tax brackets. Core UI strings are still in English for ID/TH (extend if needed).
Browser locale + timezone auto-detect - a Vietnamese user opens the app and gets VN, a US user gets EN. No annoying flag toggle.
Hours-to-build vs price-to-buy
Indie dev rate ~$40/hour (senior fullstack):
| Layer | Build it yourself | With this template |
|---|---|---|
| Stripe billing + 7 edge cases | ~120 hours | 0 - wired |
| Claude API insights + 4 languages + cost cap | ~80 hours | 0 - wired |
| Multi-currency + 3 tax calculators (VN/ID/TH) | ~80 hours | 0 - wired |
| Supabase RLS + audit log + tests | ~60 hours | 0 - wired |
| Admin analytics + investor PDF | ~80 hours | 0 - wired |
| Public API v2 + TS SDK | ~40 hours | 0 - wired |
| Gamification + streak | ~40 hours | 0 - wired |
| Tests (unit + E2E + CI/CD) | ~60 hours | 0 - wired |
| Total | ~560 hours × $40 = $22,400 | $129 |
That $22,400 assumes the $40/hour rate and that you already know how. First-timer with Stripe webhooks or Supabase RLS? Double it.
Who should buy, who shouldn't
Buy if:
- You're building a fintech SaaS and don't want to spend the first 3 months on Stripe + Supabase + AI plumbing
- You target Vietnam or SEA - VN/ID/TH localization + tax calculators are already there
- You're an agency building a white-label personal finance dashboard for clients
- You want to learn real-world patterns: RLS done right, Stripe edge cases, production AI prompt engineering
DON'T buy if:
- You're building B2B SaaS - too many features you won't use (gamification, multi-currency)
- You're not comfortable with Next.js / TypeScript - this is a senior codebase, not a tutorial-friendly starter
- You're in VN without a Stripe entity - you'll need Stripe Atlas or a Lemon Squeezy MoR setup (the template is processor-agnostic where it matters but customer-portal flow is Stripe)
Launch deal - first 20 buyers
Launch price $129 (regular $199) for the first 20 buyers. After 20 sell, the price goes to $199 permanently.
- Single-developer commercial license - unlimited apps for you + clients you bill directly
- Six months of free updates (Next.js / React minor bumps + monthly bug fixes)
- Fourteen-day refund - if
bun install && bun devdoesn't boot on a fresh machine, refund within one business day
→ Buy launch $129 (Lemon Squeezy)
Questions before buying? Email hello@kpboards.com or read the full FAQ on the product page.