A friend of ours has a Raspberry Pi in his greenhouse. It logs temperature, soil moisture, humidity, and light every few minutes, and for two years the readings went to a little dashboard running on localhost. Lovely. Useful. Visible to exactly one person, sitting at one desk, in one house.
Then his allotment friends wanted in. "Just send us the link," they said, as if there were a link.
The options he didn't take
If you've ever tried to share a local dashboard, you know the menu:
- Port forwarding. Poke a hole in your home router and hope the internet is feeling polite. The advice on every forum is some version of "be careful," which is forum-speak for "don't."
- A VPN or Tailscale. Genuinely good tech, but now every gardening friend has to install something, log into something, and call you when it breaks.
- Screenshots in the group chat. The dashboard of champions. Stale the moment you send it.
All three share a flaw: they try to bring people in to where the data lives. The fix is to push the data out to where the people are.
One sentence built the dashboard
He uses Claude Code, so he installed the /shiplock skill and typed:
Claude built the page, ShipLock deployed it, and a minute later there was a live URL. The "read-only for visitors" part matters: anyone with the link can watch the greenhouse, and nobody but him can touch the data.
One cron job keeps it alive
Every ShipLock app has a built-in data store behind a plain HTTP API. So the Pi runs one cron job, on the hour:
-H "Authorization: Bearer $SHIPLOCK_TOKEN" \
-H "Content-Type: application/json" \
-d "$(python3 read_sensors.py)"
That's the whole integration. The Pi reads its sensors, bundles the readings into JSON, and pushes them up. The dashboard updates for everyone, everywhere, within the hour.
Notice what never happened
No port was opened. No dynamic DNS was configured. No reverse proxy was tuned at midnight. The Pi makes outbound requests only, the same as any laptop browsing the web, so the home network stays exactly as closed as it was before. If the Pi dies, the dashboard calmly shows the last readings instead of a connection error.
His friends bookmark the link on their phones. One of them checks the soil moisture before deciding whether to drive over and water. Nobody has installed anything.
You can see a live version of this exact setup here: tester.shiplock.app/demo-garden-tracker
It's a pattern, not a one-off
Anything that produces numbers on a schedule can use the same shape. A home server's health stats. A weather station. A 3D printer's job queue. A beer fridge's fermentation temperature. The script changes, the pattern doesn't: build the dashboard in a sentence, push data with one cron line, share one link.
The greenhouse is doing fine, by the way. Humidity's a touch high.