A farmer in Boyaca receives a pest alert at 7am. He drives 40 minutes from town to his potato fields at 2,800 meters, where the nearest cell tower covers about 30% of his land on a good day. When he opens the Sioma app to check which zones triggered the alert, what should happen?
If the app requires a live connection to load field data, the answer is: nothing useful. He can't see which zones flagged. He can't check the most recent satellite pass. He can't confirm whether the alert zone overlaps with the sector he's standing in. The app is dead weight in the field.
This is the core problem with most agricultural software built for markets where reliable connectivity is assumed.
The connectivity reality in Colombian highland farms
Mobile data coverage above 2,000 meters in Colombia is patchy by design. Cell towers follow road density, not farm density. The farms in the Andes - the potato zones of Boyaca and Cundinamarca, the coffee farms in the hills of Narino, the panela cane farms in Antioquia - often have no signal at all in the middle of the property even when they have signal near the access road.
This isn't a temporary infrastructure problem that will be solved next year. The economics of building towers in steep highland terrain for scattered farm populations are not favorable. Satellite internet is improving, but it still doesn't work on a moving tractor or when you're walking between rows in a tall canopy crop.
Agricultural software that doesn't work offline isn't agricultural software for Colombia. It's software for agribusiness offices.
What "offline-first" actually means
There's a difference between "works offline" and "offline-first." A lot of apps will let you view something you loaded earlier if your connection drops. Offline-first means the app is designed from the start to work without a connection, treating connectivity as an enhancement rather than a requirement.
For Sioma, offline-first means the app caches on your device:
- The last 30 days of satellite imagery and field health data for your registered fields
- Current active alerts, including which zones triggered them and what the satellite pattern looked like
- Soil moisture readings and irrigation recommendations from the last sync
- Field boundary maps and zone definitions
- Any pending task list items generated since your last sync
When you open the app in the field with no signal, all of this is available immediately. You can view your field zones, review the alert that brought you out, and check the satellite overlay for context - all without a byte of data moving over a network.
What happens when connectivity returns
When the app detects a connection again - on the drive back to town, or when you step into a zone with signal - it syncs automatically in the background. Any field notes you recorded offline upload. New satellite passes that arrived while you were disconnected download. Alert statuses update.
Conflicts are handled conservatively: if you marked a pest alert as "confirmed" while offline, and the system received new data suggesting the alert may have been a false positive, you see both pieces of information when you reconnect. The sync doesn't silently overwrite your field observations.
Why this cost more to build and was non-negotiable
Building offline-first is technically harder than building a standard server-dependent app. You need a local data store, sync logic, conflict resolution, and careful attention to which data is worth the storage cost of caching vs. what can wait for connectivity.
We made this a non-negotiable design requirement during the first version of the mobile app because we watched what happened when we didn't. Early beta testers in Boyaca opened the app in their fields, saw a loading spinner, waited 20 seconds, and put their phones away. The tool wasn't usable where it needed to be used. An agronomic platform that only works in the office has solved exactly the wrong problem.