Skip to content

molly554/subscripkiller_public

SubscripKiller

SubscripKiller

Find and cancel hidden subscriptions by scanning your bank statement.
Privacy-first: your bank data is parsed locally in the browser. Nothing is uploaded.

Live Demo · Features · Getting Started · Contributing


What is SubscripKiller?

Upload a bank statement (PDF or CSV), and SubscripKiller finds every recurring subscription charge — Netflix, Spotify, gym memberships, forgotten trials — then shows you exactly how to cancel each one.

Built for European consumers with support for 19 banks across Germany, France, UK, and US.

Features

  • Bank statement scanning — PDF and CSV parsing powered by PDF.js and PapaParse, running 100% in your browser
  • 1,100+ subscription detection — AI-powered matching engine identifies recurring charges
  • Cancel guides — Step-by-step instructions for 30+ services with difficulty ratings
  • 19 bank guides — How to download your statement from Deutsche Bank, Sparkasse, N26, Barclays, Chase, and more
  • 9 languages — English, German, French, Spanish, Portuguese, Dutch, Italian, Japanese, Chinese
  • Privacy-first — Raw bank data never leaves your device. Only transaction descriptions are sent for matching.
  • Google login — Optional account to save scan history
  • Stripe payments — Unlock full results for a one-time fee

Tech Stack

Layer Technology
Framework Next.js 16 (App Router)
Auth Auth.js v5 (Google + Email)
Database Neon (Serverless Postgres)
ORM Drizzle
Payments Stripe
i18n next-intl
Styling Tailwind CSS v4
PDF Parsing PDF.js
CSV Parsing PapaParse
Deployment Vercel

Getting Started

Prerequisites

Setup

# Clone the repo
git clone https://github.com/molly554/subscripkiller_public.git
cd subscripkiller_public

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials

# Push database schema to Neon
npx drizzle-kit push

# Start development server
npm run dev

Open http://localhost:3000 to see the app.

Environment Variables

See .env.example for the full list. You need:

Variable Required Description
AUTH_SECRET Yes Auth.js secret (npx auth secret)
AUTH_GOOGLE_ID Yes Google OAuth Client ID
AUTH_GOOGLE_SECRET Yes Google OAuth Client Secret
DATABASE_URL Yes Neon Postgres connection string
STRIPE_SECRET_KEY Yes Stripe secret key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY Yes Stripe publishable key
STRIPE_WEBHOOK_SECRET Yes Stripe webhook signing secret

Project Structure

src/
├── app/                  # Next.js App Router pages
│   ├── api/              # API routes (auth, checkout, match, webhook)
│   ├── blog/             # Blog pages (9 posts)
│   ├── cancel/           # Cancel guide pages (30+ services)
│   ├── contact/          # Contact page
│   ├── history/          # Scan history (authenticated)
│   ├── scan/             # Core scan tool + bank guides
│   └── layout.tsx        # Root layout with providers
├── components/           # React components
├── data/                 # Static data (banks, cancel guides, blog posts)
├── i18n/                 # Internationalization config
├── lib/                  # Utilities (auth, db, stripe, parsers, matcher)
├── messages/             # Translation files (9 locales)
├── styles/               # Global CSS
└── types/                # TypeScript types

Contributing

We welcome contributions! The easiest ways to help:

  • Add a bank — Add PDF/CSV download instructions for your bank
  • Add a cancel guide — Document how to cancel a subscription service
  • Add a language — Translate the UI to a new locale
  • Report bugs — Open an issue with steps to reproduce

See CONTRIBUTING.md for details.

Design System

See DESIGN.md for the complete design system including typography, colors, spacing, and logo specifications.

License

This project is licensed under the GNU Affero General Public License v3.0.

This means:

  • You can use, modify, and distribute this software freely
  • If you run a modified version as a network service, you must release your source code
  • All derivative works must use the same license

Acknowledgments

Built with Next.js, deployed on Vercel. Powered by open-source tools and the community.

About

The best tool for managing subscription. Stop paying for forgotten subscriptions. Upload your bank statement. Our privacy-first AI instantly finds every recurring charge, reveals your hidden annual waste, and helps you cancel what you don't need in one click.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors