Agriculture

Crop and treatment records for a farm

A farm records what was planted in each field, every treatment applied with the date and the product, and the harvest yield. Regulators require the treatment log, so it must be exportable per field and per season, and entries cannot be edited after a week.

Automatically generated draft

Written by machine against our own engineering playbook. The company is invented; the decisions are the ones we would make on a real build. A reviewed blueprint goes further — nine sections, agreed line by line, and it is what the build is tested against.

Section 01 · What has to work

A farm team records field plantings, treatments, and harvest yields on mobile to generate immutable regulatory export logs.

Section 03 · Screens

Every screen, and what it is for.

  • ›Field List — farm worker, view fields and tap to add activity, field load must be instant.
  • ›Activity Log — farm manager, record treatment product and date, form submission must be instant.
  • ›Export View — compliance officer, filter by field and season to download CSV, render must be instant.
  • ›Harvest Record — farm worker, input yield weight and date, save action must be instant.

Anything not on this list is not in version one. That is what keeps a fixed price fixed.

Section 04 · The data model

What it stores, and who can read a row.

field

id uuid, farm_id uuid, name text, boundary jsonb, created_at timestamptz

Access · Authenticated farm team members can read rows belonging to their farm.

planting

id uuid, field_id uuid, crop text, season text, planted_date date, created_at timestamptz

Access · Authenticated farm team members can read plantings for their farm fields.

treatment

id uuid, field_id uuid, product text, applied_date date, quantity numeric(10,2), locked_at timestamptz, created_at timestamptz

Access · Authenticated farm team members can read treatments; rows lock 7 days after created_at.

harvest

id uuid, field_id uuid, yield_weight numeric(10,2), harvest_date date, created_at timestamptz

Access · Authenticated farm team members can read harvests for their farm fields.

Those access rules belong in the database, not in the screens. Someone who edits the address bar still cannot read a row that is not theirs — and the test that proves it blocks delivery if it fails.

Section 05 · States

draft → active → locked(7 days post-creation) | archived

Most scope arguments three weeks into a build are really arguments about a state nobody named at the start.

Section 06 · Where this breaks

What bites products like this one.

Workers record treatments offline in the field without cellular connection, causing sync conflicts on reconnect.

Store all mutations in local IndexedDB first, syncing via idempotency keys when connectivity returns.

Regulatory exports fail or time out when generating massive multi-season CSVs across hundreds of fields.

Offload CSV generation to an asynchronous background worker and deliver the download link via notification.

Section 08 · Deliberately left out

What version one does not do.

  • ×Leave out multi-farm enterprise hierarchies — keeps v1 focused on single-farm team operations, add when scaling to contractors.
  • ×Leave out automated tank-mix inventory deduction — manual product text entry satisfies compliance without complex warehouse stock math.

This is the section that protects the date, and the only place in the document where somebody says no. It is also why clients trust the rest of it.

Still open

What we would ask before quoting.

  • What specific CSV column headers or formats do your local regulators mandate for the export?
  • Should workers be able to delete an accidental treatment entry within the 7-day window, or only add new correcting entries?

Half of this already exists

Fieldline

The field half of this is a solved problem: routes assigned, work captured with no signal and synced later, and an alert when nobody shows up.

It is one of our pre-built products: the code is handed over to you, adapted to your own wording and rules, and the rest of the specification above is built on top of it rather than from scratch.

Your product, not this one

Get this written for what you are actually building.

Describe it in a sentence and the generator returns the same sections for your own product. Free, no email, nothing saved to a list.

Next step

Find out if your idea fits in 10 working days.

Tell us what you want to build. We reply the same day with a straight yes, no, or here is what we would cut.

NDA available on request