voxal init
Scaffold a new voxal app and link it to a project
voxal init creates a new app directory, links or creates a project for it, and writes a
starter app plus its config. It is the quickest path from nothing to a deployable app.
voxal init [name]The name argument is optional. If you omit it, the CLI prompts you for one.
What it does
- Validates the name and fails fast if a directory with that name already exists.
- Signs you in if needed. On an interactive terminal it offers to log you in inline. See Authentication.
- Links or creates a project. An interactive menu lets you connect to an existing project or create a new one, respecting your plan limit.
- Scaffolds the app into
./<name>/.
What gets created
my-app/
├── package.json depends on @voxalsh/sdk
├── voxal.json { "name": "my-app", "main": "app.js" }
├── app.js a createApp() starter (core SDK, not React)
├── .gitignore adds .voxal
└── .voxal/
└── project.json local link cache, { "name": "my-app" }The generated app.js is a plain core SDK app built with createApp(). For a richer
React starter, use npm create voxal-app instead.
init vs. create-voxal-app
voxal init scaffolds a core-SDK app.js. npm create voxal-app <name> scaffolds a React
app.jsx or app.tsx (it asks TypeScript or JavaScript) and installs voxalsh as a local
dependency. Both produce a deployable app; pick the one that matches how you want to build
UIs.
Name rules
App and project names match /^[a-z0-9][a-z0-9-]{0,62}$/: lowercase letters, digits, and
hyphens, starting with a letter or digit, up to 63 characters. Names are normalized to
trimmed lowercase. Some names are reserved (see Projects).
Next steps
After scaffolding, voxal init prints the next commands to run:
cd my-app
npm install
voxal deploy
ssh my-app@voxal.shRun voxal dev first if you want to preview the app locally before deploying.