One Product, One App
Decide how to lay out your product as one app, with Surfaces for each audience and Modules for its features.
One Stardeck app is usually one product. You build it once. Your customers and staff use many experiences inside it.
The building blocks
| Concept | What it is | When you use it |
|---|---|---|
| App | The product boundary: one codebase, one publish | Every product you ship |
| Surface | An audience- or device-facing mini app inside that app, with its own name, URL, icon, and access posture | Customer site, admin, POS, kitchen display, portal |
| Module | A reusable capability that ships with the app (packs pick which are on) | Booking, payments, shared UI, and other reusable capabilities |
Every new app starts from the same foundation and gets its starting pack's Modules. Stardeck keeps that foundation up to date through updates.
One app, many experiences
flowchart LR
MODS["Modules<br/>Catalog · Orders · Payments · Loyalty"] -->|"reusable capabilities"| APP["Restaurant system<br/>one app · one product · one publish"]
APP --> ORDER["Surface<br/>Customer ordering"]
APP --> POS["Surface<br/>Counter POS"]
APP --> KITCHEN["Surface<br/>Kitchen display"]
APP --> OFFICE["Surface<br/>Back office"]
Modules supply reusable capabilities to the app. Surfaces present those capabilities as focused experiences for different audiences and devices. They still share one product boundary and ship together.
Different audiences or devices alone do not mean you need another Stardeck app. Customer ordering, counter POS, kitchen display, and back office can live as Surfaces of one restaurant system. Marketing site, customer portal, and staff admin can live as Surfaces of one booking product.
Create a separate app only when you need a genuinely independent product, tenant boundary, owner, data model, or release cadence. See When to Create a Separate App.
How to decide
flowchart TD
START["Create the app<br/>(with its starting pack)"]
Q3{"Need a distinct experience for an audience or device?"}
SURF["Add a Surface to this app"]
Q4{"Can it share product ownership, data, and release cadence?"}
SAME["Keep it in this app"]
SEP["Create a separate app"]
START --> Q3
Q3 -->|"yes"| SURF
Q3 -->|"no"| Q4
SURF --> Q4
Q4 -->|"yes"| SAME
Q4 -->|"no: independent product, tenant, or release cadence"| SEP
Every new app starts with its pack's Modules on. Switch Modules on or off in Settings → Modules. Add a Surface for each separate audience or device experience.
Examples
Restaurant operations
One restaurant system app can include:
- Surfaces: customer ordering, POS, kitchen display, back office
- Modules: orders, catalog, payments, loyalty
Staff and customers each get their own launchable experience. You still publish once. See the restaurant example.
Service business
One booking app can include:
- Surfaces: marketing site, customer portal, staff admin
- Modules: booking, payments, notifications
Public and internal experiences share one product without sharing the same access rules.