Skip to content
Neel-ShPublic

About

Monthly Subscription Tracker

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Subs app icon

Subs

A calm, private subscription tracker built for iPhone.
Know what renews next, what it costs, and when you want to be reminded.

Platform Swift SwiftUI Privacy

Subs keeps recurring payments visible without turning them into another finance dashboard. There is no account to create, no bank to connect, and no inbox to scan. Add the services you care about and Subs gives you a clear renewal timeline, useful spending context, optional reminders, and native Apple integrations.

A closer look

Renewals Spending Themes
Subs renewal timeline showing the next renewal and upcoming subscriptions Subs spending overview with monthly average, yearly total, and forecast charts Subs theme studio with palettes, appearance, and layout controls
The next charge is obvious, while every later renewal stays in date order. See annualized totals, a 12-month forecast, and the subscriptions that cost the most. Choose a restrained preset or tune the experience without sacrificing accessibility.

Screenshots were captured from the running app on an iPhone 17 Pro Simulator with iOS 26.2.

What Subs can do

Stay ahead of renewals

  • Put the next renewal, exact price, and date at the top of the app.
  • Group upcoming subscriptions into a quiet, date-ordered timeline.
  • Search larger collections and use native swipe actions to edit or archive.
  • Handle weekly, monthly, yearly, quarterly, and custom repeat intervals.
  • Keep month-end, leap-day, daylight-saving, and time-zone behavior predictable.

Understand the cost

  • Compare a normalized monthly average and yearly total.
  • Forecast expected charges across the next 12 months using saved renewal dates.
  • Rank the largest subscriptions by annualized cost.
  • Keep currencies separate instead of showing a misleading converted total.

Add the details that matter

  • Start quickly from a curated service picker or enter any custom subscription.
  • Save price, currency, renewal date, cadence, symbol, website, and notes.
  • Track free trials and choose a reminder lead time.
  • Preview the renewal sentence before saving.
  • Pause, resume, archive, restore, or open a user-supplied management URL.

Fit naturally into iOS

  • Schedule local renewal and trial reminders only when requested.
  • Sync recurring renewal events with Apple Calendar and remove them cleanly when sync is disabled.
  • Show the next renewal in small and medium Home Screen widgets.
  • Use App Shortcuts to add a subscription or ask for the next renewal.
  • Follow system light, dark, Increased Contrast, Dynamic Type, and VoiceOver behavior.

Keep data portable

  • Export the complete list as CSV or JSON.
  • Import CSV through a mandatory row-by-row review screen.
  • Make no changes during import until the user explicitly confirms them.
  • Delete all local data from inside the app.

Designed to feel at home on iPhone

Subs uses native SwiftUI navigation, lists, forms, menus, sheets, and system materials. Information stays on stable, readable surfaces while iOS provides Liquid Glass for navigation and controls.

The Theme Studio includes Graphite, Ocean, Forest, Ember, and Mono palettes, plus a custom accent. Appearance, surface style, spacing, service-icon treatment, and next-renewal emphasis can all be adjusted. System typography and semantic text colors remain fixed so personalization never comes at the expense of legibility.

Private by design

Subscription data is stored locally on the device with SwiftData. Subs has:

  • no account or product server;
  • no advertising or tracking;
  • no analytics SDK;
  • no bank connection;
  • no email connection.

Notifications are local and optional. Calendar access is optional and used only for renewal events. Data leaves the app only when the user explicitly exports it.

Subs tracks the schedule a person enters; it does not inspect charges, confirm that a payment happened, cancel services, or offer financial advice.

Technology

Area Implementation
Interface SwiftUI with native iOS 26 navigation and controls
Persistence SwiftData, stored locally on device
Analytics Swift Charts with deterministic local calculations
Recurrence Pure Calendar and DateComponents domain logic
Reminders UserNotifications with stable per-renewal identifiers
Calendar EventKit recurring events with reconciliation and cleanup
Widgets WidgetKit with an App Group snapshot
Shortcuts App Intents and App Shortcuts
Data portability Explicit CSV/JSON export and review-first CSV import

Project structure

Subs/
├── App/                    # Root navigation, settings, dependencies
├── DesignSystem/           # Themes, formatting, reusable visual rules
├── Domain/                 # Subscription model, cadence, recurrence, analytics
├── Features/               # Renewals, editor, detail, spending, settings, import
├── Intents/                # App Intents and Shortcut phrases
├── PreviewContent/         # Deterministic sample content
└── Services/               # Persistence, reminders, calendar, export, widgets

SubsWidget/                 # Home Screen widget extension
SubsTests/                  # Domain, validation, persistence, and analytics tests
SubsUITests/                # Onboarding, editor, accessibility, and theme UI tests

Run locally

Requirements

  • macOS with Xcode 26.3 or newer
  • iOS 26.2 Simulator or device

Setup

  1. Clone the repository.

    git clone https://github.com/Neel-Sh/Subs.git
    cd Subs
  2. Open Subs.xcodeproj in Xcode.

  3. Select the Subs scheme and an iOS 26.2+ destination.

  4. Build and run. No API keys, accounts, or backend setup are required.

To build from the command line:

xcodebuild \
  -project Subs.xcodeproj \
  -scheme Subs \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.2' \
  build

Tests

The project includes focused unit coverage for recurrence edges, daylight-saving transitions, formatting, validation, spending calculations, persistence, reminder identity, and theme safety, alongside UI coverage for onboarding, editor validation, accessibility-sized text, and Theme Studio navigation.

xcodebuild \
  -project Subs.xcodeproj \
  -scheme Subs \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.2' \
  test

Product principles

  1. Visibility without anxiety. Subs surfaces planned renewals with factual, neutral language.
  2. Manual by choice. A short, editable form is preferable to invasive bank or inbox access.
  3. Apple-native interaction. Standard controls make the app familiar, accessible, and maintainable.
  4. User control. Permissions are contextual, imports require review, and exports are explicit.
  5. Correctness over cleverness. Recurrence behavior is deterministic and tested around real calendar edge cases.

Status and roadmap

The useful core and Apple-integration phases are implemented. The remaining roadmap items are intentionally conditional on beta feedback: private iCloud sync, a calendar view, an expanded licensed service catalogue, and shared household lists.

For the thinking behind the product and interface, see:

Contributing

Thoughtful issues and pull requests are welcome. Keep changes aligned with the product's narrow job: make subscriptions visible, accurate, private, and easy to manage. For code changes, add or update focused tests and verify the result in both light and dark appearance.


Built with care for people who want fewer financial surprises—and less financial noise.

About

Monthly Subscription Tracker

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages