Subscriptly - Recurring Payment Tracker

Subscriptly is an iOS app for subscriptions and other recurring payments. Its value is not a decorative dashboard; it is the care taken with dates, currencies, imports, backup, recovery, and the choice between local-only and private iCloud data.

In Progress Internal TestFlight · active development Source code private · Internal TestFlight only
  • SwiftUI
  • SwiftData
  • CloudKit
  • Kotlin Multiplatform
  • Exact money
  • Backup / recovery

Swift verification

374 tests

Across 46 suites in the latest reviewed snapshot.

Shared-core verification

247 checks

Run against both JVM and iOS Simulator arm64 targets.

UI release checks

9 tests

Focused on release-critical user journeys rather than vanity coverage.

Distribution

Internal TestFlight

Not a public beta and not an App Store release.

The product problem

Recurring payments become difficult at the boundaries: a renewal anchored near month-end, a currency conversion that must not drift, or a restore that must preserve both money and history.

I modelled those rules directly instead of spreading them across views. The iOS product uses a shared Kotlin domain core for billing rules, while the interface, local persistence, and optional private iCloud path remain native to Apple platforms.

Design decisions that carry the product

Money stays exact

Amounts use integer minor units and explicit currency handling, avoiding floating-point values in billing logic.

Billing dates are calendar values

Anchor-based renewals and time-zone-free calendar days prevent an ordinary date from shifting because a device crosses a time zone.

Recovery is a user-facing workflow

Backup, restore, conflict handling, and the local-versus-private-iCloud choice are explicit product paths rather than hidden implementation details.

Reviewable evidence

For recruitment review, I can show how the product rules connect to release verification while keeping the source repository private.

  • Architecture boundaries between SwiftUI, SwiftData, CloudKit, and the shared KMP billing core
  • Tests for renewal anchors, minor-unit calculations, imports, backup, restore, and conflict behaviour
  • Release-oriented Swift, Kotlin, UI, and device-build evidence
  • Early Android proof-of-concept boundaries, without presenting Android as a complete product

Current release boundary

Subscriptly is intentionally presented as substantial work in progress.

  • Access is through Internal TestFlight only; the public TestFlight page is not accepting testers.
  • There is no App Store release, bank connection, automatic bank sync, financial advice, or tax-advice claim.
  • Android is an early proof of concept, not a finished cross-platform application.
  • Remaining physical-device and CloudKit convergence acceptance is not presented as complete.

Available for a private walkthrough

I can walk through the domain model, architecture, recovery paths, and selected test evidence during a genuine recruitment process. The repository itself remains private.