← Back to selected work

Local business operating system

Perko

A multi-tenant operating system for independent local businesses.

Outcome

A production system operating in Kazakhstan across 7 tenants, 15 locations, and 818 recorded orders as of September 1, 2026.

Perko product icon
Audience
Independent local businesses and their customers
Platforms
Web, PWA, iOS, Android
Market
Central Asia
Status
Production deployment; pilots in progress
Perko product interface. The customer marketplace brings participating venues, current products, availability, orders, and rewards into one shared shell.
The customer marketplace brings participating venues, current products, availability, orders, and rewards into one shared shell.
Perko product interface. Each venue keeps its own menu and brand context inside the same customer and operating system.
Each venue keeps its own menu and brand context inside the same customer and operating system.

Operating problem

Independent local businesses often split customer journeys, orders, staffing, stock, and daily controls across disconnected tools. That fragmentation makes each handoff harder to operate and verify.

What changed

Prodmake built Perko as one multi-tenant operating record connecting the customer marketplace, venue experience, staff workflows, owner controls, and production infrastructure.

Technical constraints

  • Keep customer, staff, and owner views consistent while each tenant and location retains explicit authority over its records.
  • Connect orders, stock, staffing, payments, and rewards without merging financial or operational truth across businesses.
  • Deploy and migrate the system without weakening audit history, backup recovery, or the single-writer production boundary.

Evidence

  • Production deployment Runtime 1.1.2 was operating in Kazakhstan on September 1, 2026.
  • Measured system baseline 7 tenants, 15 locations, and 818 recorded orders.
  • Release verification Deployment gates, application routes, API health, database preservation, backup tooling, and single-writer topology were reverified.

Technical foundation

Applications
React and TypeScript across responsive web and PWA surfaces, with Capacitor shells for iOS and Android.
API and data
A Fastify API over PostgreSQL 17, with append-only events and ledgers preserving operational history.
Architecture
A first-party modular monolith: one tenancy, identity, authorization, audit, and module kernel serving customer, staff, owner, and operator channels.
Production runtime
Docker Compose behind Caddy, with isolated web, API, and PostgreSQL services, encrypted backups, restore checks, and one API writer.

Key decisions

  • Configure one platform instead of forking it per business

    One release and schema serve multiple tenants and locations. Modules, business blueprints, and country packs change the operating composition without creating tenant-specific codebases.

  • Keep business truth on the server

    PostgreSQL owns orders, stock, money, workforce, and permissions. Client state and provider systems remain projections or adapters; they cannot silently replace authoritative records.

  • Preserve provenance rather than overwrite history

    Consequential mutations retain tenant, location, actor, device, timestamps, idempotency, and retry lineage. Corrections append compensating facts instead of editing protected history.

  • Separate identity, membership, and financial responsibility

    Authentication identity, customer membership, and staff assignment remain distinct. Orders and reward liabilities keep their source business and location instead of being merged across the network.

  • Fail closed when operational truth is uncertain

    Module access requires separate entitlement, activation, readiness, rollout, and permission checks. Unsupported offline payments and unresolved financial or sync states stay blocked and visible.

Next case study Focus Pattern A visual breathing and focus tool for short, deliberate resets. Read next

Need one accountable operator for a production product?

Share the market, constraint, current state, and budget reality in writing. If it looks like a fit, you will get a human response with the next step.

Start a product brief