P/
personal field notes ·
back to home ↗

/ field notes / Shelvix

Building Shelvix: A Field Force Platform, on Your Terms

Personal thoughts on engineering a self-hosted, offline-first workspace for the people who keep products moving through stores.

I’ve been spending a lot of time working on Shelvix — a self-hosted Field Force Automation and merchandising execution platform designed for small and mid-sized FMCG businesses in Central and Eastern Europe.

How the idea came about

The idea grew from seeing how smaller FMCG teams — regional bakeries, craft dairies, and local beverage producers — handle field operations. These businesses don’t need bloated enterprise software. Most mornings, they need honest answers to three simple questions:

  1. Is my product actually on the shelf?
  2. Did the merchandiser physically visit the store?
  3. What does the shelf look like right now?

Existing cloud services can feel overly complex or expensive, and subscription lock-in can make a business dependent on a vendor for its own operational data. We wanted to build something clean and fast that a business owner could deploy on their own server in minutes.

How it’s being developed

The backend, shelvix-hub, uses Python, Django REST Framework, Postgres, and Celery. The Android field app, shelvix-field-android, is designed around strict offline-first execution.

We made a few deliberate architectural choices early on:

  • Single-tenant and self-hosted. Each customer runs their own container deployment. There is no telemetry, usage tracking, or central phone-home mechanism.
  • Offline Ed25519 licensing. Deployments can be licensed without an online license server. The Community Edition is free, with two active Supervisors and two active Merchandisers; mounting a signed .lic file unlocks Commercial Edition limits.

Features I’m proud of

  • Server-validated geofencing. The server is the source of truth for GPS checks. We validate check-ins with Haversine distance against each store’s radius, then automatically check out a merchandiser who exits the zone.
  • Passwordless mobile auth. A supervisor generates a six-digit QR pairing code from the web dashboard. The Android app exchanges it for access and refresh tokens, so merchandisers don’t need to type passwords in the field.
  • Management by exception. Visits have separate execution status, review status, and anomaly flags. Celery rules auto-approve clean visits and surface only issues — like missing required photos or geofence overrides — for human review.
  • Conflict-resilient offline sync. Field evidence is never discarded. If a visit is reassigned or cancelled while a merchandiser is offline, the server still accepts their photos and data while flagging the conflict for a supervisor.
  • A self-disabling setup wizard. On first run, a web wizard checks database, Redis, and Celery connectivity, handles migrations, creates the admin user, and then permanently locks itself down.

The potential

There’s a large, underserved group of regional SMB manufacturers and distributors across CEE and Europe who want control over their own data. They don’t need invasive real-time tracking or a complex ERP. They need a reliable, offline-ready tool that makes field execution straightforward.

Keeping Shelvix lean, self-hostable, and focused on operational clarity gives it a real opportunity to become a favorite open, self-hosted choice for regional FMCG brands.

The most useful software for a field team may be the software that stays out of the way — and keeps working when the network doesn’t.

← Back to field notesShelvix · Android · web · FMCG