-
-
It rings what to look at: here, the services that accept PayPal.
-
A guided demo opens by itself, with a walkthrough built around PayPal.
-
A year of charges on one timeline (Bryntum Scheduler).
-
The ticked items come back as approval cards, right in the chat.
-
The next 30 days of charges, as bars.
-
Ask, and the assistant prepares a subscription through PayPal. Nothing is charged.
-
Value out of 100, hours used, cost per hour, and PayPal acceptance with its source.
-
Asked what to cut, it answers with a checklist, not a paragraph.
-
Approve, and a real PayPal sandbox agreement is created for you to confirm.
-
Every change waits in one inbox for your decision.
-
Fit check: the agent asks how you use a service before judging it.
-
ne message box, three modes: ask, audit, subscribe.
-
Alerts slide in with a chime the moment something changes.
-
Shortcuts: actions to run, or pick a subscription to ask about.
Inspiration
This project started with a charge I never agreed to.
I signed up for a free trial of Adobe's tools and set up an auto-debit mandate to do it. Some time later, Rs 3,000 left my account without any warning I noticed. When I tried to cancel, I was told cancelling would cost another Rs 1,600. I was upset enough that for almost a year I avoided the problem instead of solving it: I used friends' bank accounts for online payments just to stay away from auto mandates.
That is a ridiculous way to live with software you chose to pay for. And the charge was only half the problem. I also had no honest way to answer two simple questions: what am I subscribed to, and is any of it worth what I pay?
What it does
Subster is a subscription agent. It finds what you pay for, measures whether you actually use it, and helps you act on the answer.
- Sees what you pay. Subscriptions come in from PayPal, a linked bank account, a statement, or by adding a service from a catalog of 273 services across 13 categories, with Indian rupee prices where providers publish them.
- Measures what you use. A Chrome extension reports time on each subscription's site, including music playing in a background tab, and an Android companion app reads screen time for the matching apps. Only daily totals leave the device.
- Scores every subscription. Cost is set against use to give a cost per hour, a value score and a plain verdict: earning its place, fair, low value or unused.
- Acts, with your approval. An AI agent reads your subscriptions through tools and proposes changes: cancel, pause, downgrade or fix a failed payment. Nothing happens until you approve. For PayPal agreements the change is made through the PayPal API and verified by reading the agreement back. For everything else Subster hands you the exact page and tracks it to done.
- Helps when a charge goes wrong. The Transactions page writes a refund request from your own records (the charge, and how little you used the service afterwards), tells you where to send it, and tracks the answer.
- Shows where the money can stay. A Savings page lists every recommendation with its reason, confidence and yearly saving, and the dashboard opens with one honest sentence about where you stand and one quick win.
- Knows what is connected. Each service shows live whether it is in use right now and whether you are signed in, without Subster ever asking for a provider password.
- Asks whether a service suits you (early). A fit check asks a few personal questions, such as which films and series you want, then compares your subscription with renting those titles or switching to an alternative.
How we built it
- App: TanStack Start, Router and Query on Vite, with TypeScript, Tailwind and a single JSON store behind an adapter. Live updates reach open dashboards over server-sent events.
- PayPal: the official TypeScript Server SDK for Subscriptions (create, suspend, cancel, activate) and Transaction Search, plus webhooks whose signatures are verified before anything is recorded. Every approved action is read back from PayPal to confirm it.
- Agent: Google Gemini with function calling. The agent can list subscriptions, inspect one, forecast renewals, search the catalog and propose an action. It cannot execute one: that boundary lives in the server, not the prompt. A rules engine produces the same kind of recommendations when the model is unavailable.
- AG Grid: the Analytics page is built on AG Studio, with a custom "value board" widget that ranks subscriptions from worst value to best and follows Studio's filters.
- Bryntum: the renewal timeline is a Bryntum Scheduler showing every upcoming charge, trial conversion and agent review.
- Usage: a Manifest V3 Chrome extension and a Kotlin Android companion, both reporting to the same endpoint.
- Bank: connectors for Plaid and for India's Account Aggregator network through Setu, with a statement importer that understands Indian bank export formats.
Challenges we ran into
- Nobody offers a billing API. Netflix, JioHotstar and most others expose nothing. We stopped trying to integrate with providers and followed the money and the usage instead: the bank, PayPal, the browser and the phone.
- Indian banking access. Plaid does not cover India, and production Account Aggregator access is limited to regulated entities, so statement import had to be good enough to stand in for a live feed.
- PayPal subscriptions and rupees. PayPal subscription billing does not support INR here, so starting a subscription from Subster works in US dollars while the rest of the app works in the user's own currency, with no conversion.
- An AI that fills gaps with confidence. When a web page failed to load, the model answered from memory as if it had read it. We now keep a fact only when the page it came from is reported as loaded, and label every price by where it came from.
- Free-tier limits. The model's daily request allowance ran out during testing, which forced us to make the product useful without it and to say on screen when it has fallen back to rules.
- Trust. A tool that touches subscriptions and bank data has to be conservative. We never collect provider passwords, the agent can only propose, and sign-in monitoring looks at cookie names, never their contents.
Accomplishments that we're proud of
- The approval boundary is real: the agent cannot change a subscription, and every PayPal action is verified against PayPal rather than assumed.
- Usage measurement works end to end in a real browser: open a streaming site and the dashboard shows it in use within seconds.
- The product starts empty and holds only the user's own data. Demo data exists as a separate, labelled mode that sets real data aside and restores it untouched.
- It is honest about what it does not know. Unmeasured subscriptions are not scored, unverified prices are marked, and a title that could not be looked up is shown as unknown rather than unavailable.
- Refund help that writes the request from your own evidence, which is the thing we wanted on the day of that Rs 3,000 charge.
What we learned
- The useful question is not "what am I subscribed to" but "is it worth it", and that needs usage data, which no bank or card statement has.
- Agents earn trust by proposing and proving, not by acting. Reading the result back from PayPal mattered more than any prompt.
- Most of the hard work in an AI product is deciding what the model is not allowed to say.
- Monthly prices are designed to feel small. Showing the yearly figure, and what each hour of use costs, changes how people judge a subscription.
- Building for India first exposed limits (banking access, currency support) that a US-first design would have hidden.
What's next for Subster
- Finish the fit check: reliable live lookups of where titles can be watched and what renting costs, on a licensed data source.
- Live regional prices for every service, so comparisons never rely on a built-in list.
- A scheduled daily audit, so the agent warns you before a renewal without being asked.
- An agent that learns from the proposals you reject.
- UPI AutoPay mandate support, so Indian users can see and revoke auto-debits like the one that started this.
- Safari and Firefox extensions, and a published Android app.
- Hosted accounts, so Subster works across devices instead of on one machine.