Premi
Take control of your subscriptions

Premi is the answer to subscription creep, the small monthly fees that quietly add up to thousands of SEK a year. Most subscription trackers ask you to enter every service by hand. Nobody actually keeps that up. Premi connects to your bank instead, detects recurring charges automatically, and surfaces cheaper alternatives the moment you're paying too much.
What it does
Auto-detect recurring payments
A confidence-scored matcher reads bank transactions and identifies subscriptions by amount, interval, description and merchant keywords, no manual entry.
Smart alternatives engine
API-backed catalog of cheaper Swedish equivalents per category. Surfaces annual savings and lets you swap without leaving the app.
Bank integration via Tink
BankID auth, transaction sync, ten Swedish banks supported. Mock mode for dev; production credentials in flight.
Analytics & forecasting
Twelve-month spend trends, category breakdowns, renewal clustering, and a six-month forecast model so you see what's coming.
Family sharing
Owner-based groups with invite codes, member avatars, shared subscription view. Decoupled from auth, codes travel via any messenger.
Native home-screen widgets
Three Android widget sizes (MonthlySpend, RenewalCalendar, SpendTrend) plus iOS WidgetKit, refreshing every two hours.
Why automatic detection
The hardest part of subscription management isn't displaying data, it's getting people to enter it. Every existing app asks you to remember every service you've signed up for, then update it as prices change. That's the wrong job to give a user.
Premi shifts the work to a confidence scorer that runs over the user's actual transaction history. It looks at amount stability, interval consistency, description patterns, and merchant keywords. Each candidate gets a score; high-confidence matches show up automatically, ambiguous ones become suggestions.
Architecture
Eighteen services in a clean layer above context-based state (AppContext, AuthContext, I18nContext). The detector, alternatives engine, Tink adapter, Stripe client, family sharing and notifications are each isolated and individually tested.
Lists use FlatList virtualization, expensive computed values are memoised, and every screen ships with a skeleton state. Caching is in-memory with a 24-hour TTL on the alternatives catalog so the network is only hit when something actually changed.
Swedish-first
Currency, dates, banks, merchants and copy are Swedish by default and English is a toggle, not the other way around. The alternatives catalog is curated for the Swedish market: Netflix, Spotify, SATS, Adobe, NordVPN, Viaplay, C More. Bank connection UI lists the ten banks people actually use.
Built with
Mobile
Backend
Build & test
UX
Where it stands
Probably lauching sometime in the summer. Core app and backend complete; Stripe integration tested on physical devices; Tink integration in mock mode awaiting production credentials. Pending: production EAS builds, App Store + Play submission, push setup, security audit.