Custom software & service management

Offline-First App Design: Business Software That Keeps Working Without Internet

When the connection drops in a workshop, a sports hall or out in the field, work should not stop. The logic, benefits and pitfalls of offline-first business software.

By AYM FlowPublished: 5 min read

An offline-first app lets users keep working when the internet connection drops and syncs the data with the server automatically when it returns. The application stores data on the device first, keeps changes in a queue and sends them when it can, so users never see “could not save” and work is never interrupted. Our own Multi Score Screen live scoring software follows this principle: when Wi-Fi weakens in a sports hall, the referee keeps entering points, the data syncs automatically once the connection returns, and the match carries on. This article explains how offline-first works, which businesses need it most and what to look for when choosing or building such software.

Why it matters: the internet is not uninterrupted everywhere

The connection that feels seamless at an office desk often is not where the work actually happens. Workshops in marinas, basement storerooms, concrete-and-steel sports halls, building sites and field service teams all deal with weak or missing connections. A cloud-only application simply stops at those moments: forms do not save, stock is not reduced, the score does not update. Users either wait or write things on paper to enter later, which wastes time and introduces errors.

Offline-first turns the problem around: the application is designed assuming there is no connection and treats connectivity as a bonus. For users the difference is clear; the app opens fast and every action responds instantly, because it works from local data first.

How offline-first works

  1. A local data store: the app keeps data on the device, usually IndexedDB in the browser for web apps, or a local database such as SQLite for desktop and mobile apps.
  2. A change queue: each change is written to local data and added to an outbox of items still to be sent.
  3. Synchronisation: when the connection returns, the outbox is sent to the server in order, and new server data is pulled to the device.
  4. Unique IDs: because records are created on the device, IDs must be generated without asking the server and without collisions, for example with UUIDs.
  5. Conflict resolution: a rule decides which version wins when the same record was changed differently on two devices.

The simple example below shows the core of it: write locally, queue the change, send it if online.

// Offline-first in a nutshell: write locally, queue the change, sync when online
async function savePoint(matchId: string, team: "A" | "B") {
  const change = { id: crypto.randomUUID(), matchId, team, at: Date.now() };
  await localDb.put("points", change);      // 1. the UI updates from local data at once
  await localDb.put("outbox", change);      // 2. remember what still has to reach the server
  if (navigator.onLine) void flushOutbox(); // 3. try to sync now, otherwise later
}

async function flushOutbox() {
  for (const change of await localDb.getAll("outbox")) {
    const res = await fetch("/api/points", { method: "POST", body: JSON.stringify(change) });
    if (!res.ok) return;                    // keep it queued and retry on the next "online" event
    await localDb.delete("outbox", change.id);
  }
}
window.addEventListener("online", () => void flushOutbox());

Conflicts: the hardest part

The real design question in offline-first apps is what happens when two people change the same data while offline. There are three common strategies. “Last write wins” is simple but can silently lose changes. Field-level merging combines changes to different fields of the same record, so if one person changed the phone number and another the address, both are kept. Sometimes asking the user is best: if two technicians marked the same work order differently, the system shows the conflict and asks for a decision. For numeric data such as stock, syncing movements rather than values (“3 items issued”) removes most conflicts.

Web, PWA or desktop?

Offline capability is not limited to desktop apps. Progressive web apps cache the application files with a service worker and keep data in the browser, so they can work without a connection. Desktop apps run locally by nature and, with a sync layer, work across several devices too. The right route depends on your users' devices, printing and hardware needs and how you want to distribute the software; we cover it in our article on desktop app vs web app. For the general logic of cloud subscription software, see our article what is SaaS.

User experience: show connection status honestly

  • Show sync status: a clear indicator such as “All changes saved” or “3 changes waiting to sync” builds trust.
  • Never lose data silently: a change that could not be sent must be reported and retried.
  • Say what works offline: for example, new records can be created but payments cannot be taken; make the limits visible.
  • Allow undo: mistakes made while offline must be just as easy to fix.

Security and backups

Once data lives on the device, a lost or stolen device becomes a risk. Encrypting sensitive data, limiting session length and being able to sign out a device remotely are basic safeguards. Sync also creates a central copy that is backed up regularly on the server, but unsynced changes exist only on the device, so reminding users after a long offline period is good practice.

Testing offline behaviour

Testing an offline-first app only on a good connection is not enough. Use the network throttling and offline modes in browser developer tools and airplane mode on phones to try these scenarios: creating records with no connection, the connection dropping mid-action, two devices changing the same record, and syncing after a long time offline. We discuss why these scenarios matter for stock and work orders in our barcode inventory and work orders article.

When should you choose offline-first?

Offline-first adds complexity: sync, conflict resolution and testing all need extra development time. If your users always work in an office with a reliable connection, you may not need it. But where work happens in the field, in a workshop, a hall or at an event, and an outage directly means lost work, the investment pays back quickly. As the Multi Score Screen FAQ notes, uninterrupted scoring on a weak connection is designed so a match is never interrupted. You can see the product's screens on our Multi Score Screen page, and if you want an app for your own business that works offline, see our custom software development service.

Share:XLinkedInWhatsApp

Frequently asked questions

What does offline-first mean?

The app stores data on the device first, queues changes and syncs with the server when a connection is available, so users can keep working without internet.

Can web apps work without internet?

Yes. Progressive web apps can work offline thanks to service workers and in-browser storage, and sync when the connection returns.

What happens if two people change the same data offline?

A predefined conflict rule applies: the latest change may win, fields may be merged, or the user may be asked to decide.

Does Multi Score Screen work when the internet drops?

It keeps scoring through a weak connection and syncs automatically when the connection returns, so the match is not interrupted.

Multi Score Screen

Tournament Bracket Software: Run Knockout and Round-Robin Events with Live Scores

Knockout, round robin or groups first? A practical guide from counting matches and planning courts to putting live scores on screens on tournament day.

Multi Score Screen

Scoreboard Cost: Electronic Boards, Free Options and Software Compared

A wall-mounted electronic board, a flip card or software running on a TV? How to work out what a scoreboard really costs your club and how to bring that cost down.

Multi Score Screen

How to Turn a TV into a Scoreboard: Step-by-Step Live Score Setup

The TV next to your court can become a live scoreboard in a few steps. A step-by-step setup guide, from choosing the screen to the TV settings people forget.