Skip to content

SlideStage Pro · lite-pro-package-boundary

Lite and Pro Package Boundary

Mirrored docs keep the language used by their source repo. Site chrome stays in your selected language.

SlideStage Lite owns the .stage runtime and shared packages. SlideStage Pro is the self-hosted team platform.

Principle: Pro consumes published Lite packages; Lite does not know Pro exists.

Why the boundary exists

Without a boundary:

  • .stage validation can drift.
  • Pro patches cannot flow upstream cleanly.
  • Edition checks such as isPro can leak into Lite.

The boundary keeps Lite independently deployable and keeps Pro stable.

Allowed dependencies

Pro may depend on:

  • @slidestage/core
  • @slidestage/ui
  • @slidestage/lite-preset
  • @slidestage/brand
  • @slidestage/spec

Use semver npm dependencies.

Forbidden patterns

Do not commit:

  • file:../SlideStageLite/...
  • link:../SlideStageLite/...
  • Deep imports from a Lite checkout.
  • Re-declared manifestSchema.
  • Copied loadDeck or path safety logic.
  • isPro or VITE_APP_EDITION edition branches.

Local linking is fine only as temporary developer setup.

How Pro extends

Pro-only code belongs in Pro packages and apps:

  • packages/pro-preset
  • packages/pro-shared
  • apps/api
  • apps/web

Shared runtime needs should become generic Lite/Core/Spec extension points first.

.stage ownership

The format belongs to @slidestage/spec.

Pro upload and playback code should consume @slidestage/core / @slidestage/spec, not reimplement the format.

Review checklist

Before merging Pro changes, check:

  • No local Lite path dependencies.
  • No direct imports from ../SlideStageLite.
  • API code does not import React.
  • Web code does not import Prisma, Hono, or Node filesystem modules.
  • .stage validation comes from shared packages.