Paste a DDL script and it becomes an ERD you can drag and edit — every change goes back into the SQL. Generate Prisma, TypeORM, SQLAlchemy, GORM or plain types, lint the schema, diff two versions into ALTERs, export PNG/SVG/PDF. All in the browser.
Hey Product Hunt 👋
Every ERD tool I tried asked me to redraw a schema I already had. The SQL was right there in a migration file — but to see it, I had to click tables into existence one more time, and from then on the picture and the database drifted apart.
erd.sketch goes the other way: the script is the source of truth.
Paste a DDL dump and you get a diagram — tables as cards, foreign keys as crow's-foot lines, schema.table names grouped into islands. Then you edit on the canvas: add a column, reorder fields, rename a table. Each edit rewrites the SQL itself, so what you copy out is real DDL, not an export of a drawing. Rename a table and every reference to it in the script moves with it.
What it does beyond drawing:
Reads real dumps. CREATE TABLE, inline REFERENCES, ALTER TABLE ADD CONSTRAINT, composite and self-referencing keys, indexes, quoting styles from five dialects. The dialect is detected from the script — no dropdown.
Generates code. Prisma, TypeORM, SQLAlchemy, GORM — plus TypeScript, Java, Go, C#, Rust types. Whole schema or a single table.
Lints the schema. 17 rules: table without a primary key, foreign key with no index, money stored in FLOAT, TIMESTAMP without a time zone, names colliding with reserved words. Many come with a one-click fix that edits the script — and a batch of seven indexes undoes with a single Ctrl+Z. Where the right answer is genuinely yours to make (ON DELETE CASCADE or RESTRICT?), there's deliberately no button.
Writes migrations. Diff two versions of a schema, get the ALTERs that turn one into the other, in the syntax of your dialect (ALTER COLUMN … TYPE on Postgres, MODIFY COLUMN on MySQL, MODIFY (…) on Oracle).
Imports DBML and schema.prisma and converts them to DDL — keys, indexes, enums, defaults included.
Exports PNG, SVG, PDF — redrawn from canvas geometry, not screenshotted, so it stays sharp at any size.
Local-first by default. Your schema lives in the browser; parsing, codegen, linting and diffing all run on your machine and nothing is sent anywhere. Sign in only if you want a diagram to move to the server, sync across devices, and be shared by link (view / view-and-edit, with expiry and revocation). On a shared diagram you see your teammates' cursors and their card drags live.
Multiple schemas, sticky notes on the canvas, per-schema undo history, nine UI languages. No signup to try — there's a demo schema waiting.
Honest about what's next: real concurrent co-editing (today it's presence, live drags and pick-up-on-save, not an operation log yet), and an AI assistant — the panel is built but stays behind a "soon" placeholder, because a fake demo conversation would be promising something that doesn't exist.
Would love to hear which dialect or ORM target breaks first on your schema — that's the feedback I'm after.