Suprascribe is a free, open source finance & accounting project written in TypeScript and released under AGPL-3.0. It has 11 GitHub stars, 1 forks and 1 open issues, and was last pushed 31 hours ago. On this registry it ranks #33 of 34 tracked projects in Finance & Accounting, with 5 head-to-head comparisons available.

What is Suprascribe?

Suprascribe is an open-source, self-hostable platform that scans your inbox to automatically discover subscriptions across services that produce recurring billing, and it is aimed at individuals and small operators who want one dashboard showing what they pay for and when it renews.

What it is

Suprascribe is a web application built with Next.js 15 (App Router) and TypeScript, backed by Supabase (PostgreSQL with Row-Level Security) and authenticated through Supabase Auth with Google, Microsoft, and Apple OAuth. AI-driven discovery runs through the Vercel AI SDK with multi-provider support, so a deployment can point at OpenAI, Anthropic, or Groq, and Stripe handles a one-time Checkout Session for the paid tier. The code is licensed AGPL-3.0 and published at github.com/akomis/suprascribe, with a hosted instance at suprascribe.com.

The concrete problem is that recurring charges hide inside email receipts and renewal notices, so people lose track of what they signed up for and when it bills again. The free tier covers what a person already knows about, through manual subscription creation with no limit and multi-currency support, while the PRO tier removes that manual entry by reading Gmail, Outlook, iCloud, or any IMAP mailbox and extracting the subscriptions found there. Discovery is the difference between a tracker you must feed and a system that fills itself.

Key capabilities

  • Automatic subscription discovery from Gmail, Outlook, iCloud, or any IMAP provider, built on OAuth credentials configured in Google Cloud Console and Azure Portal.
  • Manual subscription creation with no limit, plus multi-currency support, on the free tier.
  • Bring Your Own Key (BYOK): users supply their own AI API keys from dashboard settings for unlimited discovery, or the operator sets MODEL_API_KEY against OpenRouter as the default model.
  • Subscription management dashboard with insights, complete history, and search, sort, and grouping of discovered subscriptions.
  • Quick unsubscribe, renewal email reminders sent through Resend, and a calendar view of upcoming charges.
  • Supabase Row-Level Security over PostgreSQL, with BYOK keys encrypted under an ENCRYPTION_SECRET generated by openssl rand -base64 32.
  • One-time PRO upgrade through a Stripe Checkout Session, testable locally with stripe listen --forward-to localhost:3000/api/stripe/webhook.

Who uses it and how

  • Individuals who want one dashboard of recurring charges discovered from their own mailbox instead of tracking signups by hand.
  • Self-hosters comfortable running a Next.js 15 application with Supabase as the database and auth layer, since the stack assumes both.
  • Privacy-conscious users who connect Google or Microsoft accounts through OAuth and prefer BYOK AI keys over an operator's model budget.
  • Operators running a private instance, applying schema from supabase/migrations/ and exercising payment webhooks with the Stripe CLI.
  • People evaluating before committing, through the hosted demo at suprascribe.com/demo.

Getting started

Clone https://github.com/akomis/suprascribe, run yarn under Node.js 20+ with Yarn v4, create a Supabase project, apply the files in supabase/migrations/ or run npx supabase db push, then copy .env.example to .env.local and fill in the Supabase, OAuth, and model variables. A hosted version and demo at suprascribe.com mean no installation is required to try it.

How it compares

No paid products that Suprascribe replaces are listed in the facts provided, and no similar subscription-tracking tools are named there either. On the available record it stands alone in this registry.

When to use it — and when not to

A self-hoster must operate a Supabase project for PostgreSQL and auth, register OAuth applications for Google and Microsoft, and optionally configure Stripe, Resend, and Brandfetch for payments, reminder emails, and service logos. The project is small and its documentation thin: 11 stars, 1 fork, a single open issue, no repository topics, and a README that stops mid-table at .env.exa, so anyone needing a settled API or an active community should look elsewhere. The AGPL-3.0 licence is also a real constraint, because modifying it and offering it as a network service carries source-disclosure obligations.

project readme (upstream, from github) — read inline

Suprascribe - Discover and Take Control of your Subscriptions

www.suprascribe.com Try the Demo

Features

Basic (free)

  • Subscription management dashboard with insights
  • Manual subscription creation (unlimited)
  • Multi-currency support
  • Bring Your Own Key (BYOK) - use your own AI API keys for unlimited discovery

PRO (one-time)

  • Auto-discovery from Gmail, Outlook, iCloud, or any IMAP provider
  • Complete subscription history
  • Search, sort, and group subscriptions
  • Quick unsubscribe
  • Renewal email reminders
  • Calendar view
  • Email support

Stack

  • Framework: Next.js 15 (App Router) + TypeScript
  • Database: Supabase (PostgreSQL) with Row-Level Security
  • Auth: Supabase Auth - Google, Microsoft, Apple OAuth
  • AI: Vercel AI SDK with multi-provider support (OpenAI, Anthropic, Groq, etc.)
  • Payments: Stripe (one-time Checkout Session, redirect-based)
  • Styling: Tailwind CSS v4 + shadcn/ui

