Text-first editor
CodeMirror with DBML highlighting, autocomplete for keywords, types, tables and even table.column refs. Errors show up inline, right where you made them.
DBML in, diagrams out, teammates included
Write a few lines of DBML and watch the diagram build itself. Bring the whole team, edit together live, and ship it out as a migration, SQL, or a slick PNG.
Drag the tables around ↗
👆 That's a real (tiny) DBML renderer. Click into the code and type. Break it on purpose, too: we'll keep drawing what still makes sense.
Why it's fun
CodeMirror with DBML highlighting, autocomplete for keywords, types, tables and even table.column refs. Errors show up inline, right where you made them.
Half-finished line? Missing brace? The broken bit gets skipped, not the whole diagram. Your canvas never blinks out mid-thought.
Drag tables, pan, zoom, auto-layout, groups. Click a table to jump to its DBML. Hover a column to light up every relation it touches.
Hand anyone a view-only link. It updates live as you type, and you can switch it off whenever you like.
Everyone gets a private Personal workspace. Teams are joined by invite link, and joining one never exposes your personal diagrams.
Every change, per person, as a readable diff. One click puts any earlier version back.
Multiplayer mode
Open the same diagram and you're all in it together: live cursors in the editor, live pointers on the canvas, table selections, presence avatars. Drag a table and it moves on everyone's screen.
Under the hood it's a CRDT (Yjs), so two people typing on the same line at once just… works. No locks, no "someone else is editing," no lost changes.
Import & export
Paste or upload it, then replace the diagram or append to it.
Docs for humans, DDL for databases, prompts for your AI pair.
For Rails folks
db/schema.rb. Get a diagram. Go get coffee.Your whole Rails app, mapped in seconds. Sketch the next feature in DBML, then export the migration and models to drop straight back into your app.
# db/schema.rb create_table "posts" do |t| t.references :user, null: false t.string "title" end ↓ becomes ↓ Table posts { user_id bigint [not null, ref: > users.id] title varchar }
Time travel included
email column? Now you'll know.Every edit lands in version history as a per-person diff. Scroll back through what changed and who changed it, then restore any version in one click.
+ archived_at timestamp
- body varchar + body text [note: 'Markdown content']
+ Enum post_status { + draft + published + }
DBML (Database Markup Language) is a tiny, readable language for describing tables, columns and relationships. If you've used dbdiagram.io, you already know it. schema.builders parses it with the official @dbml/parse compiler, so your existing files just work.
Yes. Import db/schema.rb or db/structure.sql and you'll have a diagram in seconds. Going the other way, export Rails migrations and models straight from your diagram.
PostgreSQL, MySQL, SQL Server and Snowflake DDL, plus plain DBML. You can replace the current diagram or append to it.
Everyone edits the same text through a CRDT (Yjs), so simultaneous edits merge cleanly instead of clobbering each other. You see each other's cursors in the editor and pointers on the canvas, and table positions sync too.
No. Your Personal workspace stays private. Teams are separate workspaces you join by invite link, and you choose which diagrams move into them.
Yes. Create a public view-only link. It stays live as the diagram changes, and you can disable it at any time.
PNG, SVG and PDF images; PostgreSQL and MySQL DDL; Rails migrations and models; DBML; a Markdown data dictionary; and ready-made AI prompts that give a model your schema as context.
Start with a blank diagram, or bring your schema.rb along for the ride.
Start building