Home / Work / Agri platform

Case study · agriculture · Romania

From a farm's harvest to a paid pre-order.

A platform where small farms and cooperatives sell a harvest before it is planted: buyers pre-order a share, the money is held against evidence, and release happens at milestones the producer has to prove — seedlings, harvest, delivery.

If you sell in the UK, the same machinery applies with different nouns. A veg box is a reward tier, a wholesale account is an agreement with a price discipline, a weekly round is a delivery window, and a CSA share is a pre-order with a season attached. The Romanian fiscal layer is the only part that does not travel.

Laravel 13Inertia + Vue 3TailwindLeafletPHP 8.3119 test files
AGRI PLATFORM · ROMANIA Platform home page: a live pre-order campaign with progress bar and county filters
A live campaign on the home page: funded share, days remaining, county coverage.
Project / role / scale

A marketplace, not a brochure site

The setting

Small farms, no sales channel

Romanian producers sell at the farm gate or through intermediaries. A cooperative can grow the crop but cannot take a card payment, promise a delivery window or prove a milestone to a buyer.

Our contribution

The whole application

Data model, API, back office, buyer-facing flows and the producer workspace, built as one Laravel application with a Vue front end and a written test suite.

The scale

84 models · 328 routes

132 migrations, 113 screens, 41,000 lines of application code and 119 test files. A producer directory of 77,490 records across 34 counties.

Flow one · money with conditions

Pre-orders released against evidence

A buyer does not invest; they pre-order a share of a specific harvest. The platform holds the money in an escrow ledger and releases it as the producer proves each stage — seedlings in the ground, harvest, delivery window.

Campaign page: 39,400 of 60,000 lei raised, 65 backers, reward tiers with remaining stock
39,400 of 60,000 lei, 65 backers, and reward tiers that show how many are left.

What the buyer sees

  • Evidence, not promises. Each milestone is a gate: the next payment cannot move until the producer posts proof.
  • A share of a harvest, priced in rows and square metres, with delivery in a named city and week.
  • Honest scarcity. Reward tiers carry stock — "24 of 40 left" is a database count, not a banner.
  • Shareable by link or WhatsApp, which is how these campaigns actually travel.

What the producer sees

  • A wallet with held, released and withdrawn amounts kept as separate ledger entries.
  • The same campaign from a private workspace: rewards, updates, supporters, payouts.
Flow two · B2B sourcing

A request, responses, and an agreement both sides accept

Beyond consumers, the platform runs a sourcing loop: a buyer publishes a request with quantity, product and county; producers respond; the chosen response becomes a versioned agreement that both parties accept.

Why this is the hard part

Anyone can build a form. The difficult part is that a B2B agreement changes after it is agreed — quantity, price, delivery date — and both sides need to see which version they accepted.

  • Requests, responses and agreements are separate records with their own lifecycle.
  • Every revision creates a new version; acceptance is recorded per version, per party, with a timestamp.
  • Withdrawal keeps the history rather than deleting it.
  • A national supply map with product, offer-type and county filters, and an explicit empty state: no point on the map does not mean no crop.
Supply map with product, offer type and county filters, and an honest empty state
Filters, an honest empty state, and the map as context rather than the product.
Flow three · the directory

77,490 producers, searchable by what they grow

Producer directory search by segment, product and county
Segment directories over a 77,490-record producer index.

Structure beats a list

A single sorted table of 77,000 producers is unusable. The directory is organised by segment — seed and seedlings, fruit growing, dairy, feed, machinery — each with its own filters, and every entry carries the county and the products it is relevant for.

  • Server-side search and pagination, so a county filter does not load 77,000 rows into a browser.
  • Producer records are separate from buyer accounts: being listed is not the same as trading.
  • Import and moderation flows, because a directory this size is maintained, not typed.
Contribution boundary

What is real, and what is deliberately not

Built and working

The application, the ledger and release logic, the sourcing workflow with versioned agreements, the directory, the producer workspace, PDFs and QR codes for produce labels, the multilingual public pages, and 119 test files covering the money and agreement paths.

The payment layer is a driver interface: the platform records pledges and escrow entries, and a payment provider plugs in behind it. No payment provider is connected in this build, and no sales, GMV or funding result is claimed.

Romanian-specific, and what changes for the UK

e-Factura and SERSPAR integrations exist because Romanian invoicing requires them. A UK build needs none of that: it needs VAT-compliant invoices, Making Tax Digital-friendly exports or an accounting integration, and delivery slots that match how UK growers sell — veg boxes, CSAs, wholesale to restaurants and farm shops.

The directory was seeded from public sources; the consumer campaigns shown are demonstration data, not client revenue.

For a UK agri business

Two shapes of work, same builder

The simple version

A digital store that sells produce properly

Products with real stock, delivery slots by postcode, click-and-collect at the farm, card payments, and an order list the picker can print. Three to four weeks, built on a stack you own.

Module scope and price →

The complex version

A platform with money and agreements in it

Pre-orders against milestones, memberships or CSA shares, wholesale ordering with agreed prices, supplier directories, and integrations with your accounting. This case is the second shape: 328 routes, 84 models, a written test suite.

Tell us the workflow →

Next

If you sell direct, or buy from growers

A one-week review at £1,050 takes one workflow — the checkout, the pre-order, the wholesale order — and returns the data model, the risks and a fixed build price. It is credited against the build.