Getting Started
Authoring
Access Control
Reference
Examples
Quick Start
Quick Start
Build a minimal tenant workspace with one collection, one relationship role, and one app. The same source builds locally and in Workspace Studio.
1. Configure Vite and TypeScript
// vite.config.ts
import { pod } from '@norbital-ai/pod/vite';
import { defineConfig } from 'vite';
export default defineConfig({ plugins: [pod()] }); // tsconfig.json
{ "extends": "./.norbital/tsconfig.json" } 2. Add a collection
Create src/collections/tasks/+model.ts with a default-exported defineModel() declaration. The directory name supplies the collection ID.
3. Add relationships
Create src/collections/+relationship.ts. Default-export the relationship builder and
type it with the adjacent generated Relationships type.
4. Add an app
Create src/apps/+tasks.svelte. Add literal title, description, and pod:icon metadata in <svelte:head>; import typed client access
from $pod/client.
5. Sync and build
pod sync
pnpm build Sync generates .norbital/tsconfig.json, registry modules, and local role types. Build
runs synchronization and a full Svelte check before emitting .norbital/dist/.
Next
- Add
+hooks.ts,+pipelines.ts, or+integrations.tsbeside a model. - Add a remote at
src/remotes/+<lower_snake_case>.ts. - Add an automation at
src/automation/+<lower_snake_case>.ts. - Add optional tenant seed behavior at
src/+seed.ts.