A list of your own subscriptions with renewal dates and a running total is genuinely simple CRUD — fittingly, given this whole site exists to help you decide which of those subscriptions to keep.
Build it
Effort: an eveningRunning cost: $0/mo to start
Why CanICodeThis says Build it
A list of subscriptions with name, cost, billing cycle, and renewal date is ordinary CRUD
A running total of monthly and yearly spend across all subscriptions is simple arithmetic
Email reminders a few days before a renewal is one transactional-email call on a schedule
The parts that'll cause problems
Automatically detecting subscriptions from bank or card statements needs a real bank-sync integration, the same caution as every finance app on this register
Price-change detection (did this subscription just get more expensive) needs either manual re-entry or a fragile scraping approach
Shared household subscriptions split across people add real multi-user complexity
How I'd build this
frontend
Astro or Next.js
database
Turso (SQLite)
email
Resend
hosting
Cloudflare Pages
MVP scope
Manually add subscriptions with cost, billing cycle, and renewal date
A running monthly and yearly total
Email reminder before a renewal date
Postpone to v2
Bank/card statement import (real security surface — same caution as this register's finance apps)
Price-change tracking over time
Shared household subscriptions
What it actually costs to build
AI agent — with a subscription (Claude Pro/Max, Cursor, etc.)
$0 marginal
AI agent — pay-per-use API, no subscription
$16–$27 one-time
Hosting, once it's running
$0/mo (free tier)
Domain name, if you want your own
~$12/yr
Existing tools solving a similar problem typically run $14.99–$14.99/mo — see how they compare below.
The build prompt
Build me a subscription tracker: manually add subscriptions with cost, billing cycle, and renewal date, see a running monthly and yearly total, and get an email reminder a few days before a renewal. SQLite behind a small API, single-user login. Skip bank-statement auto-import for v1 — manual entry is safer to start with.