What changed
Changelog
Every TestFlight build since the first one, newest first.
Unreleased
Changed
- Optional is per recipe now. Long-press an ingredient on a recipe and choose "Optional for this recipe": it stops counting toward what you're missing and never lands on the list for that dish, while every other recipe and the pantry are untouched. The pantry's own "Optional" level is gone; foods you had marked that way are now Well-stocked, which keeps them off the list the same way.
- The front page's suggestion demo means it. "Save money" and "Variety" now pick five from eight candidates instead of shuffling the same five: cheapest trips lead in one, and a protein you already cooked this week waits its turn in the other, the way the plan composer works.
Fixed
- Re-import brings nutrition in. "Re-import from source" on a recipe saved before nutrition existed now fills its Nutrition card from the page, keeping your edits as before. A page that no longer publishes a panel keeps the values the recipe already has.
Changed
- The guide keeps up. The website's user guide and front page now describe nutrition, shared aliases, the "which one did you buy?" question and the energy setting.
- A bigger app icon. The two recipe cards now fill the tile the way iOS expects, sit optically centred, and the three ingredient lines stay crisp at home-screen size. iOS 18's tinted Home Screen gets a proper greyscale version instead of a flattened copy of the light one.
- The website wears the mark too. A favicon that follows the tab's light or dark theme, and the app icon for a home-screen bookmark, on every page.
Added
- renditionrecipes.com is open, and findable. The front page answers the apex, every page has one canonical address, a description and a link-preview card, the app is described to search engines as software, a sitemap and robots file point crawlers at the site and away from the API docs, and a wrong address gets a real page instead of an error document. Four new pages answer the searches people make: recipe manager, meal planning, grocery list, and pantry.
- Dark mode on the website, your way. Every page has a theme control in the top bar: Auto follows your device, or pick Light or Dark and the site remembers it, applied before the page paints so nothing flashes. On a phone the bar keeps the brand and the control, since the hero right below carries the same button.
- Which one did you buy? When a name on your list is one that several pantry foods share as an alias ("neutral oil" on canola and sunflower), checking it off asks which you bought and restocks that one, instead of guessing. A check made from Reminders, where there is nobody to ask, restocks the food that has always answered for the name.
- Nutrition from Paprika. A Paprika export's nutrition text comes in with the recipe, and Rendition writes it back out the same way, so it survives a round trip.
Fixed
- One alias, several foods. Canola, sunflower and grapeseed oil can each be known as "neutral oil", and a recipe that calls for it now reads as covered when any of them is on hand. The stock dot and the after-cook "did this run low?" list used to answer for whichever of them the pantry listed first, so an empty canola could hide a full sunflower.
Fixed
- The Shop and Recipes tabs no longer redo their sums on every frame. Under a "bought" pantry sort, each row's "Bought N times" note was re-folding the whole purchase history on every render; the per-food statistics are now computed once per reload and looked up. The library's stock-aware sorts likewise folded every recipe's ingredients against the pantry on every render; each recipe's score is now memoized and refreshed only when the pantry or a "needed here" override changes.
Added
- Nutrition, when the source states it. Recipe pages that publish nutrition (the Schema.org block most sites carry) now bring it in: energy, fat, saturated fat, carbohydrate, sugars, fibre, protein, sodium and cholesterol, per serving, shown on the recipe page under its numbers. Video imports that came with a nutrition panel are read the same way. Energy follows your region — calories in the US, kilojoules in Australia and New Zealand, both in Europe and the UK — with a switch in Settings, and the "% of a day" column uses your region's reference intakes, listing salt instead of sodium where labels do. Nothing is estimated: no data on the page means no card.
Added
- Settings opens the user guide. The "About Rendition" row is now "User guide" and opens renditionrecipes.com/guide, a walkthrough of each tab and the features that aren't obvious, instead of a short description of the app. The Changelog row now shows only builds since 2 September 2026.
- Import from the source page in one tap. Opening a recipe's source now uses Rendition's own browser instead of Safari's, with the same back, forward, share, reload and open-in-Safari controls plus an Import button. Browse from the source to any other recipe on the site and tap Import to bring it into your library — no share sheet, no hunting for the Rendition icon.
Fixed
- Buying a food under one of its other names no longer makes a second pantry row. Checking "granulated sugar" off the list used to open a new shelf beside the "Sugar" that already listed it under Also known as; the check-off matched only a food's main name. It now answers to every name on the page, so the purchase restocks the food you already have.
- (Internal — no user-visible change) UI tests start on Today, not on a stray Import sheet. With the test suites now running on one simulator instead of parallel clones, a share-import unit test's fixture link was leaking into the App Group hand-off and greeting the next launch with an Import sheet. The share-import model now takes its hand-off as an injected step so tests never touch the real container, and the UI-test reset drops any pending share link. CI also runs the simulator tests serially with a per-test time allowance, which is what turned three 30-minute hangs into a two-minute unit bundle.
Build 279
2 September 2026
Added
- A pantry item's page is about its names, not a ledger. "Record a change" and the exact-amount Activity ledger are gone from the item page, along with the "1 oz" a check-off happened to record — the pantry has been tracked by level (Out, Low, Well-stocked) for a while, and that screen was the last place still asking for amounts. The room goes to "Also known as": the item's other names sit right on the page as chips you can remove with a tap, with a field to add another, instead of behind the pencil. The pencil now just renames.
Build 278
2 September 2026
Added
- Sort the pantry by what you buy. The Pantry tab's new sort menu offers Location (the default), Inventory level (out, low, then stocked), Recently bought, Frequently bought (the last 90 days) and Most bought. Under a "bought" sort every food shows how many times it has been checked off the list and when last, and every one carries an add-to-list button, so the shelf stays useful even when levels aren't kept current.
- Non-food items have a home. Paper towels, dish soap and litter never sat in the pantry, so once checked off they vanished. A "Non-food items" list at the foot of the Pantry tab gathers every household, personal care and pet item you buy, most bought first, each a tap from the grocery list.
- Grocery purchases in Statistics. Every food checked off the grocery list counts as bought, and the record survives the row leaving the list: the Statistics screen now shows how many foods you've bought this year and all time, month by month, and the foods you buy most. Household, personal care and pet items are tallied on the Non-food items list instead.
Build 277
2 September 2026
Added
- No more stutter after switching Light and Dark. For a few seconds after the phone changed appearance, scrolling a recipe hitched: every color on screen re-resolves at once, and each resolution was rebuilding the theme's palette from scratch. Palettes are now resolved once and served from a table.
- The pantry is laid out like your kitchen. The Pantry tab now groups by storage location — Fridge, Freezer, Pantry, in the order you keep them — with foods alphabetical inside each and anything unplaced at the end. Locations had been set but never read; store aisles stay on the Groceries tab, where the shopping trip is.
- Fix a wrong aisle, once. Every grocery row now has a visible "…" button (the same actions as a long-press) with "Move to aisle"; the choice is remembered for that item's name. The classifier also learned that a seasoning is a spice, not the vegetable it's made from: garlic powder, onion powder, garlic salt, black pepper, red pepper flakes and dried oregano file under Baking & Spices instead of Produce.
- Say something isn't a food, after the fact. A pantry item's page has "Not a food…" (household, personal care, pet): it leaves the pantry, the name is remembered so it classifies that way next time, and any hand-typed grocery row for it is retagged. Grocery rows' "Change type" is now reachable from the "…" button too.