Guides
Local development
Work on a Robodev project on your machine. robodev dev serves schema and APIs offline; robodev deploy pushes the same tree to the hosted project.
After npm i -g robodev (or npx), robodev auth and robodev create talk to hosted Robodev by default. Local work is the project folder. Do not run a control plane. To run the project's own schema and APIs on your machine, use robodev dev (/docs/dev) — it needs no Starbase account and no deploy. Google sign-in is the one hop to the platform broker; password auth stays offline.
After create
- auth opens hosted Robodev and stores tokens in ~/.robodev/credentials.json.
- create makes a hosted project, copies an official starter, writes robodev/.robodev and .env (VITE_API_URL, VITE_PUBLIC_API_URL), deploys schema + APIs (and the Tiny SPA when the local Vite build succeeds) to https://{projectId}.robodev.povio.dev, and runs npm install at the project root.
- Dashboard Create and deploy is schema + APIs only. CLI create also copies the local tree (including apps/fe for Space / Auth chat / Marketplace) and hosts the static SPA when the frontend build succeeds.
- Do not set control-plane URL overrides. Defaults are production.
Folder layout
- robodev/.robodev — project id and API URLs (legacy ./.robodev is still read if the new file is missing).
- .env — Vite API URLs written by create / link.
- robodev/database.ts, robodev/api/, optional robodev/jobs/, optional robodev/hooks/, and optional robodev/package.json.
- Space, Auth chat, and Marketplace add apps/fe (local iterate with bun). CLI deploy with a frontend block uploads the Vite dist as a hosted static SPA, not apps/fe source.
Local UI (Space, Auth chat, and Marketplace)
When robodev/.robodev has a frontend block and the local Vite build succeeds, the project App URL serves that hosted static SPA. Use bun in apps/fe to iterate locally (Vite default http://localhost:3000). Dashboard create stays APIs only.
- bun is required.
- Vite default is http://localhost:3000.
- The CLI already prints these steps.
- create / link write env so the SPA talks to the hosted project API.
Schema and APIs
Edit robodev/database.ts, robodev/api/**, robodev/jobs/**, robodev/sockets/**, or robodev/hooks/**, then robodev deploy from the project root (or dashboard Code + Save). When .robodev has a frontend block, the CLI also runs the local Vite build and uploads that static SPA. Destructive schema changes need confirmation or --force.
Deploy uploads the allowlist (robodev/database.ts, robodev/api/**/*.ts, robodev/jobs/**/*.ts, robodev/sockets/**/*.ts, robodev/hooks/**/*.ts, optional robodev/package.json, and root frontend index.html + src/** when present). It does not upload apps/fe source. With a frontend block, the CLI runs Vite locally and uploads the dist as index.html + public/**. Dashboard Code + Save does not run Vite. See Deploy (/docs/deploy) for force, hosts, and wait-until-live.
Link an existing project
Writes robodev/.robodev and Vite API env for a folder that already has the tree (including after you clone your own app repo). Omit the id to pick from a list.
Backend and Empty
No local Vite. Edit files and robodev deploy from a real terminal. Paste VITE_API_URL into Lovable, Bolt, or v0. Do not run npm run dev or npm run build in those folders. See Connect a frontend (/docs/frontend).
Hosted React at the project root
If index.html + src/ sit at the project root (not apps/fe), deploy or dashboard Publish FE uploads that UI and the project host serves it. For Tiny apps/fe, dashboard Publish FE hosts the Vite dist the Build iframe previews. CLI deploy remains an alternate upload of that dist.
Local vs hosted
- Hosted: control plane https://robodev.povio.dev; project APIs, Swagger, storage, and (after CLI frontend deploy) the static SPA on https://{projectId}.robodev.povio.dev.
- Local iterate (Space / Auth chat / Marketplace): bun Vite SPA on http://localhost:3000.
- Local APIs (all starters): robodev dev serves schema, file routes, jobs, sockets, storage, Swagger, and Robodev Auth on http://localhost:4000 against an embedded Postgres.
- Local (all starters): files on disk; robodev deploy (or Code + Save) updates the hosted project.
- Not local: running Starbase, docker compose for the control plane, or pointing the CLI at localhost control-plane ports.
Next
Getting started (/docs), Starters (/docs/starter), Deploy (/docs/deploy), Connect a frontend (/docs/frontend).
bun is required for local iterate in apps/fe. CLI create/deploy with a frontend block hosts the static SPA at the project App URL. Dashboard create stays APIs only.