All case studies
SubI logo
Productivity · SaaS

SubI

Track subscription renewals — inbox sync, reminders, and cancel links

Founder & Builder·In ProgressSaaSSupabaseNext.js

Problem

People lose money on forgotten renewals because subscriptions live scattered across email threads, bank statements, and memory — with no single place to see what bills next.

Context

Solo-built Next.js app in pre-launch. Users connect Gmail for renewal hints, confirm or edit suggestions manually, and get timezone-aware email reminders before charges — with cancel URLs stored beside each subscription.

Approach

  • Used Supabase for auth, Postgres storage, and edge functions — keeping the app serverless-friendly with Row Level Security on user data.
  • Built Gmail OAuth sync that surfaces inbox messages that look like renewals; nothing posts without explicit user confirmation.
  • Added manual subscription entry, deduplication, billing webhooks via Paystack, and Resend-powered reminder dispatch.
  • Gated the product behind a waitlist (`SUBI_PRE_LAUNCH`) while core dashboard, settings, and billing flows are finished.

Architecture

01Next.js 14 App Router
02Supabase Auth + Postgres + Edge Functions
03Gmail OAuth sync pipeline
04Paystack billing webhooks
05Resend reminder dispatch

Outcome

Pre-launch subscription tracker with inbox-assisted discovery, manual edits, renewal reminders, and cancel-link storage — built as a personal product with production-grade auth and billing foundations.

Metrics

Waitlist signups

Coming soon

Renewals tracked

Coming soon

Stack

Next.jsTypeScriptReactSupabasePostgreSQLGmail APIPaystackResendTailwind CSS