---
title: "Online Ordering for Farms: Farmica Launches Platform"
slug: "farmica-online-ordering-for-farms"
published: "2026-05-23"
updated: "2026-05-28"
validated: "2026-05-28"
categories:
  - "Next.js"
tags:
  - "online ordering for farms"
  - "farm pickup ecommerce"
  - "perishable inventory management"
  - "farm pickup platform"
  - "multi-tenant SaaS for farms"
  - "subdomain store"
  - "Next.js 16.2"
  - "Payload CMS 3"
  - "self-service onboarding"
  - "hub collection marketplace"
llm-intent: "reference"
framework-versions:
  - "next.js@16.2"
  - "payload@3"
status: "stable"
llm-purpose: "Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today."
llm-prereqs:
  - "Access to Next.js 16.2"
  - "Access to Payload CMS 3"
  - "Access to PostgreSQL"
  - "Access to S3"
  - "Access to Brevo"
llm-outputs:
  - "Completed outcome: Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today."
---

**Summary Triples**
- (Farmica, is, a pickup-first online ordering platform built specifically for farms (perishable-first inventory))
- (Storefronts, are hosted on, per-tenant subdomains (your-farm.farmica.si))
- (User experience, requires, locking pickup context (date + location) before showing available stock)
- (Tenant onboarding, is, self-service via a wizard (register.farmica.si) that creates tenant, catalog, schedule, and inventory on publish)
- (Product surfaces, include, Order form (customer-facing) and Office (farm backoffice for management))
- (Availability, is modeled by, date- and location-specific slots (availability-by-date))
- (Publishing, triggers, one-shot creation of tenant records, catalog, delivery schedule, and optional inventory)
- (Tech stack, uses, Next.js 16.2, Payload CMS 3, PostgreSQL, S3, nginx, Brevo, CI/CD)
- (PWA & push, are, optional features exposed on the profile page for stores)

### {GOAL}
Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today.

### {PREREQS}
- Access to Next.js 16.2
- Access to Payload CMS 3
- Access to PostgreSQL
- Access to S3
- Access to Brevo

### {STEPS}
1. Follow the detailed walkthrough in the article content below.

<!-- llm:goal="Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today." -->
<!-- llm:prereq="Access to Next.js 16.2" -->
<!-- llm:prereq="Access to Payload CMS 3" -->
<!-- llm:prereq="Access to PostgreSQL" -->
<!-- llm:prereq="Access to S3" -->
<!-- llm:prereq="Access to Brevo" -->
<!-- llm:output="Completed outcome: Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today." -->

# Online Ordering for Farms: Farmica Launches Platform
> Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today.
Matija Žiberna · 2026-05-23

**Farmica is live.**

I have been building this quietly for a while now, and it is finally at a point where I can talk about it properly.

Farmica is an online ordering platform built specifically for farms selling direct to customers. Not a generic shop. Not another Shopify storefront. Something built around how farm sales actually work: the customer picks up their food at a specific location on a specific date, and only then sees what is available for that slot. Perishable logic, not catalogue logic.

I have been calling this **context first, commerce second** in the internal docs. Wolt and Uber Eats do something similar with address and delivery time; Farmica does it for farm pickup and hub collection. If you browse without locking in *where* and *when*, you get the wrong stock, the wrong dates, or both. The product does not pretend otherwise — the pickup context sits in the header on every page, not buried at checkout.

### What a farm actually gets

Each farm runs on its own subdomain (`your-farm.farmica.si`) with two main surfaces:

- **Order form** — the customer-facing store (catalog, cart, checkout, account, optional PWA install and push on the profile page).
- **Office** — the backoffice where they manage orders, products, delivery dates, locations, and — when they need it — inventory.

Farmers can sign up through a **self-service onboarding wizard** ([register.farmica.si](https://register.farmica.si/)): account, products, pickup and/or hub delivery, calendar dates, locations, and optionally stock. When they hit publish, the tenant, catalog, delivery schedule, and inventory records are created in one shot. No “we will set you up manually” phase.

There are two **order modes**, because not every farm wants production batches and reservation math on day one:

- **Advanced** — delivery dates, pickup slots, fresh stock tied to a date (“sveža zaloga”), shelf-stable pool stock (“trajna zaloga”), reservations on order create. The catalog is availability-aware for the selected date.
- **Simple** — still a real storefront, but oriented toward farms that mainly want to collect orders and handle logistics themselves, without running the full inventory machinery.

Orders can sit in **pending approval** until the farmer confirms — useful when you are still coordinating pickup by phone or message.

Storefronts are live in **Slovenian, English, and German**. Customers can check out as guests or with an account; one email can work across farms on the platform (register on one farm, log in on another without a second signup). That was a deliberate multi-tenant choice, not an afterthought.

### What is still in progress (being honest)

I would rather say this here than oversell on a landing page:

- A **cross-farm marketplace** (`trznica`) — shared pickup places, one cart per place and date, checkout splitting into one order per farm — has a solid data layer and routing groundwork; the full shopper experience is not finished yet.
- **Simple mode** is real in the model and onboarding, but some storefront paths still assume the advanced delivery-date flow in places.
- **“Delivery by agreement”** (order now, arrange details later) is specced and feasible; not fully shipped.

The core loop — farm publishes, customer picks context, orders, farmer runs Pisarna — is what I am happy to show today.

### Under the hood

The stack is **Next.js 16.2** on the App Router with **Payload CMS 3** as the backend (collections, auth, jobs, admin). Multi-tenant by design: tenant-owned data is scoped everywhere it matters, which sounds obvious until you have tried to bolt it on later.

Everything is **fully self-hosted**. I set up separate dev, staging, and production environments with their own S3 buckets and PostgreSQL clone replicas at each pipeline stage. CI is wired up across all three. Background work (email, media, inventory-heavy jobs) is split between in-process runners and dedicated workers so a newsletter spike does not starve order processing. It is the kind of setup I usually see at much larger teams, and doing it at this scale — as a small studio — has been genuinely interesting to think through and document.

Transactional email runs through a Brevo-backed pipeline; I treat email less as “notifications” and more as **trust**: did the order go through, what happens next, does the farmer need to act now. Several lifecycle gaps remain on that front, and they are on the list.

### What I will write about next

A lot of content is going to come out of this: the infrastructure decisions (VPS, nginx, observability, clone DBs in CI), the product design (why location should beat date in the UI, shared pickup places vs tenant locations), Payload multi-tenant footguns, and the tradeoffs of building B2B SaaS as a two-person studio. Stay tuned.

### Try it

If you know a farmer selling directly to customers, they can sign up for free here:
[https://register.farmica.si/](https://register.farmica.si/)

And if you want to see how the customer-facing store works, the demo is live:
[https://demo.farmica.si/en](https://demo.farmica.si/en)

---

*Shorter version (~120 words) if you need a newsletter blurb:*

> **Farmica is live** — online ordering for farms selling direct, built around pickup location and date before catalog (perishable logic, not Shopify logic). Next.js 16.2 + Payload CMS 3, self-hosted with dev/staging/prod CI. Farms get a subdomain store + Pisarna backoffice; customers see availability for their slot. [Register a farm](https://register.farmica.si/) · [Demo store](https://demo.farmica.si/en). More posts on infra and product design soon.

## LLM Response Snippet
```json
{
  "goal": "Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today.",
  "responses": [
    {
      "question": "What does the article \"Online Ordering for Farms: Farmica Launches Platform\" cover?",
      "answer": "Online ordering for farms: Farmica launches a pickup-first platform with subdomain storefronts, self-service onboarding, and a live demo — register today."
    }
  ]
}
```