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 — 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": "you@example.com", "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, 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

Updated 2026-07-18