Inspiration
I wanted a subscription tracker that was simple from the moment you opened it, with no accounts or services to connect. You add the subscriptions you want to keep track of, and Local Subscriptions takes care of the rest, keeping your costs, renewal dates, and reminders together in one place.
What it does
Local Subscriptions keeps track of the things that come back around, from streaming services and apps to bills, insurance, domains, hosting, and free trials.
You give each one a name, an amount, how often it repeats, and when it is next due. The app brings weekly, monthly, yearly, and custom renewals into monthly and yearly totals, with a breakdown by category. It also shows what is coming up and how many days remain until each renewal.
When a price changes, Local Subscriptions keeps the earlier amount in its history so you have a record of the change. You can also set reminders for as many days in advance as you choose, delivered by iOS at 9:00 AM local time even when the app is closed.
CSV export, backup, and restore are free. The free version holds up to three renewals, while Pro removes that limit.
How I built it
Local Subscriptions began as Renewly, a browser-based tracker I built and audited in July. For the App Store, I rebuilt it for iPhone and iPad with Capacitor and AI agents as my technical teammates.
It gained its own identity in ink blue and marigold, local notifications for reminders, backup and restore, and RevenueCat for the one-time Pro purchase.
The core logic for dates, totals, CSV export, and reminder planning lives in one module, with automated tests covering that logic.
Challenges I ran into
Dates turned out to be more complicated than they look. A renewal normally due on the 31st needs to move to the last available day of a shorter month without permanently losing its original billing day. Local Subscriptions remembers that billing day so it can return to the 31st when the calendar allows it.
Reminders brought a different challenge. iOS limits how many notifications an app can have pending at once, so Local Subscriptions prioritizes the nearest reminders and adds more when the app is opened again. I also wanted a reminder set for 9:00 AM to remain at 9:00 AM local time when someone travels.
Price history needed its own care too. A real price change should create one entry in the history, rather than creating new entries while someone is still typing.
Accomplishments I'm proud of
One of the things I am proudest of is that Local Subscriptions does not need a bank connection, an account, or a server to keep track of renewals. Your list stays on your device unless you choose to export it, while reminders can still arrive when the app is closed.
Pro is a one-time $12.99 purchase.
What I learned
Building Local Subscriptions taught me that a simple experience can depend on a lot of careful work underneath. Adding a renewal only takes a few moments, but dates, repeating schedules, totals, price changes, and reminders all have to work together so keeping track of it stays easy.
What's next
Local Subscriptions went live on September 24, 2026. From here, I want to see how people use it and what they find most helpful. Their feedback will guide where I make improvements over time.
Built With
- capacitor
- css3
- html5
- ios
- javascript
- local-notifications
- revenuecat
Log in or sign up for Devpost to join the conversation.