Local First: Why Your Plant Data Belongs to You
How Sproutcast's local-first architecture works and why it matters.
Most plant monitoring apps are cloud-first by default: your data lives on their server, their app is the only way to access it, and if they shut down or change pricing, your years of growth data disappear.
Sproutcast is designed around the opposite principle.
What "local-first" means in practice
Care events are stored in IndexedDB in your browser. They are not sent anywhere unless you explicitly enable cloud sync. This is not a privacy setting buried in a menu â it is the default architecture.
Analysis results from the edge pipeline are stored on the device that ran the pipeline (your Raspberry Pi, your phone). When you connect to SpacetimeDB â whether local or cloud â they sync to the database. Disconnect the cloud and your data stays on the device.
Captures (the actual images) are stored as WebP blobs, also in IndexedDB. They do not leave your device unless you export them.
What you can do without a cloud account
- Log care events and view history
- Take captures and run the vision pipeline
- Set up monitor plans and alert thresholds
- View timelapse sessions
- Export all data as CSV
The only things that require a cloud account are real-time sync across multiple devices and shared garden access.
Data portability
Every table in Sproutcast can be exported as CSV from the dashboard. The GBIF species keys stored on plants make the exported data directly usable with other scientific tools â you do not need to know what "P3b.0" means to work with the exported metric data, because the headers are human-readable and the species are internationally recognised.
Why this matters for long-term plant monitoring
A dahlia tuber takes three to four years to reach peak flower production. A fig tree in a pot develops slowly over decades. The data you collect about these plants is only valuable if you can still access it in ten years. Local-first, open-source, and exportable are the only guarantees that hold over that timescale.