These are the curated devstack examples. Each one consumes
@mysten-incubation/devstack from the workspace and uses the final directory
name that a developer should reach for.
Generated files under src/generated/ are local lifecycle output and should not
be committed.
| App | What it shows | Command |
|---|---|---|
connect-four |
On-chain Connect Four lobby, join, and move flow using managed accounts and dev wallet signing. | pnpm --filter @mysten-incubation/connect-four dev |
deepbook-trader |
Localnet DeepBook trader with dev-wallet connection, local DeepBook publish, DEEP/SUI pool seeding, and live SUI-to-DEEP swaps. | pnpm --filter @mysten-incubation/deepbook-trader dev |
fork-greeting |
Testnet fork replay with fork-faucet funding, local package publish, and managed dev-wallet accounts. | pnpm --filter @mysten-incubation/example-fork-greeting dev |
private-content |
Primary Sui + Walrus + Seal app: encrypted content grants, Walrus storage, and Seal decryption. | pnpm --filter @mysten-incubation/private-content dev |
token-studio |
Single managed coin with TreasuryCap-gated mint and transfer flows. | pnpm --filter @mysten-incubation/token-studio dev |
The dev scripts run the built workspace devstack CLI directly. Turbo builds workspace
dependencies when needed, and devstack supervises the local services plus each
browser app's Vite process. The first lifecycle run may build or pull local
images; subsequent runs should reuse Docker cache.
Each runnable app also has a test:e2e script backed by
@mysten-incubation/devstack/playwright, so Playwright starts the app's stack
through pnpm dev rather than requiring a separate devstack up session.
Scaffold a new browser app from the canonical template with
create-devstack-app:
pnpm create @mysten-incubation/devstack-app <your-app>The scaffolder copies the authored template
(packages/create-devstack-app/template/),
which includes a Move package, a compact UI with core/walrus/seal/deepbook
panels (pick which plugins to keep at scaffold time), and an e2e spec. It
rewrites the DEVSTACK_APP runtime identity, tsconfig paths, and Playwright
host tokens to your app name automatically.
To grow the curated examples here, scaffold into examples/<your-app> and pick
non-conflicting port hints — existing examples occupy ports 5170, 5173, 5176,
5179, and 5182; the per-stack allocator handles collisions at runtime.