What’s new
Every change you’d notice in Exp Planner, newest first, straight from the work as it lands.
Week of
- Safe to spend holds back the rest of a fund's bill before it's due
- Safe to spend counts the taxes due this period
Week of
- Settings menu, hover and page panels in the lit style
- Cards stand out like the pop-up windows
- Amount fields say they hold an amount
- Sign-in code email: a branded template
- Sign-up by invitation until the release
- App on app.expplanner.com
- Quick add: any currency on an account in its own, the account name on Android
- Contacts: support@expplanner.com everywhere
- iPhone forms and sheets: date fields, sheets that move
- Insights on a phone: tab chips, Year column, Top merchants
- Tab bar drop no longer stalls while the screen loads
- Filter pickers on a phone without a search field
- Card statements in another currency in Bills
- Interest the bank will charge, ahead in Bills
- Overview accounts on a phone: no Pay buttons, the Credit badge by the amount
- Insights: the category column stays put while a table scrolls
- Tab bar highlight flows like a drop
- The add button offers what the screen adds
- iPhone forms: payments left clears, sheets stay below the notch
- Top bar stays pinned while the page scrolls
- iPhone no longer zooms into a text field and stays zoomed
- A credit card's balance entered as the bank shows it
- Safe to spend from your own money, and after credit cards
- The text follows the phone's text size, 85–150 %
- Credit card statements in Import
- Credit lines and overdraft
- Card payment as a bill
- Every screen checked at 320, 360 and 430 px
- Choose and reorder the phone's tabs
- Credit accounts look like credit everywhere
- Four equal tabs, More in the account menu, a smaller + above the bar
- Credit card settings: minimum payment, APR, pays from, Safe to spend
- App lock, and Share → Exp Planner opens a statement on Import
- Google Wallet payments into the Android app
- Hide amounts fails closed without a month in memory
- Quick add, Upcoming bills and Plan vs actual widgets; Hide amounts
- Android widget "Safe to spend today" and icon shortcuts
- Show reminders while the app is open
- Reminders in the Android app through FCM
- Only Google and Apple sign-in are bundled into the apps
- Sign-in in the app — native Google, and native plugins that work
- App shell — Exp Planner on iPhone and Android
- Signing out wipes the kept data for good; Quick add's default account is stable
- The app opens offline at once, not after "Signing you in…"
- Offline reading — every screen opens with the last data
- Subscriptions and Ending scroll inside their cards
- Ending payments — when each bill stops
- The Shortcut's notification says what went wrong
- Apple Pay purchases from an iPhone Shortcut (experiment)
- Leftovers from the 2 Oct review
- Arithmetic in amount fields, and repeat in Quick add
- Mark paid early dates the payment today
- Forecast 3–12 months ahead, and "can I afford this"
- Taxes in Bills
- Edit any payment in one place
- Taxes in other currencies
- Smart reminders
- Taxes, a simple calculator
- Clean payee names, and rules with conditions
- Month review at a glance
- Month review, and closing the month
- Transactions totals like Insights, CSV with comma decimals, Back keeps filters
- Quick entry and money input, small fixes
- Bill reminders that don't depend on opening the app
- Autopay without double counting, and failures that show
- Revolut top-ups and exchanges import without failing
Week of
- Export the transactions on screen as CSV
- Exact typed amounts, and a question for ambiguous "1,234"
- Plan up to a year ahead on Budget and Bills
- Cyrillic-friendly search, rules and sorting
- Insights — this month vs last month, and spending by weekday
- Long-press to select transactions on a phone
- Apply a rule to existing transactions from Settings
- Transactions totals follow the filters
- Quick entry from ⌘K ("12.50 groceries")
- Onboarding ends with an offer to import the last 3 months
- Bills paid automatically on their due day
- Bill reminders by Web Push
Week of
- Anchor-day line, duplicates warning, undo keeps edited rows
- Fresh data in an installed app: refresh on return and by hand
- Clear the previous person's local data on sign-in
- Database length limits and profile column grants
- Shared helpers, one LoadError, Overview split
- Typed route search params: validateSearch instead of 21 as never
- Selects: one native Select and a themed picker for lists that grow
- Accessibility of popovers and the page behind dialogs
- Touch targets: small controls reach 44 px on a touch screen
- Motion: sheen only when a dialog opens, lighter tab stagger
- Contrast on glass: AA for captions, denser glass on dense screens
- Radius scale: from 20 border radii to five steps and full
- Type scale: from 27 font sizes to ten steps
- Transaction detail: secondary sections collapse
- Phone sheets: keyboard avoidance and drag-to-dismiss
- Overview: categorize "needs review" items in place
- PWA polish: ? shortcuts dialog, manifest shortcuts, theme-color from the theme
- Undo for bulk changes stays until the next change, not on a timer
- Import: "Review these N" opens exactly this import's rows
- Insights: the tab picker fits 1024–1280px desktops
- Naming: Transactions tab, overdue by direction, Import a statement
- Quick add: categories with icons, colours and search
- Quick add: payee memory and rules pick the category
- Bills calendar: names visible at laptop widths
- Actions visible without hover: Budget "+", reconcile chevron, calendar "+"
- Overview on a phone: a tap on an attention item opens a sheet
- Quick add: Yesterday, Save and add another, the category in the Save button
- Overview: Safe to spend is the hero figure again
- Rules refresh at once, a clear split error, overdue bills without an onboarding date
- Overview: the forecast sparkline shows a month going below zero
- FX: a latest-rate answer is kept under today, never as a future date's history
- Command palette: search through a function with a parameter
- Phone: plan rows keep their names, import footer and chip rows fit
- Delete account: the fresh sign-in check reads the token's amr claim
- Offline queue: tell a network error from a bug, cap retries, one flush across tabs
- Sign-out asks first while Quick add entries haven't synced
- Receipts: allow Storage images in the CSP; reject unusable FX rates
- Dev: break the router import cycle that broke hot reload
- Overview: Safe to spend breakdown fits its card
- Glass: fewer blur passes, solid fallback, Reduce transparency
- Plans: delete one made by mistake; payments find their plan
- Dialogs: fixed title, scrolling body, pinned actions, tighter forms
- Receipts: a photo or PDF on a transaction
- Accounts in their own currency, and credit cards
- Quick add works offline
- Money flow (Sankey) and a year view in Insights
- Funds can be goals without a deadline
- Categories get a colour automatically
- Net worth over time in Insights
- Category colours in the Insights charts
- Category icons and colours
- Rules that add tags
- Restore from a JSON export
- Undo a whole import
- Find regular payments in the history and offer them as bills
- Weekly bills, move one payment, new price from a date
- Transfers act as both legs; link two rows; other currencies
- Category groups in Settings, and archive with a move
- Plan a new month by itself, if you choose to
- Editing a transaction's date or amount looks for its bill again
- Insights charts open the transactions behind them
- Funds as their own lines in Budget
- Split a transaction across categories
- The month and the filters in the address; tag, amount and date-range filters
- A More tab on the phone for Funds, Insights, Import and Settings
- Notification settings do what they say, or say they can't yet
- Payee in Quick add; edit description and payee in the panel
- Reconcile an account with the bank in one step
- Undo on delete, and Undo / Edit after Quick add
- Review all opens every transaction that needs review
- Saves that took several requests are one RPC each
- The database keeps transfers and splits consistent
- Only Mark paid marks a transaction created_by_settle
- Category names unique per user and kind
- Sample data out of the signed-in bundle
- One set of DB helpers in lib/db.ts
- Anon can't execute any public function
- An index behind every foreign key
- Expand all / Collapse all where sections fold
- The current tab sits on a pill that slides between tabs
- Move a transaction to another account
- Flag rows that look imported already under another hash
- Damaged or oversized XLSX files end in a clear message
- Import reads Cyrillic statements in Windows-1251
- Dates and decimals in the Exp Planner format; ambiguous day/month flagged
- Import reads amounts without guessing: thousands, stray separators, DR/CR
- Delete account from Settings
- Settings' number format, date order, week start and time zone apply everywhere
- Content-Security-Policy and HSTS
- Amounts in Budget, Funds and Settings use the currency's own digits
- One map of what each save changes
- One save per submit in Quick add, Transfer, Mark paid and onboarding
- Error screens, and a reload for chunks gone after a deploy
- A production build without Supabase says so instead of serving the demo
- N and I open Quick add only inside the app
- Rollover carries a category's leftover or overspend into next month
- Changing the month's start day keeps the budgets
- Budget and Overview count spending with no category or in an archived one
- Imported row replaces the same payment typed in by hand
- Balance date when adding an account; Overview says where a balance counts from
- Balance on a date, and say when a transaction is already in the balance
- Paying a fund's bill spends from the fund by itself
- Money saved in funds isn't counted as safe to spend
- Deleting a bill's payment puts the bill back to expected
- Import keeps a second identical payment on the same day
- Sign out of this device only, and leave nothing behind
- One transaction pays one bill and one fund at most
- Safe to spend keeps the safety buffer aside
- Overview: right balances past 1000 transactions
- Budget: show what a paid plan was paid with
- Top merchants: rank by category too
- ⌘K command palette
- Over the plan, one marker: the plan
- Suggest import categories from MCC
- Mercury bars everywhere; overspend shown against a plan divider
- Overview: Safe to spend as a sum with accounts; attention list scrolls
- Import Excel statements (.xlsx, HTML .xls)
- Make a bill from a transaction
- Match up columns for any bank's CSV
- Import any bank's statement in the Exp Planner CSV format
- Colour signed amounts in Insights tables
- Quiet calendar days on light themes
- Day headings dim what's behind them on light themes
- Day headings a shade deeper than the list on light themes
- Working Density, deeper light-theme window gradient, toned day headings
- Soft rims on solid buttons in light themes
- Top bar: account only; sign out beside the name
- Matching action buttons, clearer Add label and hover
- Drop the glint spot on glass buttons
- Recessed lens-like glass buttons, softer rim
- Frosted glass buttons with more body
- Thinner, flatter glass edge on buttons
- Remove the dev theme panel
- Smoother motion: spring dialogs with a sheen, sliding panels, honour Reduce animations
- Budget: + transaction on categories, Edit payment on paid rows
- Budget: Mark paid on planned payments, + income on income rows
- Budget: '+ bill' on the category name's line
- Bills calendar: click a day to plan on it
- Catch up marked payments with their edited plans
- Budget: edit and add bills and income in place
- Plan edits reach payments already marked; aligned Bills summary
- Budget: Income group; Income planned links to Bills
- Use due date for bill payments recorded on another day
- Plan vs fact hints; Overview plan links to Budget; compact delete confirm
- Transfer between own accounts
- Plan falls back to bills when nothing is budgeted; Plan a bill works
- Bills calendar: coloured in/out arrows
- Import replaces Mark paid entries instead of counting them twice
- Overview: balance hint for Safe to spend; working Needs attention actions
- Fixed headers, foldable groups, glass scrollbars (Budget, Transactions)
- Mark paid defaults to the due date; Insights averages only complete months
- Budget actuals under the plan, coloured by direction
- Planned income & bills in another currency; Mark paid on upcoming bills
- Mark paid / received in another currency
- Currency picker: searchable popover instead of the off-screen native menu
- Multi-currency — base currency + any-currency transactions with the day's rate
- UI polish — Ends on, details scroll, trash icon delete, movable dev panel
- Mark paid / received with the exact amount — it becomes the actual transaction
- Quick number picks in Stepper, typed entry, hold-to-repeat; clearer bill account label
- UI bugs — bill rows in narrow cards, smooth flat frosted buttons