Platform development for operators who launch more than one local brand
jobs

Platform development for operators who launch more than one local brand

One Django backend and many Next.js storefronts let agencies and co-ops share rails while each shop keeps its own customers, payments, and look

25 May 2026

When a market association, digital agency, or serial entrepreneur opens a second local shop online, the temptation is to clone the first website: new domain, new admin login, new spreadsheet for orders, new payment account to reconcile on Sunday night. That pattern keeps customer records physically apart, but it also duplicates every fix—checkout updates, courier integrations, article pages, staff training—across ventures that could share the same operational playbook.

A different build path is taking shape among South African small-business operators: one maintained Django backend feeding many branded Next.js storefronts, each scoped to its own company record for products, orders, settings, and credentials. Shared engineering lowers launch cost; separated data preserves trust between merchants and their buyers.

Shared rails, separated compartments

Multi-tenant commerce architecture—where many storefronts run on a shared codebase while tenant data stays isolated—is a well-established pattern for operators who must roll out features once and serve many brands (How to Build a Multi-Tenant eCommerce Platform — Spree Commerce). The approach differs from stacking unrelated SaaS subscriptions: infrastructure, deployment, and core logic are unified, while each merchant’s catalogue, cart, and order history remain walled off.

In production on South Africa’s web, past-and-present.co.za illustrates the consumer-facing half of that model. The Hartbeespoort-based shop trading as Past and Present under “Vintage & Modern Treasures” lists hardware, consumables, bundles, and resale stock with conventional cart and account flows. Product imagery is served through an API media route tied to a shared backend host rather than static page assets—a signal that the public site consumes a central API, not a standalone brochure (Past and Present). FAQ copy on the same domain describes tracked delivery windows, card payments via Yoco, and fourteen-day returns (Frequently Asked Questions — Past and Present).

The same engine supports vertical templates tuned for different trades without naming every fork in public: honey and farm-goods demos, apparel lookbooks, spirits-oriented catalogues, plant nurseries, and news-style editorial sites appear as distinct branded Next.js deployments on preview hosts, while media and product records resolve through the shared API layer (QuickCask, Just Honey, Everloom). Next.js, documented as a React framework for full-stack web applications with built-in optimisations for shipping interactive storefronts, is the typical skin for those public faces (Next.js Docs).

On the server side, Django supplies structured models, authentication, and an admin surface suited to long-lived business data (Django at a glance). Django REST framework exposes serializers and browsable endpoints so each Next.js shop fetches JSON for products, company branding, and checkout without re-implementing business rules in the browser (Django REST framework). Company-scoped records carry each tenant’s logo, accent colour, SEO fields, and contact settings—branding travels from the database to the storefront rather than being hard-coded per site.

Onboarding: registration, approval, go-live

For operators managing a portfolio, the onboarding sequence matters as much as the architecture diagram. New merchants on this stack typically move through three visible stages:

Registration. A business owner submits a sign-up with company details; the platform creates a user account and a company record that begins in a trial state, assigns a default service product, and opens a registration deal in the operator’s CRM queue. The applicant receives a pending-approval message rather than immediate public activation.

Approval. Staff review the registration—often from a mobile CRM workflow—before the deal is marked won. Until that gate clears, public store and SEO endpoints remain restricted.

Go-live. Once approved, the company status flips to active. Branding syncs to directory and site-setting records; the merchant can publish products, connect integrations, and serve shoppers on a production domain—as Past and Present has on .co.za rather than a preview URL alone (Past and Present).

That pipeline gives agencies and co-ops a shared playbook: the same checklist for photography, return policies, and courier messaging runs for venture four as for venture one, while each applicant still passes human review before going live.

One email, more than one shop

Shoppers who already have an account at one branded storefront can reuse credentials when they engage with another shop on the same platform. At login, selecting the target business links the user to that company’s membership list if they are not already associated—so a customer who bought tools from Past and Present can later create an account context at a plant or honey shop without maintaining separate passwords for each domain. New customer registration for a second shop, however, still requires a unique email address at sign-up; the system enforces one user record per email globally, consistent with Django’s authentication model (User authentication in Django).

For operators, the distinction is practical: buyer accounts can span stores through login linking, while merchant registrations remain one business per owner email unless staff intervene. Customer data for orders, carts, and enquiries stays company-scoped—wholesale buyers on one storefront do not automatically appear in another’s mailing list, aligning with expectations under South Africa’s POPIA that personal information is collected for a stated purpose and not commingled without cause (POPIA and your practice website).

Per-tenant payments and shipping

Shared code does not mean shared merchant bank details. Payment capture through Yoco and fulfilment through The Courier Guy (including Pudo pickup search and shipment creation after paid orders) are configured per company, with platform-wide defaults available so early tenants can launch before every credential is bespoke (FAQ — QuickCask, The Courier Guy API documentation). Each shop’s checkout therefore settles to its own payment profile and books parcels under its own carrier account once keys are supplied—critical when a co-op hosts stallholders who invoice separately.

Why agencies and co-ops are watching

Industry polling cited in business press found that a large majority of South African small businesses treat digital tools as a significant priority, with many already using automation for content and operations (State of South African Small Business 2026 — Business Report). For groups launching more than one local brand, the operational payoff of a unified platform is speed and consistency:

  • Faster launches. Vertical templates for food, vintage resale, plants, apparel, and news reduce time-to-first-order compared with bespoke builds for every stall or side business.
  • Shared playbooks. Onboarding, FAQ structures, article pages, and fulfilment messaging can be replicated across members without retyping the same checklist into separate tools.
  • Isolated customer data. Orders, contact submissions, and notification settings remain compartmentalised by company even though staff sign into one operator portal.

Analysts describe the opposite pattern—disconnected admin URLs and duplicate exports—as a “frankenstack” that multiplies reconciliation work without appearing on any single invoice (Frankenstack: What It Is and How To Fix It). Consolidation is increasingly framed as an operational project for multi-shop coordinators, not a luxury reserved for large retailers.

Room for mobile later

The same company context that feeds Next.js storefronts today is designed to extend to Flutter staff and customer apps when a brand outgrows browser-only workflows. Flutter’s documentation positions the framework for building multiplatform applications from a single codebase (Flutter documentation), and the backend already scopes push notifications and device registration by company for team approval workflows. A honey seller who starts on the web can later add a pocket dashboard for stock checks without rebuilding product and order logic from scratch.

What remains to prove

Live tenants such as Past and Present demonstrate that the pattern works outside demo environments (Past and Present). Preview templates for spirits, honey, and apparel remain portfolio evidence until each merchant loads inventory and production credentials (All Products — QuickCask). Operators weighing the model should verify category fit, plan per-tenant Yoco and Courier Guy keys, and treat shared rails as infrastructure—not a substitute for photography, fulfilment discipline, and local voice on each branded front.

For agencies and co-ops managing several local names, the headline trade-off is deliberate: shared rails cut cost; separated data keeps trust.

References

Discover Our Collection

Find unique vintage treasures and modern essentials in our shop.

Shop Now