Structuring Your App

When to Create a Separate App

Decide whether a second experience belongs in your current app or needs its own app, and how separate apps share work.

Decide the product boundary first, then the communication mechanism.

One product is usually one Stardeck app with Surfaces for each audience and device. A second app is the exception.

When a second app earns independence

Create a separate app when at least one of these is true:

BoundaryExample
Separate productAn independently owned accounting product next to your storefront
Tenant or ownership boundaryA partner-operated fulfillment system your team does not own
Different data modelSystems that would only share occasional events, not the same core tables
Different release cadenceA product that must ship and roll back independently of the first

If none apply, keep the work in the current app and add a Surface or a Module.

Decision table

QuestionSame appSeparate app
Same product ownership?YesNo
Same core data model and release train?YesNo
Mainly a different audience or device?SurfaceNo
Needs its own launch URL, icon or access posture?SurfaceOnly if the product itself is independent
Would you want to ship or pause them independently?RarelyYes

After you decide they are separate

Pick how the apps share work:

UseWhen
Shared Data StoreThe apps operate on the same core tables and neither owns them alone. Changes show up in both at once.
Cross-app callsEach app owns its own data, and one tells the other to act at a specific moment (an order is paid, so the storefront asks accounting for a journal entry).
BothTwo apps share a data domain, and a third, separately owned system is notified through calls.

For different audiences or devices on the same product, use Surfaces in one app, not several apps on one store.

Next

Cross-App Communication

Let separate apps call each other through Stardeck