I built Groundtruth.
Disclosure up front: this is not a stealth ad.
Most AgTech for small produce is a hosted calendar:
Standing orders spawn next week.
The phone writes.
Stripe lives in someone else’s tenant.
That’s a real product.
It’s also a different constitution than a perishable wholesale desk.
The constraint I would not break:
One PC is the only writer.
The farm file is the books.
Replay the event log against the projection, and the screen is allowed to go red if they drift.
Connection state — Stripe keys, farm display name, etc. — is config, not farm truth.
Import refuses a foreign dump.
What that looks like on a wiped machine:
Empty on purpose.
No demo venue.
No seed inventory.
No invented calm zero.
First actions:
→ Venue
→ Standing or sample
→ Sow to cover demand
→ First wholesale order
The domain that’s easy to get wrong — and calendar apps usually flatten:
• Standing demand is weekly and undated.
A wholesale line is dated.
Those are not the same object.
• Harvest is crop-first. Pack is customer-first.
What the knife cuts vs. who gets the trays.
Both are printed from the same ordered-for-today read.
No second “cut” event kind.
• Leftover is actual harvested ounces.
Listed off the harvested tray, then collected on that row.
Not a guaranteed-yield leftover cap.
• Health is computed.
Healthy is not the default skin.
Stack, short:
Rust/Tauri + SQLite event log
React desk
Local-first
Free
No paid SaaS as the source of truth
Live card keys are still off.
Collect is test-mode on purpose.
I’m not claiming this replaces a multi-seat van + live invoicing suite.
Those products win at:
“Less thinking on Sunday.”
This is aimed at:
“Less lying on Monday.”
If you work on farm software:
How do you keep standing orders (rate) and wholesale orders (date) from collapsing into one table?
That collapse is the lie I kept hitting.
https://v.redd.it/0lphv5f2ltmh1
Source: r/AgriTech · by /u/Dramatic-Logging