Trellis and BaaS

When to use Jazz, InstantDB, or Convex vs Trellis — sidecar patterns, anti-patterns, and decision tables.

Trellis does not compete with developer BaaS products. This guide explains when to use a vendor for live app data, when to use Trellis for agent and causal graph work, and how to combine them without dual-write traps.

Companion ADRs: 0039 (no vendor KernelBackend), 0040 (lane boundary, open engine, Platform sibling). See also Shipping today.

One sentence each

ProductJob
InstantDB / Jazz / Convex / FirebaseLive app rows, auth, multiplayer UI, signup in minutes
Trellis (open engine)Causal op-log, agent lanes, decision traces, semantic VCS graph
Trellis Platform (hosted, commercial)Browser agent product on server-side Trellis — not a BaaS replacement

Use the right tool per layer. Do not ask Trellis to be your app's row store.

Decision table

You need…Use
Todo app, CMS, social feed, game state in the browserBaaS (Jazz, InstantDB, Convex, …)
Agent audit trail — what ran, why, with alternativesTrellis
Multi-agent file work without stomping each otherTrellis lanes + git bridge
Issue tracking, milestones, VCS semantics on a repoTrellis
"Who is online" / cursors / disposable chattrellis/realtime (ephemeral; not in op log)
Live UI on Trellis-persisted entitiesTyped SDK + remote kernel (Typed SDK)
Hosted agents in browser without running infraTrellis Platform (ADR 0040) — not npm install trellis alone
Warehouse / BI on Trellis historyExport (one-way ETL)
Replace Salesforce/CRM with EAV graphNo — integrate via MCP/tools; external SoR stays external

Vendor cheat sheet

VendorStrengthsPair with Trellis when…
InstantDBReact/Vue ergonomics, instant sync, dashboardApp UI + Trellis agent sidecar; Trellis Cloud already uses InstantDB for product metadata
JazzCo-op objects, typed collaborative stateSame DX shape as defineType, but on Jazz for app data; Trellis for repo/agent memory
ConvexFunctions + database + reactive queriesApp backend on Convex; Trellis records agent decisions and repo semantics separately
FirebaseMature auth, mobile, Google ecosystemLegacy app on Firebase; new agent workflows on Trellis
Neon / PostgresSQL, warehouse-friendlyAnalytics replica from Trellis export — not live KernelBackend

Trellis docs are vendor-neutral. Pick one BaaS per app; do not dual-vendor the same entities.

Best for greenfield products that need fast app UI and auditable agents.

Rendering Chart

Rules:

  1. BaaS owns app entities — users, posts, settings, UI-facing state.
  2. Trellis owns agent memory — tool calls, decisions, lane ops, repo issues.
  3. Link by ID, not merge schemas — e.g. issue:TRL-42 in agent rationale; post:abc in BaaS.
  4. Agents reach app data through tools (HTTP, vendor SDK, MCP) — not by writing the same rows into the op-log.

Example boundaries

DataStore
User profile, sessionsBaaS auth
Dashboard widgets, notificationsBaaS
Agent tool invocation + rationaleTrellis decision traces
Sprint issues, acceptance criteriaTrellis issues
Source filesGit (bytes) + Trellis semantics (ADR 0038)

Pattern: Trellis-only (sovereignty path)

Best when: agents-on-repo, offline, export matters, no consumer app database.

trellis init
trellis issue start TRL-1
trellis watch

Use typed SDK against db serve or local kernel for graph UI. See Shipping today — Path B.

Pattern: Platform (hosted agents)

Best when: Rox-style browser agent product; you operate hosting; horizontal workflows.

Browser → Platform API → server-side Trellis kernel per tenant. Product shell (orgs, billing) may use InstantDB — same as Trellis Cloud. Not a substitute for picking a BaaS for arbitrary app schemas.

Product brief: docs/product/platform-brief.md in the trellis package.

Anti-patterns

Dual-write

Writing the same logical entity to both BaaS and Trellis op-log "to keep them in sync." You will get conflict drift, hidden state, and no single replay source. Fix: one writer per entity type; links across stores.

Trellis as CRM / app database

Modeling every Salesforce opportunity as EAV facts "so it's all one graph." Fix: MCP/integration reads CRM; Trellis stores agent decisions about those records.

KernelBackend on Convex "for convenience"

Blocked by ADR 0039. Vendor becomes real SSoT; sovereignty story breaks. Fix: BaaS for app; Trellis for agents; export if you need migration.

Marketing Trellis as InstantDB killer

Wrong lane; loses on onboarding. Fix: "Use InstantDB for your app. Use Trellis for your agents."

npm install trellis → production browser SaaS

Browser SDK is remote-only. Monetizable browser products need hosted API (Platform, Sprites, or self-host). Fix: see Shipping today.

Migration paths

BaaS → more Trellis

  1. New domains (issues, agent memory) on Trellis from day one.
  2. Legacy app stays on BaaS until replaced.
  3. Export BaaS → batch import to Trellis only when you retire the BaaS write path.
  4. Never run live bidirectional sync.

Trellis → export for analytics

One-way JSON/JSONL or warehouse ETL. Postgres is a read replica, not the write path.

FAQ

Can I use defineType with Convex?
defineType targets Trellis-persisted entities. For Convex, use Convex schemas. Same shape of DX, different store.

Does Trellis Cloud use InstantDB?
Yes — for workspace provisioning, auth tokens, and metering. That is product metadata, not your app's graph kernel (ADR 0040).

Is the engine still open source if Platform is paid?
Yes. Platform is hosted product on open trellis — like GitHub on git.