Shopping without a signal
Groceries works offline. Check items off, skip them this trip, and add items even without a signal — each change is saved on this device the moment you tap it, and goes up when Mirepoix can be reached again.
What you can do offline
- Check items off. Tap an item and it crosses out. Tap it again to uncheck it.
- Skip items this trip. Open a row’s ⋮ menu and tap Skip this trip. The row drops from the list.
- Add an item. Type the name into the Add to the list… field and press Enter. It waits just above the field, under Adding, with a small adding… pill. Reload the page and the pill reads queued. Once it syncs, it shows in its aisle.
- Pin a recipe, or star it. Tap Pin or Star and its icon fills in and stays filled.
Each of those is saved on this device as you tap it, so it survives closing the tab and walking out of the store. When Mirepoix can be reached again, your changes go up in the order you made them, and whenever the receipt opens it names each change the way you made it — Pinned Roast chicken.
Changes that are still waiting don’t need the connection to drop and come back before they go up. With a signal, they’re sent as soon as you open any page in your kitchen or come back to Mirepoix from another app. A change the server was briefly too busy for is tried again on its own shortly after, without waiting for you to tap Retry.
Everything else that changes what your kitchen shares waits for a signal, and each control says so when you tap it, in its own words: tap Edit on a recipe without one and you get Needs a signal to edit this recipe. Editing a recipe or reading its history, changing the Menu, updating the Pantry, moving a grocery item to another aisle or setting where you shop for it, telling Mirepoix where an aisle is at a store, finishing a trip with Done shopping, and asking Mirabel all work that way. Nothing changes until you’re back.
You can also reload the page while offline — provided you’ve opened Groceries once with signal. The app remembers the last version it saw.
The status line
A line at the bottom of the screen shows where you stand. It’s on every page, not just Groceries:
- Offline, with changes waiting — Offline · 2 changes saved on this device. Tap it to see them.
- A shaky connection — the same line, labelled Trouble connecting or Reconnecting… instead of Offline.
- Sending — Syncing…, held long enough to read.
- Done, all good — ✓ Synced., then the line goes away.
- Something didn’t land — Some changes need a look. Tap it to open the receipt.
- Signed out mid-sync — Sign in to finish syncing, whether it was a waiting change or one you just made that found you signed out. Tap it to sign in and finish. If the waiting changes aren’t yours, it reads These changes aren’t from this sign-in instead, and tapping it opens the receipt.
When you’re reading a saved copy of a page and have changes waiting, the saved-copy line sits underneath.
The sync receipt
When your changes go up, a panel headed What synced lists what landed and what didn’t:
What synced
Checked off milk
Skipped yogurt — already removed
Checked off eggs — it changed after you did, so this wasn’t applied [Discard]
Added tahini — couldn’t sync [Retry] [Discard]
[Looks good]
The receipt opens on its own when something needs your attention — a change that didn’t land, a change waiting on a sign-in, or a queue more than an hour old, even when all of it synced. It opens once for each such change, on whichever page or tab you’re using: a change it has already shown you doesn’t open it again as you move around, and Some changes need a look on the status line stays there to reopen it. Otherwise it stays out of the way: while changes are still waiting, tap the status line to see them; once everything’s synced cleanly, the line just reads ✓ Synced. for a moment and clears, with nothing left to tap.
Each row says what happened in the same words as the change you made. An item a partner already took off the list reads already removed rather than reappearing on your list. A change saved more than a week ago reads saved too long ago to sync.
If a grocery item changes after you did — someone else changed it, or you did on another device — that later change stands and your waiting one isn’t applied. That covers checking it off or back on, adding it again, or putting it back on the list from the Pantry. The row reads it changed after you did, so this wasn’t applied, with only Discard to offer. What counts is when each change was made, not when it went up: a change you made after the other one still goes through, even if it reaches Mirepoix later. The exception is an item that has left the list since: a waiting check, uncheck or skip for it reads already removed, whenever you made it. A waiting add is judged like the rest, so if the item was taken off the list after you added it, that removal stands.
For a row that didn’t land:
- Retry sends the change again, and is offered when trying again could work — a server that was briefly unhappy. The row stops saying it failed as soon as it lands.
- Discard drops the change. Use it when the item doesn’t belong on the list anymore. For an add, it also takes away the item waiting above the field.
Changes that aren’t yours are never sent under your name. If someone else’s queued changes are still on this device, they show as — not from this sign-in and offer only Discard. Changes you queued in an older version of Mirepoix carry no sign-in of their own, so they read the same way: they’re kept, shown, and discarded by you rather than sent.
Tap Looks good when you’re done. The page refreshes to pull the latest list, including anything a partner changed on another device while you were offline.
Signing out clears what’s on this device, so Mirepoix asks first when that would throw work away: 2 changes saved on this device haven’t synced yet. Signing out will discard them. Cancel, get a signal, and let them sync before you sign out.
Someone else signing in on this device clears the saved pages too, even when nobody signed out first — a sign-in that simply timed out, or one you closed the browser on. The saved recipes belong to whoever is signed in, so they go when somebody else arrives, and the collection saves itself again for the new sign-in once there’s a signal. Queued changes are handled differently: they’re kept and shown to you rather than cleared, marked — not from this sign-in with only Discard offered, as above.
Read recipes offline too
Every recipe in your kitchen is saved on this device. Nobody chooses which — there’s no list to pin or tick, and no set to manage. Open Mirepoix with a signal once and it starts putting the whole collection away for reading later. On iPhone and iPad, and on a Mac when Mirepoix is added to the Dock from Safari, the installed app and Safari each keep their own set, so a newly installed app starts empty and saves the collection again with a signal.
The pages you visit are saved as you go, too. Your recipe list, the Menu, Groceries, and the Pantry are refreshed first each time, along with the page you’re on.
Saving runs quietly in the background, a page at a time, and yields to whatever you’re doing: it pauses while Mirepoix isn’t the app on screen — another app in front of it, or the screen off — while a page is loading, while an edit is being saved, while grocery changes are still waiting to go up, and on a very slow connection. It picks up where it left off, so opening Mirepoix again after a while is what gets the rest of the collection put away.
Saved copies keep themselves current:
- A recipe edited on another device refreshes here as soon as this device can reach Mirepoix. You don’t have to open it first.
- A recipe whose sub-recipe changed refreshes as well — edit a sauce, and every recipe that pulls that sauce in gets a fresh copy.
- A recipe you delete has its saved copy dropped from this device.
Open a saved page later without a signal and Mirepoix shows the copy it saved, with a line at the bottom of the screen that says how old the copy is: Showing a saved copy from 12 min ago. The page refreshes itself as soon as Mirepoix can be reached again, and the line goes away.
A page you were reading live does the same, without ever having shown that line. It was never a saved copy — it just held what it had while a partner changed something — and it refreshes itself once Mirepoix can be reached again. It waits until Mirepoix is the app on screen, and until any changes of yours that were waiting to go up have gone. The recipe editor never refreshes this way, so nothing you’re partway through typing is lost. On other pages, a text box you’re typing in keeps your words while the page updates around it, whether the update is this refresh, your own last add to Groceries, or a change from someone in your kitchen. Once you leave the box, later updates reach it as usual.
Some pages are never saved: the recipe editor, recipe version history, Settings, billing, and export. Anything outside a kitchen is never saved either. Tap a link to a page in your kitchen that isn’t saved on this device yet, without a signal, and a line says That page isn’t saved on this device. A never-saved page gets Couldn’t open that page right now instead, and so does any tap that simply didn’t get an answer, since Mirepoix can’t tell whether that page is saved. Either way you stay on the page you were reading. The line stays until you open another page or Mirepoix can be reached again.
Search still finds every recipe. Open it without a signal and you can type against your whole collection — the list of recipes travels with the page you’re reading. A recipe whose page isn’t saved on this device yet is marked not saved in the results, so you know before you tap it.
Photos aren’t saved on this device. Open a recipe without a signal and its photo is replaced by a note reading This photo isn’t saved on this device. The recipe itself is all there — ingredients, steps, and notes. Any other time a photo can’t be loaded, the note says Couldn’t load this photo instead.
If you open the app for the first time without a signal
Nothing is saved yet — not even the page that would say so — so opening a brand-new install with no signal shows your browser’s own “can’t connect” message, not a Mirepoix page. There’s nothing Mirepoix can do until it has been opened once with a signal.
So open Mirepoix with a signal that first time, and it starts saving for next time: the page you’re on and your recipe list, Menu, Groceries, and Pantry go first, then the rest of your recipes, a page at a time. Reading those saved pages later without a signal is covered above.
See also
Last updated October 13, 2026