Why your billing software shouldn't need the internet.
A shop counter is the worst place to depend on a connection. What goes wrong with cloud-only billing, and what a local-first setup looks like instead.
The queue at the counter
It’s Saturday afternoon and there are six people waiting to pay. The billing screen shows a spinner. The router is fine, but the provider has an outage two cities away. Nothing can be sold until it comes back.
Most small businesses I work with have lived through this. The software was sold as “always up to date”, but it only works when every link between the counter and a distant server is working too.
The till should be the most reliable machine in the shop, not the most fragile.
What local-first means
Local-first software keeps the real copy of your data on the machine in front of you. Invoices, stock levels and customer records live in a database file on the shop computer. The app reads and writes there directly, so it is fast and works with the cable unplugged.
-- every sale is one local write
INSERT INTO invoices (number, total, created_at)
VALUES ('INV-2041', 1840.00, datetime('now'));
There is no login screen that needs a server, no subscription check on start-up, and no monthly fee that turns the software off if a payment fails.
Backups without a cloud
The fair question is what happens if the computer dies. The answer is a scheduled copy of one file to a USB drive or a second machine, plus an optional upload when a connection is available. Restoring is copying that file back.
When you do need sync
Some businesses have more than one counter, or staff recording sales in the field. Sync still has a place there, but as a background job, not a requirement for making a sale. Each device keeps working on its own and sends its changes when the signal comes back.