This site uses cookies for analytics and to improve your experience. By accepting you agree to our use of analytics cookies. You can change this later in your browser settings.
Releases
Everything that shipped here — new features and bug fixes both, newest first.
246 changes across 60 releases. Looking for what is still to come? The roadmap has that.
Latest
Trip categories become user-managed, three more apps join the assistant, and every page gains a language-aware address
Added
TripsCost and budget categories are now a per-trip list you manage yourself — add, rename, recolor, reorder, archive or delete — instead of a fixed set built into the app. New trips start with the same six default categories as before; existing trips were backfilled with them automatically. Trip title, subtitle, emoji and dates can also be edited after creation from the trip page, through the same fields the create dialog uses.
TripsAny category can now be marked to track nights and a booking link, and to be left out of the trip's total spend — replacing a single hardcoded reimbursement category that used to appear on every trip whether or not it applied. Existing history keeps working the same as before.
NutritionThe day you're viewing is now part of the page's web address, so refreshing, bookmarking, or sharing a link lands back on that same day instead of resetting to today.
Net worthAccounts and balance entries can now be managed by asking the assistant, the same way Nutrition, Trips and Workout Tracker already can.
ScratchMapCountries and places can now be managed by asking the assistant, the same way Nutrition, Trips and Workout Tracker already can.
StreaksHabits and daily checks can now be managed by asking the assistant, the same way Nutrition, Trips and Workout Tracker already can.
ScratchMapVisited countries can now be imported straight from your trip stops: each stop's location is matched to a country and marked visited if it wasn't already, leaving anything already marked untouched. A summary reports how many were newly marked, already marked, or could not be matched.
InvestProgress through the questionnaire is now saved automatically for visitors without an account, so a refresh or an accidental tab close no longer loses answered questions. It's held only for the current browser tab and is cleared once you reach your results — a signed-in account already kept progress this way.
InvestResults can now be downloaded or printed from a button on the results page, using the browser's own print-to-PDF rather than a generated file.
InvestTwo results can now be saved as scenarios and compared side by side, with a table of the key differences — monthly contribution, ETF split, costs, mortgage stance, projected capital and sustainable withdrawal — shown above both full results. Comparisons are kept only for the current browser tab.
ReleasesA small “what's new” card now appears on the Nutrition, Workout Tracker and Briefing settings pages, and on the admin settings page, showing that app's latest additions, changes and fixes with a link to the full filtered changelog.
AdminThe Users page can now edit a user's name and role and delete an account, not just list users and reset a password. A role change that would leave zero administrators is blocked, and an admin who has issued invite codes can't be deleted, to keep the redemption history intact for the people who used those codes.
PlatformEvery page's web address can now carry an explicit language — Dutch pages get an /nl prefix in the address bar, English pages stay exactly as they were. Only the address changes; the language you see is still decided the same way as before.
AdminA new "Scheduled jobs" card on Settings lets you choose which hour the nightly maintenance jobs run and which days each one is due — covering the game-library sync, error-log cleanup and password-reset-link cleanup jobs — and saves it straight to the live schedule where that is possible.
Changed
DashboardEach widget now appears as soon as its own data is ready, with a brief placeholder shown while it loads, instead of the whole dashboard waiting for the slowest widget (Portfolio) before showing anything.
PlatformInternal: removed two leftover demo/test pages that had no other purpose.
Fixed
Workout trackerEditing a logged workout's per-set weight, reps or RPE now actually saves those changes — edits used to silently discard that detail, and could leave a personal record uncredited afterward.
Claude can log a workout or manage a trip, and a Steam library dashboard lands admin-only
Added
Workout trackerAsk your assistant to log a workout, browse your exercises and routines, check your personal records and body-metric history, or activate a routine — the same actions the app itself offers, now reachable through the assistant connection. Deleting an exercise, editing a workout after it was logged, and the admin-only backdate setting are deliberately left out for now.
TripsAsk your assistant to create or update a trip and its stops, activities, costs, budgets, checklist items and journal entries — the same data the app itself manages, now reachable through the assistant connection. Deleting a trip, adding or removing journal photos, and generating or revoking a trip's public share link are deliberately left out for now.
GamesA new Steam library dashboard: your games, playtime, achievement progress, a playtime chart with a play streak, a cost-per-hour value ranking, and a picker that suggests something to play from your backlog, with a summary tile on the home dashboard. Visible to administrators only for now, and inactive until a Steam connection is switched on.
GamesThe library can sync automatically once a day, and — once turned on — a weekly recap can arrive as a push notification.
Language becomes three settings, dates and money follow suit, and GitHub sign-in switches off by default
Added
PlatformLanguage, date format and number format are now three separate choices in your settings, instead of one regional choice that drove all three at once — so you can, for instance, read the app in English while still seeing dates and numbers written the Belgian way. Leaving any of them unset keeps using whatever your language already implied, so nobody who never opens the setting sees a change. The choice is saved to your account as well as this device, so it follows you when you sign in elsewhere.
PlatformGitHub sign-in can now be switched on or off without a deploy, from the feature-flag admin screen.
Changed
PlatformGitHub sign-in is switched off by default — the login page no longer offers it, only email-and-password sign-in remains. Existing accounts and passwords are unaffected, and it can be switched back on at any time.
ActivityDates throughout the app — workout history, sleep, records, weekly stats, the yearly calendar, and the best-activity highlight — now follow your language setting instead of always showing the British-English format.
AdminInvite-code and user-list dates now follow the language setting of whoever is viewing, instead of a fixed format.
NutritionThe repeat-meal dialog now labels its days in your language's date format, instead of a fixed one.
ProfileThe "member since" date and body-metric dates now follow your language setting instead of a fixed format.
TripsDates on trip cards, trip details, the cost log, the hotel list, and the journal and its map now follow your language setting instead of a fixed format.
Net worthAmounts on the summary cards, breakdown charts and history chart now follow your language's own way of writing numbers and placing the currency sign, instead of always the Belgian-Dutch style.
Portfolio and Trips open up, and the catalog can be searched by its labels
Added
NutritionThe Foods page can filter the catalog on what the labels say — nine bounds such as at least so much protein, at most so much sugar, or the most protein per calorie. A food that leaves a nutrient blank never matches, because a blank is an unknown and not a zero, and a food measured in pieces is left out of the absolute bounds since nothing records what one piece weighs. Both of those are said on the page rather than left for you to notice. The same filters are available when you ask the assistant to find a food.
PortfolioThe simulations page links to Invest. The goal and monthly-investing simulations already read your Invest profile to pre-fill a retirement age, but nothing pointed at the questionnaire that fills it, so for anyone who had not found it that pre-fill quietly did nothing.
Changed
PortfolioOpen to everyone with an account. The app was finished but its status had never been switched over, so only an administrator could reach it. Net Worth comes with it.
InvestNo longer asks to be switched on in your profile. It works without an account, so offering a signed-in person a toggle to enable it asked them to turn on what every visitor already had — and left the app looking switched off until they did. It keeps its card on the home page.
PortfolioDutch now covers the rest of the app: the confirmations that appear before deleting a portfolio, a transaction or a net-worth account, the new-portfolio button, and three descriptions on the simulations page that had stayed English.
TripsOpen to everyone with an account, no longer administrators only. The app itself shipped the day before; this is the moment it became reachable.
PlatformInternal tidying with no visible effect: the compound-growth calculation behind the Invest simulator and the portfolio projection is now written once instead of four times, and every unused leftover the type checker could find was removed.
Fixed
TripsThe share link never worked. It does now.
Three apps open up, and a tea stops turning into a meal
Added
NutritionAsking the assistant to log a drink now records a drink. "Log a tea" used to have no right answer: the nearest thing was an entry with no calories, which filed the tea under a meal it was never part of, left the water count untouched and never reached the drinks card. Adding a glass of water and removing a drink work the same way.
Changed
QuotesOpen to everyone with an account, no longer administrators only.
VisualsOpen to everyone with an account, no longer administrators only.
StreaksOpen to everyone with an account, no longer administrators only.
ProfileThe Quotes and Visuals pages in your profile are gone. They held no settings — only a card of links that each app already has in its own sidebar — so they now send you straight to the app.
AdminChanging whether an app is live shows on the home page straight away instead of up to an hour later.
Fixed
NutritionAlbert Heijn search results no longer drift to the right in the dialog where you add a food.
QuotesA date the quote-of-the-moment scheduler cannot read is now refused as bad input instead of failing as a server error. Visuals had the same gap.
NutritionA scheduled run that decides it has nothing to do now says so, instead of reporting itself as unavailable.
Your foods can say what they are, and ScratchMap opens up
Added
NutritionA food can record how ready it is to eat: straight out of the pack, a couple of minutes of work, needs cooking, or something you would never eat on its own. What to eat next reads it — a stock cube or a bottle of oil no longer turns up as a way to close a gap, and a snack only offers things you could actually pick up on the spot. Cooking is only proposed for breakfast, lunch and dinner.
NutritionA food can record which group it belongs to — vegetable, fruit, grain, dairy, protein, fat, drink or sweet. Both of these are optional, and every food you already have starts out unset: an unclassified food behaves exactly as it always did, so nothing changes until you begin filling them in.
NutritionA setting to stop counting vegetable calories. Switch it on and energy from anything you have marked as a vegetable drops out of your daily figure, the kcal band, your per-meal budgets and the calorie line on the trends chart — and the day says out loud how much it left out, so a total never quietly disagrees with the entries under it. Their protein and fibre still count in full. Nothing is rewritten: switch it off and every number is back exactly as it was.
NutritionWith that setting on, what to eat next grows a short second list of things that cost you nothing — measured against the gap they close rather than against what you have left, and still held to your salt and sugar limits.
ScratchMapScratchMap is open. Switch it on under your profile and it appears in your nav like any other app; until today it had no nav entry and could not be switched on at all, so the only way in was to know the address. The countries you had already marked are all still there.
Changed
NutritionYour expenditure estimate deliberately keeps using what you really ate, even with vegetable calories switched off elsewhere. It works backwards from your intake against your weight over time, so leaving food out of it would make the estimate read low and pull your goal projection with it.
ScratchMapScratchMap now follows the same access rules as every other app — it honours the per-app switch on your profile, and an app that is not open yet is properly closed rather than merely hidden from view.
Fixed
ScratchMapThere is a way back out of the map. It fills the whole window with no header or sidebar, so leaving it meant reaching for the browser back button; a Dashboard link now sits beside the stats.
ScratchMapThe Countries button stays reachable while a country is open. Selecting one used to tuck it behind the detail panel, so getting to the country list meant closing the panel first.
ScratchMap grows an edit button, and this page learns to filter
Added
ReleasesThis page can be filtered — by app, by whether something was added, changed or fixed, by how recently, and by a word in the text. Each control says how many results it would give, and a filtered view can be linked or bookmarked as it is. Nine months of changes were one list of 183 items before this, read by scrolling.
ScratchMapVisits and places can be edited. Until now the only way to correct a date or a note was to delete the entry and type it again.
ScratchMapA Countries button opens a searchable list of every country on the map, with the ones you have marked first. Searching ignores accents, so "curacao" finds Curaçao, and a country too small to hit with a mouse at world zoom is now reachable by name.
ScratchMapClicking a pin on the map opens that country and highlights the place it belongs to. A place that has a photo link now shows it.
Fixed
ScratchMapScratchMap follows the light/dark switch. The map, the panels, the stats bar and the legend were painted dark whatever the rest of the platform was doing.
ScratchMapScratchMap speaks Dutch throughout. The stats bar, the legend and the country names themselves stayed English on a Dutch interface, and visit dates were printed in a British format regardless of language.
ScratchMapA mistyped coordinate is refused with an explanation instead of accepted. A latitude of 5085 used to save happily and put the pin nowhere on the map, with nothing on screen to say why it had vanished.
Claude can reach your data, and dates learn your language
Added
PlatformClaude Code and Claude Desktop can now read and write this platform directly, over a connection you set up on your profile page. Nutrition is the first app to be reachable that way: ask for a day with its totals and what is left of your targets, log or correct an entry, look something up in the food catalogue or add to it, and read your targets, weight and trends. The connection is authorised by a token you mint yourself and can revoke at any time, and the token is stored hashed — so it can be checked but never read back, not even by the platform. Connecting from the claude.ai website is not supported yet; that needs a different kind of sign-in flow and is a separate piece of work.
Changed
PlatformBehind the scenes: the check that runs on every change now rejects any new date or number formatting that reads the device rather than your language, so this cannot quietly come back.
Fixed
PlatformDates and numbers now follow the language you picked, everywhere in the platform. They used to follow whichever language the device was set to, which meant a Dutch interface could show English dates and an English one Dutch thousands separators — the interface was translated, the numbers in it were not. Forty places across eight apps were reading the device instead of your choice; all of them now read your choice.
PlatformA date that means a day on the calendar — the day a meal was logged, the day a measurement was taken — can no longer be shown as the day before. It could happen on a device set to a time zone behind UTC, because such a day was being converted as if it were a moment in time rather than a date.
PlatformThe light/dark switch is back on a phone. The row of controls along the top of every app was wider than a phone screen, and the switch, being last in that row, sat just past the right edge with no way to scroll to it. It looked like a Nutrition problem because Nutrition is the app you install on a phone as its own app, but every app had it. Signing out is now an icon rather than a word on a narrow screen, which is where the room came from.
A goal weight, a quick add, and a meal that can become a recipe
Added
NutritionA goal weight, and a date for reaching it worked out from the weight trend actually measured rather than from the rate you asked for. It declines to name one when the trend is moving away from the goal, when the answer is more than two years out, or when the trend is not yet distinguishable from flat — a date computed from a trend with no established direction is noise with a calendar next to it. The date comes with the range its own margin of error allows.
NutritionA quick add. Calories, and optionally a name and the protein, for the restaurant meal you cannot weigh. It is marked as an estimate, counts towards your day like any other entry, and is reported separately under how complete your log is — so a week of estimates is never presented as if it had been measured.
NutritionA meal you assemble on the day page can now also be saved as a recipe, or added to the plan, from the same button that logs it. Both were possible from Mix and from nowhere else, which is the wrong way round: the day page is where meals actually get put together.
NutritionUnder the day’s meals, the eating window — first meal, last meal, and the hours between them. Both times have been recorded since meal times existed and the app never said what they meant together.
NutritionHow far you still are from your goal weight, beside the weigh-in on the day page.
Changed
NutritionInternal work with no visible effect — the add-item dialog was split up so new ways to log can be added without making it harder to change, the Albert Heijn product lookups now count against a limit that survives a server restart, and the plan board and the shopping list gained the tests they never had.
Fixed
NutritionAdding a mix to the plan failed whenever that week already had a food planned in it — and it failed after saving the recipe, so you were told the plan had not been updated while holding a recipe you never asked to keep. Pressing again made a second one.
NutritionA meal time you typed and then navigated away from within a moment was discarded. Leaving the page, or putting the app in the background, now saves it.
NutritionFor the first hours after midnight the trends page could measure its window from a different day than the charts drawn on it.
NutritionThe same act on a week made only of recipes did something quieter and worse — it went through, but reset the order of every other meal in that week and marked days you had already logged as unlogged again.
The range buttons on the nutrition trends mean what they look like
Changed
NutritionPressing 7, 30 or 90 days on the trends page now moves every block on it. The summary at the top used to be stuck on the calendar week, the completeness panel on the last four weeks, and the measured expenditure on its own 28 or 56 days, so most of the page answered a question you had not asked.
NutritionIsolating one macro on the protein/carbs/fat chart now rescales the chart to that macro instead of leaving it on a scale set by carbs, shades the distance between what you ate and your target, and states that distance in grams and per cent. Clicking protein used to leave a 20 g shortfall looking like a flat line.
NutritionThe weigh-in on the day page is one small button with the day’s weight on it, opening the full comparison in a sheet. It was a four-line block sitting above the meals on the screen you open to log food.
NutritionThe weigh-in has left the trends page. It always wrote to today whichever range you were looking at, and a chart has no selected day — weights are logged on the day page.
Fixed
NutritionThe completeness panel counted days from before you started tracking, so nineteen days of logging read as 90 out of 115 meals. It now stops at the day you began, and the CSV export does too.
A weight logged in one tap, and a plan made of food rather than recipes
Added
NutritionA weigh-in is logged from the day you are looking at, on the day page itself. It used to take six interactions and a page load through settings — which is hard to square with an app that asks you to weigh yourself every third day. Under the weight it says how far you have come since your baseline, and how the last step went.
NutritionA planned meal can be made of foods, not only recipes. A breakfast is yoghurt, granola and a banana — the board used to have room for one recipe per meal, so it filled one cell in five, its projected calories counted a fraction of the day, and the shopping list left out everything you buy without a recipe.
NutritionCopying a logged day into the plan now brings across everything you ate that day, not only the recipes.
Changed
NutritionThe meal plan is only ever about the future. It no longer navigates back past the current week, and a week that has ended is cleared the next time you open the board — what actually happened is in the day log, and two records of one week is one too many. Nothing you logged is affected.
NutritionA planned item is resolved against your food catalog when it is read, not frozen when it is planned. Correct a label on Tuesday and Thursday’s plan is right on Thursday. Where an item has no nutrition behind it, the day says how many came back unknown instead of quietly reading low.
Reminders when it is time to eat, a mix screen, and dialogs that behave on a phone
Added
NutritionMeal reminders. A push notification at the times you set, in your own wall-clock time, skipped for a meal you have already logged. You can send yourself a test one rather than waiting until lunchtime to find out whether it works.
NutritionA mix screen — throw ingredients together and read what they come to, per row, as a whole, per portion and per 100 g. It answers "how much protein is in this bowl", which neither the add dialog nor the recipe form did. A mix you want to keep becomes a recipe; until then nothing is saved.
NutritionThe name on a logged entry is a link back to the recipe or to the food in your catalog. A deleted source correctly gets no link rather than one that leads nowhere.
Changed
NutritionWriting a recipe is a different job. Picking an ingredient went from five actions to one tap, with the search field staying put between picks, and the form totals itself as you type — the one question you ask while writing a recipe is whether it is the size you meant, and answering it used to mean saving and reopening. The method is numbered steps, and a recipe that is only a list of ingredients can now be saved.
NutritionThe two snack slots are one tag on a recipe. The picker offered the same word twice with no way to tell them apart, and a recipe tagged with one was invisible to a filter on the other. The meal planner, where the two snacks really are different meals, is unchanged.
Fixed
PlatformDialogs on a phone no longer zoom in when you touch a field and stay zoomed, and no longer jump when the keyboard opens. They are sheets rising from the bottom edge on a phone now, and centred cards on a wider screen.
A meal you can assemble before any of it is written
Added
NutritionThe add dialog stages items in a basket instead of writing them one at a time, so a meal thrown together from four things is counted while you build it. Nothing is in your day until you press the button, which is what lets you take a staged item back out.
NutritionA "fit the calories left" button works the amount out backwards from what is still in the meal’s budget — to the gram, or to half a portion.
Trends that start where you did, and a meal plan you read by the day
Added
NutritionSaturates, sugars, salt and fibre now have trend charts of their own, so all four label targets can be read against what you actually ate.
Changed
NutritionThe trends charts begin on the day you started tracking. A 30-day view of eleven logged days used to be two thirds empty chart with a target line ruled across days the app was not in use.
NutritionThe meal plan turns a quarter. Days run down the side and the five meals across, so a day reads as one row, ending in its projected calories and whether it was logged.
Fixed
NutritionThe 7-day weight chart dropped the weigh-in from just before the window, which is the view that needed it most. It carries in again.
Settings move into the apps that own them, and Recipes joins Nutrition
Added
PlatformEvery app with settings now has a settings page of its own, plus one index at /settings listing every section. Nutrition's and Workout tracker's move out of the profile, and the old addresses redirect.
NutritionThe shopping list gets its own page, with the week in the address, so it can be bookmarked and survives a reload. It is read standing in a supermarket, not dug out of a dialog.
NutritionCorrecting a food offers to recalculate the entries that already used it, portions included, so a fixed typo is no longer frozen into every meal that used it.
NutritionAn Albert Heijn product with no label data can be imported zeroed and flagged instead of refused, keeping the name, brand, pack size and barcode it handed back.
Changed
PlatformThe rest of the platform speaks Dutch now too: the landing page, the privacy policy, the Invest wizard and its recommendations, and the Nutrition and profile screens.
RecipesRecipes lives inside Nutrition. The cookbook, the meal plan and the shopping list sit under it, grouped in the sidebar, and the old /recipes addresses redirect. One switch turns the pair on or off, instead of a half-off state where the day page still logged recipes.
NutritionThe food list states a food twice, per 100 g/ml and per serving, marks what can be scanned with a drawn barcode, says what each filter narrows to, and puts how often you logged it in the row title.
Nutrition"computed from macros" appears only when the numbers really disagree, with the fields that caused it in amber, rather than standing under every correct label.
NutritionA barcode reads as the 13 digits printed on the pack instead of padded to 14, so a code copied out of the app matches the one in your hand.
NutritionNutrition, in Dutch: "Voedingsmiddelen" is now "Producten".
Fixed
PlatformWhole sections of Nutrition, Profile, Activity, Portfolio, Trips and Workout tracker printed key paths like `list.title` where a sentence belonged, in both languages — including the public trip page a logged-out visitor sees.
PlatformA dialog taller than your screen can be scrolled, so its Save button stays in reach. The food edit dialog hit this on a phone.
NutritionThe weight chart anchors day one with your last weigh-in from before the window instead of starting empty.
NutritionThe add-food dialog opens empty rather than showing the search you ran last time, whose food you had already added.
ProfileThe sex control lines up with the fields beside it, and hovering an activity level describes that level instead of the one already picked.
Habit emoji you can search for, and any colour you like
Added
PlatformPick Dutch or English from a switch in the header. The Invest simulator, the habit tracker, Quotes, Visuals, the poker table and this release log are translated first.
StreaksSearch for a habit’s emoji instead of typing one. Around 250 emoji in twelve categories, findable by the word you would actually use — "gym", "water", "booze", "screen time". Anything not in the list can still be pasted in.
StreaksThe colour picker goes wider. The eight quick colours are still on top, and behind them are twelve colours at four shades each, plus a free picker for any colour at all.
Fixed
NutritionScanning a product that is not in the barcode database reported that the lookup was unavailable, as if something were broken. It now tells you the barcode is unknown, which is what actually happened.
NutritionA barcode read with spaces in it is no longer looked up as-is, so a scan that used to come back empty now finds the product.
Barcode scanning works on a phone again
Fixed
NutritionPointing the camera at a barcode did nothing. The scanner opened and the preview ran, but no code was ever read — the part that decodes the picture was being blocked before it could start.
NutritionWhen scanning cannot work on your device, the scanner now says so instead of quietly looking for a code forever.
NutritionThe scanner no longer restarts the camera while you are holding it over a barcode, so a code is picked up faster.
A habit tracker, and Nutrition starts judging the day
Added
StreaksA new habit tracker, capped at six habits on purpose. Streaks are computed from your check-ins, skipped days neither break nor extend a run, and your best streak is never reset.
NutritionNutrition scores your day instead of only recording it — the day page now tells you how the day went, not just what was in it.
NutritionSet a tracking start date, and a day strip that travels with whichever day you are looking at.
NutritionJump straight to a section on the day page and the settings page instead of scrolling.
NutritionA switch to hide the target bars when you would rather not see them.
PlatformA back-to-top button on every page.
Changed
NutritionEvery number now sits next to the thing it judges, and the food list has one plus button instead of several.
Albert Heijn labels, meal ordering, and a long list of Nutrition polish
Added
NutritionImport a food label straight from Albert Heijn, and resolve a scanned barcode through it.
NutritionReorder a day's meals from the day page, and set the default order in settings.
NutritionLog a recipe straight from the Add item dialog, and search foods and recipes together in one field.
NutritionFree text now takes a label plus an amount, and can be promoted into a real food.
NutritionCorrect an entry after it is already on the day.
NutritionMark a meal as not eaten, and clear a meal time you already filled in.
NutritionChart your weight next to what you ate.
NutritionSee the arithmetic behind the protein target, and where the calculated targets come from.
NutritionJump straight to any of the last seven days.
NutritionPer-serving values in the food form's label table.
NutritionThe day log and the meal plan now link to each other both ways.
RecipesMeasure an ingredient in the food's own serving size.
Workout trackerLog a measurement for a past day, and correct it later.
Changed
NutritionThe mood picker is gone from the day summary.
RecipesA new ingredient is filled in in a dialog rather than below the fold.
ProfileSex is picked from two values on a segmented button.
Fixed
NutritionA meal keeps its own time when it is moved to another slot.
NutritionThe trends tooltips round their numbers instead of printing full decimals.
ProfileOne scrollbar on the profile pages instead of two.
Workout trackerThe placeholder for a missing value renders as an em-dash.
One Invest app, and Nutrition counts by the portion
Added
NutritionThe full EU label, totalled for the whole day.
RecipesSaturated fat, fibre, sugar and salt now carry through a recipe.
PlatformActivity, Poker and Life RPG show up as apps you can switch on.
Changed
InvestBeleggen and Invest are now one app. Everything lives under Invest, and the old address redirects.
NutritionThe separate Targets app has been removed. Daily targets are part of Nutrition.
NutritionFood is logged by the portion rather than per 100 g.
Fixed
DashboardThe dashboard no longer breaks on a leftover reference to the removed Targets app.
PlatformPage-to-page navigation is traced again in error reporting.
A new design language, and targets calculated from your body
Added
NutritionCalculated daily targets from your body profile (BMR/TDEE), adoptable one metric at a time.
Changed
PlatformA rebuilt colour and typography system across the whole platform, including a validated chart palette and a more expressive front page.
NutritionCalories get a band rather than a single number to hit.
NutritionOne body profile shared across the places that need it, instead of three.
NutritionA new broccoli app icon.
Fixed
PlatformInstalling an app as a PWA now picks up that app's own icon and name instead of the platform one.
Meal times propose rather than decide
Added
NutritionThe meal-time window is shown on the meal card.
Changed
NutritionFilling in one meal time now proposes the rest instead of writing them straight away.
Fixed
NutritionThe meal-time field no longer dominates the meal card.
Nutrition installs on its own
Added
NutritionNutrition can be installed as its own app on your phone.
NutritionFill in one meal time and the rest of the day's times follow from it.
Fixed
Nutrition"today" is now the day on your own calendar rather than in UTC.
NutritionMeal-time edits no longer overwrite each other, and a saved time can no longer land on the wrong day.
Registration is invite-only
Added
AdminCreate, hand out and revoke invite codes.
Changed
PlatformSigning up now needs an invite code, and signing in with GitHub no longer creates a new account.
PlatformInternal: test coverage, a build pipeline, and a lower database connection ceiling.
Barcode scanning, and Recipes grows up
Added
NutritionScan a barcode to log a food, and track micronutrients.
RecipesA saved shopping list, serving scaling, a hands-free cooking mode, import from a URL, and a cost per recipe.
PlatformFailed logins are now throttled per email and per IP.
Fixed
InvestInvest opens on your profile instead of a blank page.
NutritionThe trends page no longer re-renders in a loop while loading.
The Recipes app
Added
RecipesA new app for your own recipes, with photos, comments, ratings and a weekly meal plan.
NutritionDaily targets, meal-timing settings and a trends page.
NutritionExport your log as CSV, and keep a history of what your targets were at the time.
Install the platform as an app
Added
PlatformThe platform can be installed on your phone or desktop as an app.
NutritionA warning when two meals are too close together, and tracking for tea and other drinks.
Changed
NutritionShorter, clearer meal slot labels.
The Nutrition app
Added
NutritionA new app to log meals, keep a food catalogue, and look up foods in Open Food Facts.
Deleted trips take their photos with them
Fixed
TripsDeleting a journal entry or a whole trip now deletes its uploaded media too, instead of leaving it behind.
An admin settings page
Added
AdminOne settings page for storage, maintenance mode, the roadmap and the RSS briefing.
Changed
PlatformUploaded photos are resized on the server, so pages load lighter.
ScratchMap, and apps you can switch on per person
Added
AdminFeature flags decide per app whether it is live, under construction, or only visible to admins.
Changed
ScratchMapTravel Map is now called ScratchMap.
PlatformInternal: linting across the codebase, plus validation and error handling on the API routes that were missing it.
Fixed
TripsJournal photos load again from the private media store.
A journal for your trips
Added
TripsWrite journal entries with photos alongside a trip.
A message when a save fails
Added
NutritionA step that fails to save now says so, instead of the change silently doing nothing.
TripsSet a budget per category, not only per hotel night.
Changed
TripsThe Denmark packing list is set for fifteen nights without laundry.
Errors get reported
Added
PlatformErrors are now reported automatically, so a broken page can be found and fixed.
Fixed
Life RPGLife RPG no longer errors on load.
Activity sync shortcut
Added
ActivityA shortcut to sync from Apple Health, and proper app icons.
A faster build
Changed
PlatformInternal: a faster build, and quieter logging for the Activity sync.
Denmark hotels link straight through
Changed
TripsEvery hotel in the Denmark cost list links to its own booking, rather than to a search that no longer resolved to it.
Activity gets sleep, body and a year in review
Added
ActivitySleep from your Apple Health export, on a page of its own.
ActivityBody measurements read from the same export.
ActivityA statistics overview, and a year in review.
ActivityA workout page that shows your comparable workouts beside the one you are reading.
ActivitySync from an iPhone shortcut with a key of your own, so an export is no longer a manual upload.
Changed
ActivityThe import says what it is doing while it runs.
Denmark
Added
TripsThe Denmark trip, with its hotels and route.
Activity maps
Added
ActivityGPX routes and a map of where you have been.
Changed
ActivityA smoother Apple Health import.
The Activity app
Added
ActivityA new app that reads your Apple Health export and shows your workout statistics.
Changed
InvestA reworked investment app.
Fixed
ActivityImporting a large Apple Health export no longer runs out of memory and crashes.
A dashboard, and your net worth
Added
DashboardA dashboard with one widget per app you have switched on.
PortfolioTrack your net worth over time.
More mortgage
Added
HypotheekMore of the calculation, and a clearer result.
The mortgage calculator
Added
HypotheekA new public calculator for what you can borrow — no account needed.
Forgot your password
Added
PlatformReset your password over email if you cannot get in.
Errors get written down
Added
PlatformErrors are recorded when they happen, in the browser and on the server, with a page in admin to read and clear them. A broken page can now be found without waiting to be told about it.
Targets
Added
NutritionSet targets and track them.
Changed
PlatformA reworked admin and portfolio.
Portfolio simulations
Added
PortfolioFive simulations over a portfolio — a projection, a what-if, monthly investing, rebalancing, and what reaching a goal would take — with the result exportable.
Changed
PlatformInternal: every API validates its input the same way, so a bad request gets an answer saying what was wrong instead of a server error.
The Portfolio app
Added
PortfolioA new app to track your investments, holdings, transactions and returns.
A better sidebar
Changed
PlatformThe sidebar is easier to navigate and remembers where you are.
Quotes and Visuals
Added
QuotesA new app to collect and save quotes.
VisualsA new gallery app for images you want to keep.
The workout tracker gets a new look
Changed
Workout trackerA redesigned interface.
PlatformPortfolio and the profile page both got a pass.
Admin gets pages of its own
Added
AdminPages for users and for the messages sent through the contact form, with a sidebar to move between them.
Changed
AdminA rebuilt dashboard.
PlatformInternal: a check that runs before every build, catching a broken internal link or a missing setting before it ships.
Fixed
Workout trackerIts API answers a bad request by saying what was wrong instead of failing bare.
Admin, the roadmap and feature flags
Added
RoadmapA public roadmap where you can see what is planned and submit an idea.
AdminManage users, projects and feature flags.
The workout tracker
Added
Workout trackerA new app to log your workouts and your measurements.
A status page and a real 404
Added
PlatformA status page, and a 404 page that helps instead of dead-ending.
A crash shows a page, not a blank screen
Added
PlatformA crash renders a page you can act on, and every page has a loading state instead of jumping from nothing to done.
PlatformA sitemap so the site can be found, and a security.txt for reporting a problem with it.
Changed
PlatformThe contact form is validated, rate limited and carries a bot trap, so the inbox stays usable.
PlatformSigning in is stricter, and GitHub login hides itself when it is not configured rather than failing when you click it.
Maintenance mode
Added
AdminMaintenance mode can be switched on without a redeploy.
Light and dark
Added
PlatformPick a light or dark theme.
Changed
PlatformA reworked interface throughout.
The first release
Added
PlatformThe site goes live: the front page, and an account you can sign in to with email or GitHub.