Your first blueprint
A blueprint is a scene authored as JSON. You push it, the scene appears in your workspace. You edit the JSON, push again, and the change shows up in the same scene, updated in place. This page walks the loop.
Prerequisites: the daslab CLI, signed in to your workspace.
1. Write a tiny blueprint
Save this as ./my-first.blueprint.json, and replace the email with your account's:
{
"version": 1,
"id": "scn_my_first",
"slug": "my-first",
"name": "My First Blueprint",
"icon": "sparkles",
"tint": "#4C8BF5",
"settings": { "description": "Authored from a JSON file." },
"assets": [
{
"id": "intro",
"type": "daslab/note",
"name": "Hello",
"fields": { "content": "# Hello\n\nThis scene was authored as a blueprint." },
"layout": { "sortOrder": 0, "size": "large" }
}
],
"members": [
{ "email": "[email protected]", "role": "owner" }
]
}
2. Push it
daslab blueprint push ./my-first.blueprint.json
The server applies the blueprint and adds you as owner of the scene. Open the app and refresh: My First Blueprint is in your workspace, with a note that says Hello. Add --dry-run to print the request without sending anything.
3. Edit and push again
Change the note's content, rename it, add a second note, anything in the JSON, then push again. Apply is idempotent: ids resolve deterministically, so the same rows update in place instead of duplicating. The JSON is the source of truth; the scene follows.
4. Credentials, without OAuth
A blueprint can carry connected accounts as sealed references in a secrets block, or you can supply a credential inline at push time:
daslab blueprint push scene.blueprint.json \
--secret "brave/account:b1:api_key=sk-…"
The credential rides the request over TLS and never touches git. Blueprints covers the full model, including export, the edit-in-place loop, and three-way merge against a live scene.
What to do next
- Concepts: Blueprints: the bigger picture, the mental model.
- Concepts: Provider Scenes: providers authored as blueprints.
- Browse blueprints: real ones we ship.
- Full reference: every field, every semantic.
Updated 2026-08-03