Beginner May 3, 2026 · 2 min read

What's in each Loom release, in reverse chronological order. Loom follows semver: minor releases are backwards-compatible, major releases may introduce breaking changes.

v0.1.0 — 2026-05-03

The first release. Establishes the v0.1 surface: Thread schema, weaver pipeline, runtime server, PlanetScale migrations, GitHub + OrbWeaver integration, and the Shuttle plugin system.

Headline features

  • Single-binary CLI with ten subcommands: add, check, deploy, eject, new, report, serve, stitch, sync, weave
  • Threads — YAML data model with 20 field types, relationships, permissions, and lifecycle hooks
  • Five weavers — SQL, Go (model + handler + routes + handler-test), SvelteKit (list + form + detail), HTMX (list + form), and routing — all fed from one Thread definition
  • Interpreter-mode runtimeloom serve reads Threads at startup; no compile step needed unless you eject
  • Stitch — additive-only schema reconciliation against PlanetScale, with --no-live preview for fresh-database sanity checks
  • Shuttle plugin systempkg/shuttle/ for adding HTTP routes and lifecycle hooks; pkg/shuttle/stripe ships as the reference implementation (HMAC-SHA256 signature verification, configurable path/secret/tolerance)
  • OrbWeaver integrationloom sync bootstraps the Frappe-side schema (DocType + Custom Fields), creates the Project + Tasks, and posts build reports as Loom Build Report records
  • GitHub integrationloom new creates the repository (with GITHUB_TOKEN)
  • Deploy artefactsloom deploy emits a multi-stage Dockerfile + non-root start.sh

Test coverage: 142 tests across 10 packages, all passing on Linux, macOS, and Windows.

v0.1.0 design choices we'll defend forever:

  • Plugins are Go imports, not dynamic .so files
  • Stitch is additive-only by default — type drift and orphan columns warn but don't auto-mutate
  • Generated Go is run through go/format before write — gofmt-stable
  • Permissions deny by default; Public is the only role that grants to everyone
  • Generated artefacts go in .loom/, treated like build output

Known v0.1.0 gaps (planned for v0.2.0):

  • No /auth/login endpoint — issue JWTs from your own service
  • No file-watcher / hot reload (loom serve --hot)
  • No destructive migrations — MODIFY COLUMN and DROP COLUMN warn-only
  • Generated Go handlers don't compile out of the box (they import {{ .ModulePath }}/internal/auth which doesn't exist in user projects); ejection requires writing the auth/permissions shims yourself
  • Stripe shuttle has no built-in idempotency / retry queue

What's coming in v0.2.0

These items are in the active backlog:

  1. Auth scaffold in loom new — emit minimal internal/auth + internal/permissions packages so ejected code compiles immediately
  2. /auth/login endpoint with bcrypt password hashing and a built-in User Thread shape
  3. Field-watching loom serve --hot
  4. Opt-in destructive migrationsloom stitch --destructive enables MODIFY COLUMN / DROP COLUMN
  5. Real-DB integration test harness for stitch (sqlite shim or testcontainers)
  6. Stripe shuttle hardening — idempotency table, retry queue, declarative event-type dispatch

No date promised; releases when they're ready.

See also

  • Getting Started → Quickstart — the v0.1 way to get going
  • Concepts → Threads — what the framework was designed around
Was this article helpful?