Guides · How-to guides
An inventory app that works offline, and why most of them do not
· Invenva
Stockrooms are where phone signal dies. Offline means three different things in inventory apps, only one of them is useful in a shop, and there is a two-minute test that tells you which one you have.
Where the signal actually dies
The place you count stock is almost never the place with good reception. Stockrooms sit at the back of the building, behind a fire door, often below ground. Metal shelving is very good at stopping a signal. Loading docks are outside the walls but not inside the Wi-Fi. A market stall has whatever the network gives it that morning, and a delivery van has a different answer every few hundred meters.
This matters more than it sounds, because the moments that need recording are exactly these moments. A delivery arrives and it is short by two boxes. Somebody breaks a bottle. You are halfway down a shelf with a count in your head. If the app cannot take that now, it does not get written down at all, and the number in the system quietly becomes a guess.
Offline means three different things
Apps use the word for three arrangements that behave nothing alike, so it is worth knowing which one you are being sold.
- Read-only. The app keeps a copy of your list so you can look things up with no signal, but any change is refused until you reconnect. Useful for checking a price, useless for a count.
- Local-first. You enter stock as normal, it is saved on the device immediately, and it goes to the server whenever the connection comes back. The screen never blocks and nothing waits on the network.
- Fully local. The data lives on one device and never syncs anywhere. This is genuinely offline and it works, right up to the day the phone is lost or a second person needs to see the same numbers.
What breaks when an app was not built for this
The symptom is always the same and it is always blamed on the phone. You tap save, a spinner turns, and it keeps turning. Sometimes it gives up with an error and the entry is gone. Sometimes it succeeds twenty minutes later when you are already at the register and you can no longer remember whether it went in once or twice.
The cause is usually that the app asks the server to agree before it accepts anything. That is a reasonable way to build software when the network is a given, and it is the wrong way when the user is standing next to a freezer. An app built for a stockroom writes the change locally first and reconciles afterwards, so a lost connection is a delay rather than a failure.
The two-minute test
Do not trust the marketing page, and do not test it by turning off Wi-Fi while still on cellular data. Put the phone in airplane mode, open the app, and try to do the real job: add a product, take five units out, do a short count, and write a note on a line that does not match.
Then watch what happens when you turn the signal back on. Everything you entered should still be there, it should appear on a second device within a few seconds, and nothing should have been recorded twice. An app that passes that will not let you down in a basement.
Doing it in Invenva
Invenva is local-first by design, and it was built that way because the people it is for work in exactly these places. Stock in, stock out, counts, notes, new products: all of it saves on the device the moment you tap, and syncs on its own when the connection comes back. There is no queue to remember and no button to press.
A quiet marker appears on the stock screen when you are offline, so you know the state without being interrupted by it. Nothing blocks, nothing shows a modal, and no work is lost if the app is closed before the signal returns.
Stock in and stock out are recorded as increments rather than as a new total, which is the detail that makes two people safe. If a colleague sells three units while you are underground removing five, both changes apply when the two devices meet, instead of the second one overwriting the first.
A few things do need a connection: adding a product photo, which has to upload, moving stock to another workspace, and team changes such as joining with a code or changing a role. That last one is deliberate, because there being certain matters more than being fast.
You can try the offline behavior without an account. Open the demo, put the device in airplane mode, and keep working.