What's Changed
💳 Plans and a free trial
MoneyMatter now has paid plans. Essential ($5/month or $30/year) covers manual entry, file imports, investments, loans, vehicles, backups, the MCP server and AI on your own API key, with 2 household seats. Plus ($8/month or $55/year) adds bank connections (Monobank, Enable Banking, SimpleFIN, LunchFlow, Walutomat), AI on MoneyMatter's own key and 5 seats. A Premium tier with built-in bank sync and realtime prices is on the roadmap and not for sale yet.
Every new account starts with a 40-day trial of Plus. Backup export and restore stay locked until you subscribe. When the trial ends the account switches to read-only: you can still open everything and export your data, and subscribing brings editing back. A thin bar at the top of the app shows how many days remain and links to the new Plan & billing page in Settings, where you subscribe, switch plans, update your payment method, cancel, or download invoices. Stripe handles checkout and shows tax and currency for your country before you pay.
If you signed up before this release, nothing is taken away. Your account shows as Early Adopter: everything in Plus as it exists today stays yours for life, and any paid plan is 50% off forever if you ever want a newer tier. Self-hosted instances are not affected at all: every feature stays unlocked and no trial clock runs.
🐞 Bug Fixes
All fixes below concern bank connections and syncs. Manual accounts were never affected.
- Two syncs of the same account running at once (for example a manual sync during a scheduled one) imported each transaction twice. The second sync now waits for the first.
- A sync queued right after a long-finished one was wrongly reported as stuck.
- After a sync finished, the header stopped showing progress for any later sync, including scheduled ones, until you reloaded the page.
- Pressing Connect again after a failed attempt rejected the SimpleFIN setup token as already used, or created a second LunchFlow connection. Retrying now reuses the connection from the first attempt.
- Opening one bank connection's details right after another showed the first connection's list of available accounts.
- The same external bank account could be added under two connections, which duplicated its transactions. Adding an account already linked elsewhere is now rejected.
- SimpleFIN: when one bank in a connection asked you to re-authorise, the whole connection was switched off. Now only that bank pauses and the rest keep syncing.
- SimpleFIN: an account with a future-dated transaction stopped receiving new transactions on every later sync.
- SimpleFIN: linking a feed to an account you already had re-imported transactions from before the link, double-counting them against the opening balance.
- LunchFlow: transactions your bank posted a few days late, dated back to when they happened, were skipped for good. They are now imported.
- LunchFlow: a connection that asked you to reconnect kept asking after you had.
- Walutomat: two payouts of the same amount could both link to one bank income, and pending or refunded payouts could link too. A link now needs a single unambiguous match on both sides.
- Changing a regular account's type to Loan or Vehicle is now rejected, because those types need extra details that only exist when you create them as Loan or Vehicle. Before, the change went through and left the account half set up.
📝 Code Changes
- feat: Subscription flow by @letehaha in #598
- fix: Harden bank-connections and syncs logic by @letehaha in #594
Full Changelog: v0.27.11...v0.28.0