Structuring Your App

Modules

See which Modules your app ships with, switch them on and off, and find what to read before you build on one.

Every app gets its starting pack's Modules when it is created. Switch them on and off, or detach them, in the app's Settings → Modules.

A Module is a reusable capability: booking, payments, shared UI and similar building blocks. It is not a mini app. It has no customer-facing URL, icon or launch identity; those belong to Surfaces. See One Product, One App.

Every app comes with 24 Modules. Each one has a reference page that says what it does, which hard cases its tests prove, and what you build on top. Start with Capabilities to find the Modules behind booking, payments, staff pay, point of sale, online ordering and customer accounts.

Only the five Library Modules are always on. Shared Modules are switches like the feature Modules, but most feature Modules use them, so switching one off is refused while a Module that uses it is on.

Two switches

An app has two separate switches for its Modules. They do different things, and a page that seems to be missing is usually behind one of them.

Modules tabFeatures in use
WhereThe app's Settings → Modules in the Stardeck dashboardSettings → Features in use inside the app's own admin
Who uses itThe app's developer or ownerThe business owner running the app
What off meansThe Module is left out of the build: its pages, endpoints and navigation goThe Module is still built, but hidden from staff: sidebar, home, search, Settings, register
Its dataKeptKept, and every page comes back as it was when it's turned on
Takes effectFrom the app's next buildAt once, for that workspace
What it also holdsPer-page switches, Customize screens, Stop updates for this ModuleThe business type, which sets the switches and renames pages for a kind of business

Use the Modules tab to decide what your app is built from. Leave the rest to the business: Features in use lets one build serve a spa and a car hire. Switching a Module on in either place also switches on the Modules it uses, and neither lets you switch off a Module another one in use needs. Website and Queue aren't in Features in use: the website is the public site itself, and Queue has its own switch in Settings and starts off.

Business types

Setup asks the owner what kind of business they run. Each business type switches some features off and renames pages: a car hire's products area is Fleet and its bookings are Rentals, a gym's customers are Members. The owner can still switch features one by one afterwards.

The business types are A bit of everything (every feature on), Spa or salon, Restaurant or café, Clothing store, Tour operator, Gym or studio, Online classes, Car hire and Online store. Each Module's reference page lists, under Facts, the business types that switch it off.

A business type is offered only when the app is built with a Module it runs on, so an app without Booking isn't offered the spa. To rename words for your own app, see Customize a Module's words.

Switch Modules on and off

Open the app and go to Settings → Modules. Feature Modules are listed as switches with a count such as 2 of 5 on. Modules that are always on are listed under Always on.

  • Switching a Module on also switches on the Modules it uses.
  • Switching one off is refused while an enabled Module uses it, or while your app's own code imports it.
  • Each row's actions menu has Customize screens and Stop updates for this Module. See Customize a Module's screens and Updates.

From your terminal, the same switches are stardeck modules; see Manage Modules from your terminal. An agent on your org's MCP server uses set_module_enabled.

Installation vs connection

  1. Installation: Stardeck brings the capability into the app, composes it and validates the result. Declared Module pages and API endpoints are mounted automatically.
  2. Connection: your coding agent (or Starcat Developer in the Build tab) wires it into this product: navigation, permissions, app-level layouts and providers, your screens and data, and tests that it works.

Expect the agent to do and test the connection work whenever you switch a Module on.

What Stardeck composes

Stardeck wires the installed Modules' pages, APIs, Surface contributions (declared slots only) and translations into the app. Optional enhancements run only when both Modules involved are active. These generated connections are maintained by Stardeck: change the Module's source or the app's extension points, never the generated files.

Validation and compatibility

  • Stardeck validates each Module's portable structure and required checks, and refuses an incompatible dependency combination or collisions in API paths, app routes or Surface contribution slots.
  • If the app has a locale the Module doesn't ship, it uses the Module's English copy and adds an installation note. It does not refuse the install.
  • Passing means the Module is structurally and compositionally compatible. That is not finished product integration. The agent must still connect it and test it.

Working with Modules

TaskPage
Build your app's own features on a ModuleBuild on a Module
Add a section, panel or channel to a ModuleExtend a Module
Reword a Module or add a languageCustomize a Module's words
Change the sample data your app loadsCustomize sample data
Change how a Module's pages lookCustomize a Module's screens
Take an update with Modules changedUpdates

What Modules are not for

  • A distinct audience or device experience: create a Surface.
  • An independent product with its own owners or release cadence: create a separate app.