Naughty Bean Consulting
Sheet P-06 93 Degrees
Sheet P-06 Product Rev A Coffee businesses from a single shop to a multi-site group

93 Degrees

One multi-tenant platform for coffee businesses, with POS, ordering, inventory, payroll and operations as modules.

In build

After building a point of sale, an ordering platform, an e-commerce site, a payroll engine and an operations portal as separate products, the obvious next move was one platform. 93 Degrees is that consolidation: point of sale, click and collect, e-commerce, inventory, payroll and operations as catalogue applications on a single multi-tenant Django platform.

All code is always deployed. What a given workspace can reach is decided at runtime by an entitlement engine, so plans, limits and add-on modules are configuration rather than deployments. Each workspace lives on its own subdomain with schema-level isolation, a marketplace exposes optional modules, and a monthly billing run reads the same entitlement catalogue.

It is in active build, and it is the platform the rest of our coffee products are converging on. The name is the water temperature.

Fig. 2 System diagram
Notes — what it does
  1. Application catalogue: POS, Click & Collect, E-commerce, Inventory, Payroll and Operations as modules.
  2. All code always deployed; what a workspace can use is decided at runtime by entitlements, so plans and limits are configuration.
  3. Schema-per-tenant workspaces, each on its own subdomain, with self-serve signup and provisioning.
  4. Platform API and Workspace API, authenticated by session or API key.
  5. Monthly billing run and a marketplace for optional modules.
  6. CMS-driven public e-commerce site with a merchant workspace.
  7. South African payroll tax-year seed data included.
Bill of materials
ItemLayerComponent
01FrameworkDjango 5.2 with django-tenants; one PostgreSQL schema per workspace, each on its own subdomain
02DatabasePostgreSQL
03APIsdjango-ninja: a Platform API and a per-workspace Workspace API with session or X-API-Key auth
04Front endHTMX, Alpine.js, Tailwind CSS compiled with the standalone CLI; no Node in the build
05EntitlementsRuntime entitlement engine deciding what each workspace can reach from a catalogue of applications
06BillingMonthly billing run against the entitlement catalogue

Integrations

Module marketplaceCMS e-commerce moduleOperations telemetry module
Request for quotation

Tell us what to build.

A web app, a mobile app, a platform, an integration nobody else wants to touch. Send the brief, we reply with questions, a scope and a price.