When I set out to build RepuTrack, the goal was simple: ship something real. Not a demo. Not a prototype. A production SaaS with authentication, payments, a real integration (Google Business Profile), and an actual target customer who would pay for it.
Here's how I did it in one week.
The idea
CPAs and attorneys live or die by their online reputation, but most of them have no system for managing Google reviews. They get a notification, maybe reply, maybe not — and never look at the big picture. RepuTrack gives them a clean inbox, response templates, and a daily sync with Google Business Profile.
The vertical has high willingness-to-pay and weak incumbents charging $299+/month for mediocre tools. I anchored at $59 and $129.
The stack
I reached for what I know works:
- Next.js 16 App Router — because the server components + metadata story is the best in the ecosystem for a SaaS landing + dashboard in one project
- Supabase — Postgres + auth in one service, RLS handles the multi-tenant security model
- Stripe — subscriptions, checkout, billing portal, webhooks
- Upstash Redis — rate limiting on the API routes
- Google Business Profile API — OAuth2, the review sync, the reply endpoint
The hardest part
Google's OAuth scope for Business Profile is not in the standard Google Auth library defaults. I burned three hours on the right scope string (https://www.googleapis.com/auth/business.manage) and the token refresh flow. Once that was working, the rest was plumbing.
Lessons
Ship the scary thing first. I did the GBP OAuth integration on day one. Everything else — auth, Stripe, the inbox UI — felt easy after that.
RLS is worth the upfront cost. Writing the Supabase Row Level Security policies before touching the UI meant I never had a "forgot to filter by user" bug.
Vercel + Supabase = zero DevOps. I deployed, set the env vars, and the app was live. No servers to manage.
RepuTrack is live at reputrack.vercel.app. Pricing starts at $59/month.