Getting Started

Prerequisites

  • Node.js 20+
  • Yarn v4 (corepack enable && corepack prepare yarn@stable --activate)
  • A Supabase project (free tier works)
  • Optional: accounts for Stripe, Resend, Brandfetch (see env table below)

1. Clone and install

git clone https://github.com/akomis/suprascribe.git
cd suprascribe
yarn

2. Set up Supabase

  1. Create a new project at supabase.com
  2. Go to Project Settings → API and copy:
    • Project URLNEXT_PUBLIC_SUPABASE_URL
    • anon public key → NEXT_PUBLIC_SUPABASE_ANON_KEY
    • service_role key → SUPABASE_SERVICE_ROLE_KEY
  3. Run database migrations - in your Supabase project go to SQL Editor and run each file in supabase/migrations/ in order, or use the Supabase CLI:
npx supabase link --project-ref <your-project-ref>
npx supabase db push

3. Configure OAuth providers

Google (for Gmail discovery + Google sign-in):

  1. Go to Google Cloud Console → APIs & Services → Credentials
  2. Create an OAuth 2.0 client (Web application)
  3. Add https:///auth/v1/callback as an authorized redirect URI
  4. Copy Client ID → NEXT_PUBLIC_GOOGLE_CLIENT_ID and Client Secret → GOOGLE_CLIENT_SECRET
  5. Enable Gmail API in the API library

Microsoft (for Outlook discovery + Microsoft sign-in):

  1. Go to Azure Portal → App registrations → New registration
  2. Add https:///auth/v1/callback as a redirect URI
  3. Under Certificates & secrets, create a new client secret
  4. Copy Application (client) ID → NEXT_PUBLIC_MICROSOFT_CLIENT_ID and the secret → MICROSOFT_CLIENT_SECRET
  5. Enable Mail.Read permission under API permissions

In your Supabase project, go to Authentication → Providers and enable Google and Microsoft with the credentials above.

4. AI / Email discovery

The default discovery model runs via OpenRouter:

  • Create an account, generate an API key → MODEL_API_KEY

Alternatively, leave MODEL_API_KEY empty - users can bring their own key (BYOK) via the dashboard settings.

5. Optional services

Service Variable(s) Purpose
Stripe STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET One-time PRO upgrade payment
Resend RESEND_API_KEY Renewal reminder emails
Brandfetch BRANDFETCH_API_KEY Service logo fetching

For local Stripe webhook testing, use the Stripe CLI:

stripe listen --forward-to localhost:3000/api/stripe/webhook

6. Environment setup

cp .env.example .env.local

Generate the encryption secret for BYOK API key storage:

openssl rand -base64 32
# paste output into ENCRYPTION_SECRET

Fill in all variables in .env.local - see .env.example for the full list and descriptions.

7. Run

yarn dev

Open http://localhost:3000.

Scripts

yarn dev          # Development server (Turbopack)
yarn build        # Production build
yarn lint         # Lint and auto-fix
yarn format       # Format with Prettier

Architecture & Security

Trust Boundaries

Boundary Control
Public internet → App Next.js middleware validates Supabase session on every request; all /dashboard/* routes require authentication
App → Supabase Server-side client uses scoped keys; Row-Level Security (RLS) enforces per-user data isolation
App → Email providers OAuth tokens (Gmail, Outlook) or user-supplied IMAP credentials; SSRF protection blocks private/loopback IP ranges and cloud metadata endpoints
App → AI providers Email content forwarded only after user initiates discovery; BYOK keys encrypted at rest (AES-256-GCM) and decrypted only at request time
App → Stripe Webhook payloads verified via Stripe signature before processing; idempotency guard prevents duplicate tier upgrades

Key Components

Component Role
middleware.ts Auth guard - enforces session validity on every protected route
app/api/ REST API route handlers (discovery, subscriptions, payments, user settings)
lib/services/email-fetcher.ts Retrieves emails from Gmail API, Microsoft Graph, or IMAP
lib/services/email-analyzer.ts AI-powered extraction of subscription data from email content
lib/services/ai-provider.ts Abstracts 11+ LLM providers via Vercel AI SDK; supports BYOK
lib/utils/server-crypto.ts AES-256-GCM encryption/decryption for stored API keys
lib/config/features.ts Single source of truth for tier definitions and feature flags
supabase/migrations/ PostgreSQL schema with RLS policies per table

Contributing

PRs are welcome. Before submitting:

yarn lint    # must pass
yarn build   # must pass

Please keep changes focused - one feature or fix per PR.

License

Suprascribe is open source under the GNU Affero General Public License v3.0 (AGPL-3.0).

This means you are free to use, study, modify, and redistribute the code. If you run a modified version as a network service, you must make your modified source code available to its users under the same license.

Frequently asked questions

Is Suprascribe free to use?

Suprascribe is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Suprascribe do?

Automatically discover hidden subscriptions from your inbox

What is Suprascribe written in?

Suprascribe is primarily written in TypeScript. Its source is publicly available at https://github.com/akomis/suprascribe, and it has 11 GitHub stars.