DEV Community

tecnologos rd
tecnologos rd

Posted on

I Built an App That Works Without Internet — Here's Why Silicon Valley Won't

Most apps assume you're always online. But 3.4 billion people have unreliable or no internet access.

I'm a full stack developer based in the Dominican Republic. One of my clients is a cacao aggregator — their vendors drive into the mountains every morning to buy raw cacao from small farmers. No cell signal. No Wi-Fi. No cloud. But they still need to record every purchase, print a receipt, and have everything synced by the time they're back in town.

So I built an offline-first PWA that handles all of it.

The stack
Angular 19 as the frontend framework
Dexie.js wrapping IndexedDB for local storage
Supabase (PostgreSQL) for backend sync
Service Workers for asset caching
Web Bluetooth API for thermal receipt printing
How it works

The app is designed to work without internet from the ground up. The local device is the source of truth — not the server.

Every purchase gets recorded locally with a timestamp and a UUID. A sync queue stores every transaction that hasn't been pushed to the server. When the device detects connectivity, a background process pushes the queue to Supabase in order. If a sync fails, it retries automatically. The user never waits.

A vendor in the mountains can record 30+ purchases in a day without a single byte of internet. Drive back to town, connect to Wi-Fi, and 30 seconds later the office has every record.

The wild part: Bluetooth printing from a browser

The app prints physical receipts through a Bluetooth thermal printer — from a web browser. No native app. No Play Store.

The PWA generates ESC/POS byte arrays (the command language thermal printers use), connects via the Web Bluetooth API, and writes the data in 20-byte chunks with delays between each write. It's slow — a long receipt takes 5-8 seconds — but it's reliable.

Why this matters

Almost every modern app is built with one assumption: you're always connected. That assumption breaks for half the planet.

The gap between need and supply is a market. Agricultural aggregators, field inspections, rural clinics, small businesses in areas where internet drops during peak hours — every one of these is a software product waiting to be built.

And the developers best positioned to build them are the ones who see these problems every day — developers in Latin America, Africa, and Southeast Asia.

Video breakdown

I made a full video breaking down the architecture, the sync queue, the Bluetooth printing layer, and why I think offline-first is a massive opportunity that Silicon Valley is ignoring:

If you're building offline-first apps or thinking about it, I'd love to hear about your approach in the comments.

Top comments (0)