Catch subscription creep before it hits your card
One box lists every subscription, its real price, and its renewal date — and warns you before a trial converts or a price jumps
Version history
One private list of every recurring charge your business or household carries — with a nudge before a free trial converts, a price jumps, or a renewal you forgot about hits the card again.
The problem
Subscriptions are designed to be forgotten. A free trial converts to paid on day 15. A tool nobody on the team opens anymore renews every January at a price nobody checked. A vendor quietly raises the monthly fee by a few euros — small enough that it never triggers a conversation, frequent enough that it adds up. Add a personal Netflix, a business Notion seat, a client's Canva plan, a domain renewal, and a dozen SaaS trials that "we'll cancel before it charges" — and by the time the annual card statement lands, nobody can say with confidence what's actually still needed. The commercial fix, Rocket Money, links to your bank account, charges a monthly fee, and takes 35-60% of whatever it saves you in the first year if it negotiates a bill down — a real cut of your own money, for doing something a plain list could do for free.
The architecture
[ "your trial ends" / "price update" emails in your inbox ]
▼▼
[ Wallos (self-hosted, one Docker container) ]
├─ every subscription: price, currency, category, renewal date
├─ cron jobs check daily: upcoming charges, cancellations due
└─ optional: local Ollama scans for overlap ("3 note-taking tools")
▼
[ Telegram / Discord / email / pushover / gotify / webhook ]
Renewal in 7 days, a price changed, or a trial is about to convert. You decide — keep, renegotiate, or cancel — before the card is charged, not after.
One small container holds the truth: every subscription your business or household carries, with its real price and the date it actually renews. Cron jobs — not a person checking a spreadsheet — do the daily watching and push a message to whichever channel you actually read. The one-time work is the manual pass through statements and inbox; everything after that is Wallos remembering so you don't have to.
Tool choices — and why
Wallos (GPL-3.0, 7.9k stars, active — latest release v4.8.4, 27/04/2026, 595 commits) is the whole stack. It's a single PHP+SQLite container purpose-built for exactly this: subscriptions with categories, multi-currency support (with optional free-tier Fixer.io conversion), a calendar view of what's due, and notifications across email, Discord, Telegram, Pushover, Gotify or a plain webhook — pick the one channel you'll actually check, not all six. It ships its own cron jobs for the parts that must run daily without you: next-payment dates, cancellation-window alerts, and (monthly/weekly) an "AI Recommendations" pass that can point at ChatGPT, Gemini, or a local Ollama instance — the free-first, on-prem option, and the one worth using if you don't want your subscription list, which is a fairly revealing map of your business, leaving your own network at all.
Why not a spreadsheet? A spreadsheet doesn't message you. The entire value here is the daily check nobody has to remember to run — a list you have to remember to open is exactly the failure mode this replaces.
Why not Rocket Money or a similar app? They're genuinely convenient, but the model is: link your bank (read access to every transaction), pay a monthly fee, and hand over a cut of any bill they successfully negotiate down. For a business, that's your entire transaction history sitting on a third party's servers in exchange for something a disciplined list plus reminders accomplishes without giving anyone read access to your account.
Monthly cost. Software: €0. Wallos runs comfortably alongside other small self-hosted tools on the same box — if you already run a VPS for another blueprint in this library (the password vault, the invoice chaser), the marginal cost is €0. Standalone, a small VPS runs €5-6/month. Currency conversion needs a free Fixer.io key; skip it entirely if you bill in one currency only.
Setup outline
1. Deploy Wallos via the official Docker image or docker-compose file, with the db and logos folders mounted to a persistent volume.
2. Add the cron jobs listed in the project's own documentation — next-payment updates, exchange-rate refresh, cancellation notifications, standard notifications, update checks, yearly-cost totals, and the AI recommendation pass. These seven lines are what turn a static list into something that actually watches.
3. Do the one manual pass that makes the whole thing honest: pull the last 12 months of card and bank statements, search your inbox for "your subscription", "your trial", "price update" and "renewal", and enter every hit with its real price and next renewal date — not what you think you pay, what the statement says.
4. Pick one notification channel in Settings and turn the rest off. If you already run a Telegram bot for another blueprint in this library, point Wallos at the same bot — one place to check, not five.
5. If you run a local Ollama instance, point the AI Recommendations feature at it instead of a cloud key — it flags overlapping tools and stale trials without any of your subscription data leaving your network.
6. Set a recurring 15-minute quarterly calendar block: open the "next 90 days" view and actually decide keep, renegotiate, or cancel for anything on it — the reminder only works if someone reads it.
Pitfalls — the real ones
The manual first pass is the only step that isn't automated, and skipping it defeats the entire point. A tracker with 4 subscriptions logged while 20 renew silently in the background does nothing. Budget a real hour for the first pass, not fifteen minutes.
A notification channel you snooze is a notification you've disabled. Pick the one channel you open daily anyway. Four channels you check never is worse than one you check always.
Annual plans hide the pain by design. A renewal 11 months out reads as irrelevant the day you subscribe and enormous the day the card is charged. Set the reminder window wider for annual plans — 30 days out, not the default that suits monthly billing.
GPL-3.0 is not a concern for internal use. Copyleft obligations trigger on distributing modified code publicly — running Wallos privately for your own business or household carries no such obligation.
The AI recommendation feature calls an external API unless you point it at local Ollama. A list of every tool your business pays for is a small but real information leak — check that setting once, deliberately, rather than by default.
This replaces the tracking, not the decision. Wallos will tell you a renewal is coming. Whether to keep, cancel, or renegotiate that line is still a human call — the quarterly calendar block in step 6 is where the actual saving happens, not the dashboard itself.
Verified repos
Wallos — GPL-3.0, 7.9k stars, active (latest release v4.8.4, April 2026)
Get the next blueprint as it publishes — free, practical, verified tooling only.
Subscribe · Want this audited or extended for your business? DM @RXed_EU
Get this blueprint tailored to your business — free
Tell us what you run and where. We research your sector's specifics — rules, tools, customer habits — and send you a version of this blueprint rebuilt for your situation, usually within 24 hours.