Engineering
The best ideas in software aren't new โ they're old and proven. As early as 1978, the Unix philosophy was already clear: make each program do one thing well, keep it simple, make data portable.
Most of the industry went the other way โ microservices, containers, orchestration: a cathedral of accidental complexity. We went back to basics, and applied the Unix philosophy to water.
One binary, one file, one job done well
Sparkoper is a single Go binary that serves the whole platform โ Requests, Maintenance and the WaterGuru assistant. One process. No microservices, no containers required. The database is SQLite: a single file on disk โ no database server, no daemon, no DBA.
Everything is a file
All of a utility's operational data โ complaints, interventions, equipment, maintenance plans, geospatial data โ lives in one open SQLite file. You can copy it, back it up, move it, and inspect it with standard tools. Where a typical SaaS stack needs a database server plus Redis, Elasticsearch, Kafka and a message broker, we need a binary and a file. Fewer moving parts, fewer things that break.
Portable by design
The platform runs on any Debian server โ a machine in a utility's office, a local VPS, a dedicated server in Europe, or an operator's own infrastructure. No proprietary cloud dependency. Migrating hosts means copying the binary, the file and the config โ minutes, not months. In an industry where digital sovereignty is becoming a requirement, this portability is a competitive advantage.
Backup is a file copy. Recovery is a file copy.
No specialized dump tools, no credentials, no corrupted exports. A field technician with a USB drive can back up and restore. For utilities facing power cuts and intermittent connectivity, this isn't a shortcut โ it's survival infrastructure.
Transparent and auditable
SQLite is an open, documented, public-domain format. Any engineer can open the database and see exactly what's inside โ no black box, no proprietary schema behind an API. Open format, export anytime, zero lock-in.
Performance is measured, not claimed
Fewer layers means less to optimize. Our Core Web Vitals run up to 10ร below industry thresholds:
- LCP โ 0.29 s (Requests) ยท 0.24 s (Maintenance) โ threshold 2.5 s
- INP โ 24 ms (Requests) ยท 32 ms (Maintenance) โ threshold 200 ms
- CLS โ 0 on both platforms โ threshold 0.1
Radical Simplicity โ the Unix philosophy, applied to water
Simple: one binary, one file, deployable in days. Composable: Requests, Maintenance and the assistant share the same data layer. Transparent: open formats, auditable, no lock-in. Portable: runs anywhere, copy to migrate. We didn't invent these principles โ we just refused to forget them.
Our stack: Go, SQLite, Vanilla JS, Nginx, Debian โ and the conviction that less is more.