Skip to content
Case Study

AgroData

An online auction market for Moldovan farming — grain, machinery, haulage, insurance, even job vacancies. Sellers post a lot, buyers bid against a clock, and both sides confirm the deal afterwards.

10Marketplaces in one 1,507Localities, across 37 districts 4Languages 6Programs behind the site
What We Built

Ten marketplaces in one site, and a person checks everyone who joins.

Ten marketplaces in one

Grain, machinery, chemicals, haulage, insurance, financing, business services, digital services, consultancy, and job vacancies. Grain and machinery get deep, field-by-field posting forms worked out with the client; the lighter categories share a simpler one.

Bid against a clock, or buy it now

A background job wakes every thirty seconds, closes the lots whose time is up, works out the top bidder and tells them three ways at once: email, Telegram, and a notice pushed straight to the browser.

Everyone is checked by hand

Private sellers photograph both sides of a passport, companies upload registration papers, and staff work through the queue themselves. Nobody trades on this platform anonymously.

Four languages, and every village

Romanian, Russian, English and Turkish, about 2,020 phrases each. All 37 districts and 1,507 localities are in the site, so a listing can say exactly where a lorry has to go.

How It Works

Six programs, and one database they all share.

  1. 1

    The site people see

    One program draws every page, and asks the five behind it for everything it shows.

  2. 2

    Five programs, one job each

    Signing people in, running the auctions, moving money, carrying the chat, and fetching the day’s grain prices from the Paris and Chicago exchanges.

  3. 3

    One shared database underneath

    They do not pass messages to each other; they read and write the same records. That is what makes the platform feel like one thing instead of six.

Sharing one database is the decision this platform is built on: it is why the six parts agree with each other without any ceremony. It is also the decision that matters most as the platform grows — rebuilding any one part means touching data the others depend on.

Built With

Ordinary tools, nothing exotic in any of the six.

In the browser

What a visitor sees: the catalogue, the countdown, the chat, all four languages.

  • TypeScript
  • React 18
  • Next.js 12
  • MUI

On the servers

Five small programs, all but one in the same language.

  • Go 1.23
  • Gin
  • Iris

Where the data lives

One database for everything, a fast cache for the auction clocks, and a file store for photographs and documents.

  • MongoDB
  • Redis
  • MinIO

How it was shipped

Every program in its own box, on a cluster written down as a recipe rather than clicked together.

  • Docker
  • Kubernetes
  • Terraform
  • GitLab CI
The Hard Parts

Where the auction gets difficult, and none of it is the countdown.

A bid is all or nothing

Placing one bid does five things at once: records the bid, moves the price, bumps the counter, adds you to the participants, and — the first time you bid on a lot — takes the participation fee from your balance. If the balance is short, none of it happens. Built as one indivisible database operation rather than five hopeful updates in a row.

Two opposite auctions, one machine

In the usual kind the price climbs and each bid must beat the last. In the Dutch kind it falls and each bid must be lower — and “buy it now” flips meaning between them. One set of rules serves both.

Winning is not the end

After the clock stops, the seller confirms and the buyer confirms, separately, and the lot sits half-signed until both have. Only then can they rate each other. Nobody asks for that in a brief; everyone needs it once real money is involved.

The Build

Around 1,300 hours of work, and counting.

In developmentWhere the project stands

We are looking for an investor to carry it the rest of the way.

Get In Touch

Have a project idea? Write down a quote!

Got a project? Drop us a line if you want to work together on something exciting. Or do you need our help? Feel free to contact us.