Getting Started
Install stdout-design, scaffold a project, and render your first image.
Prerequisites
- Node.js 18+
- Bun 1.2+ (recommended package manager)
Install
Add the CLI as a dev dependency:
bun add -d @stdout-design/cliOr install globally to use studio directly:
bun add -g @stdout-design/cliIf you installed locally, prefix commands with npx (or bunx):
npx @stdout-design/cli <command>Scaffold a project
npx @stdout-design/cli initinit walks you through a few prompts project name, which starter templates to include, which locales to set up, whether to initialize git, and whether to install dependencies. Pass -y to skip prompts and use the defaults.
If
studio.config.tsalready exists in the target directory,initskips scaffolding entirely.
init creates:
my-project/
├── studio.config.ts template registry, presets, locales
├── package.json
├── tsconfig.json
├── types.d.ts adds the tw= attribute type for React
├── templates/ your TSX components
│ └── bento-feature.tsx
└── locales/ translation files
├── en.json
└── ar.jsonThe scaffolded studio.config.ts registers a single bento-feature template with two presets (instagram-square 1080×1080 as default, and x-card).
Render your first image
npx @stdout-design/cli render bento-feature --title "Hello" --out-dir outBy default render outputs one PNG per configured preset (and per locale), named like:
out/bento-feature.en.instagram-square.0.png
out/bento-feature.en.x-card.0.pngIt also writes a manifest.json alongside the images summarizing what was rendered.
Open the live studio
npx @stdout-design/cli devThis starts the dev server on http://localhost:3030 with a live preview, an auto-generated prop panel, preset tabs, and locale switching. See Live Studio for the full walkthrough.
Project structure
my-project/
├── studio.config.ts template registry, presets, locales, fonts
├── templates/ your TSX components
├── data/ CSV/JSON for batch renders
├── locales/ translation files
├── out/ rendered assets (gitignored)
└── .studio-cache/ render cache (gitignored)templates/one.tsxfile per template. See Writing Templates.data/CSV or JSON files for data-driven batch rendering. See Batch Rendering.locales/per-locale translation JSON. See Internationalization.out/and.studio-cache/are gitignored by the scaffold and rebuilt as needed.