> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stardeck.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# One Product, One App

> How to structure a Stardeck product with Surfaces, Modules, and Blueprints

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, one normal build conversation                  | Every product you ship                                       |
| **Surface**           | An audience- or device-facing mini app inside that app — own name, URL, icon, and access posture | Customer site, admin, POS, kitchen display, portal           |
| **Module (Alpha)**    | A reusable capability you can start with or install into an app                                  | Booking, payments, shared UI, and other catalog capabilities |
| **Blueprint (Alpha)** | A complete starting app you fork as a foundation                                                 | When you want a proven whole-app starting point              |

<Info>
  **Blueprints** and **Modules** are Alpha and available only to selected organizations. Every
  organization can create a blank app and add Surfaces.
</Info>

## One app, many experiences

```mermaid theme={null}
flowchart LR
  MODS["Modules (Alpha)<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](/app-structure/separate-apps).

## How to decide

```mermaid theme={null}
flowchart TD
  Q0{"Starting a product?"}
  Q1{"Need an existing complete foundation?"}
  Q2{"Need selected reusable capabilities?"}
  BLANK["Start blank"]
  BLUE["Start from a Blueprint<br/>(Alpha access)"]
  MOD["Start from Modules<br/>(Alpha access)"]
  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"]

  Q0 --> Q1
  Q1 -->|"yes"| BLUE
  Q1 -->|"no"| Q2
  Q2 -->|"yes"| MOD
  Q2 -->|"no"| BLANK
  BLANK & BLUE & MOD --> Q3
  Q3 -->|"yes"| SURF
  Q3 -->|"no"| Q4
  SURF --> Q4
  Q4 -->|"yes"| SAME
  Q4 -->|"no — independent product, tenant, or release cadence"| SEP
```

Blank creation is available to everyone. Organizations with Alpha access may instead choose **Start from a Blueprint** or **Start from Modules** — those two choices are mutually exclusive.

## Examples

### Restaurant operations

One **restaurant system** app can include:

* **Surfaces:** customer ordering, POS, kitchen display, back office
* **Modules (Alpha, optional):** orders, catalog, payments, loyalty

Staff and customers each get their own launchable experience. You still publish the product once. Walk through it in [Restaurant Surfaces](/app-structure/guide-restaurant-surfaces).

### Service business

One **booking** app can include:

* **Surfaces:** marketing site, customer portal, staff admin
* **Modules (Alpha, optional):** booking, payments, notifications

Public and internal experiences share one product without sharing the same access rules.

## Learn each piece

<CardGroup cols={2}>
  <Card title="Blueprints" icon="copy" href="/app-structure/blueprints">
    Start from a complete app foundation (Alpha)
  </Card>

  <Card title="Modules" icon="puzzle-piece" href="/app-structure/modules">
    Install reusable capabilities (Alpha)
  </Card>

  <Card title="Surfaces" icon="grid-2" href="/app-structure/surfaces">
    Give one product several mini-app experiences
  </Card>

  <Card title="Separate Apps" icon="split" href="/app-structure/separate-apps">
    Decide when independence outweighs one-app simplicity
  </Card>
</CardGroup>
