Open a dozen "best free database tools" listicles and you'll notice a pattern: almost every entry that calls itself free actually means free-to-sign-up. You get a generous trial, a capped workspace, or a "community tier" that quietly nags you toward a paid plan the moment you add a second table or a third collaborator. drawDB breaks that pattern in a way that's easy to miss until you actually read its architecture: it is a database schema editor with no account system, no server-side database, and — for its core feature set — no backend at all. It runs entirely in your browser tab, stores your diagrams in IndexedDB, and generates SQL DDL you can paste straight into a migration file.
That's not a small design choice. It's the reason drawDB has climbed past 39,000 GitHub stars with an AGPL-3.0 license and a comparatively tiny contributor list, and it's also the reason the tool has a hard ceiling built into its own architecture — one that its closest open-source competitor, ChartDB, deliberately avoided by making the opposite bet. Comparing the two tells you more about how to evaluate "free" developer tools than either README does on its own.
What actually happened
drawDB has been sitting near the top of GitHub's weekly trending list for JavaScript/React projects, and its star count (39.1k stars, 3.2k forks at the time of writing) puts it ahead of most commercial ER-diagramming SaaS products in raw community adoption. It's maintained as an open-source project under the drawdb-io GitHub organization, sponsored in part by Warp, the AI-terminal company, and it ships a free hosted instance at drawdb.app alongside the fully self-hostable source.
Nothing about a schema diagram tool is new — MySQL Workbench has shipped an ER designer since the 2000s, and pgAdmin, dbForge, and Lucidchart all cover overlapping ground. What's notable is that drawDB reached this scale by refusing to build the parts of the product that every SaaS competitor treats as the monetization layer: accounts, cloud storage, and team workspaces. It's worth understanding exactly how that works before deciding whether it fits your workflow.
What it actually does
At its core, drawDB is a visual ER (entity-relationship) diagram editor with bidirectional SQL support:
- Design-first modeling. You drag out tables, add columns with types, defaults, and constraints, and draw foreign-key relationships between them — the same mental model as a whiteboard session, just persistent and exportable.
-
DDL export. One click generates
CREATE TABLEstatements — including constraints, indexes, and foreign keys — targeted at your dialect of choice: MySQL, PostgreSQL, SQLite, MariaDB, SQL Server, or Oracle (currently in beta). -
DDL import (reverse engineering). You can paste an existing schema's SQL and drawDB parses it into a live, editable diagram, using dialect-specific parsers (
node-sql-parserfor most engines, a dedicated Oracle parser for Oracle SQL). - Migration generation. Beyond a single point-in-time export, it can produce migration-style output for schema changes.
- Subject areas and notes. Tables can be grouped into labeled regions and annotated, which matters once a diagram passes 20-30 tables and stops being readable as a flat canvas.
- No account required. You open the app and you have a working editor. Nothing is sent anywhere until you choose to export or share.
That last point is the one worth sitting with, because it's not a marketing bullet — it's a direct consequence of how the app is built.
How it works: the architecture is the pitch
drawDB is a single-page React application built with Vite and styled with Tailwind CSS. Your diagrams — tables, columns, relationships, notes, custom templates — are persisted locally in the browser via IndexedDB. There is no application server sitting between you and your data for the core editing and export workflow. When you open drawdb.app or a self-hosted npm run dev instance, you are talking to a static bundle of JavaScript that happens to also parse and generate SQL client-side.
This has two direct consequences that most "free" tools don't give you:
- Nothing about your schema ever leaves your machine unless you explicitly export or share it. For teams working on schemas that describe sensitive systems — payment tables, PII fields, internal service topology — that's a real property, not a checkbox. You're not trusting a third party's cloud storage with your data model just to draw a picture of it.
- The tool works offline, degrades gracefully, and has effectively zero infrastructure cost for the maintainers to run at scale. Every additional user who opens drawdb.app costs the project a CDN hit, not a database write. That's part of why a project with a small core team can sustain tens of thousands of active users without a hosting bill that scales with usage.
The one feature that does require a server is link-based sharing — sending someone a URL that opens your exact diagram. For that, drawDB ships a separate, optional component, drawdb-server, that you deploy yourself if you want it. The core project deliberately keeps that server out of the default deployment path. It's an opt-in dependency, not a hidden one.
Compare that to how most "free" ER tools actually work: you open the app, and before you can save anything, you're asked to sign in. Your diagram is a row in someone else's Postgres database from the first keystroke. drawDB inverts that by default and makes the server-dependent path the exception.
The DDL import/export path deserves a closer look too, because it's the part of the codebase doing the most actual computer-science work. Parsing SQL dialects correctly is not trivial — MySQL, PostgreSQL, SQL Server, and Oracle each have their own quirks around identifier quoting, default-value expressions, generated columns, and constraint syntax. drawDB leans on node-sql-parser for the mainstream dialects and a dedicated Oracle parser for Oracle SQL, which is precisely why Oracle support is still flagged as beta: dialect parsers are notoriously hard to get to 100% coverage, and edge cases (nested schemas, vendor-specific data types, computed columns) are where most of the project's open issues cluster. This is also why "paste your existing DDL and get a diagram" is a genuinely harder feature to maintain than "draw boxes and export SQL" — reverse engineering has to handle whatever a real production database throws at it, while forward generation only has to produce output the tool itself defined.
Self-hosting in practice
Because there's no backend dependency for the core app, standing up your own instance is close to the simplest deployment story a web app can have:
git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run build
or, for a containerized deployment:
docker build -t drawdb .
docker run -p 3000:80 drawdb
That's the entire footprint — a static build served behind whatever web server you already run, with no database migrations, no environment secrets, no auth provider to configure. If you want link sharing, you additionally deploy drawdb-server and point the frontend at it via environment variables, but that's an explicit second step, not a prerequisite for the tool to be useful. For platform teams evaluating internal tools, this matters more than it sounds: a tool with zero stateful infrastructure is a tool that doesn't show up as a line item in your next security audit or your next "what needs a database backup policy" review.
The philosophical fork: design-first vs. introspection-first
The most useful comparison isn't drawDB against a paid SaaS tool — it's drawDB against ChartDB, its closest open-source peer, because the two projects solve what looks like the same problem with opposite starting assumptions.
drawDB is design-first. You build a schema that may not exist yet — greenfield modeling, a new feature's tables, a redesign you're proposing. The DDL export is the output of the tool.
ChartDB is introspection-first. You already have a running database, and the tool's job is to visualize what's there. Its flagship feature is a "Smart Query": you run one query against your live database, paste the JSON result back into ChartDB, and it renders your actual schema as a diagram — without ever handing your database credentials to ChartDB's code. It also ships AI-assisted DDL export across dialects, aimed at migration work between database engines.
Neither approach is strictly better; they answer different questions. If you're asking "what should this schema look like," you want drawDB. If you're asking "what does this schema currently look like, and how do I document or migrate it," ChartDB's introspection model gets you there faster because you're not manually re-drawing tables that already exist somewhere.
This distinction matters more than star count when you're picking a tool, and it's exactly the kind of detail that gets flattened in "top 10 free ERD tools" roundups that treat the category as one undifferentiated bucket.
Why developers should actually care
Cost. Both tools are free and self-hostable under AGPL-3.0. Compare that to dbdiagram.io, the most widely used proprietary equivalent, which gates private diagrams, version history, and team features behind paid tiers starting once you go beyond a handful of diagrams. For a solo developer or a small team doing schema design as a side activity to actual coding, "free and never asks for a card" removes a category of friction that compounds over a team's lifetime — nobody has to expense a $15/month tool just to draw boxes and lines.
DX. Zero-signup tools have an underrated advantage: they get used in the moment, during a design conversation, instead of after someone remembers to open a separate app and wait for it to load a workspace. A tool with no login screen is a tool people actually reach for mid-standup.
Lock-in. This is where the license matters, not just the code. AGPL-3.0 is a copyleft license with a network clause: if you take drawDB's source, modify it, and offer it as a hosted service to others, you're obligated to release your modifications. That's a meaningful deterrent against a company quietly forking the project into a proprietary SaaS wrapper — which is a real pattern in this space (see: the long history of MongoDB, Elastic, and Redis relicensing specifically because cloud vendors were doing exactly that). For drawDB's own users, self-hosting internally doesn't trigger the copyleft obligation at all — AGPL's network clause only bites when you're distributing the software as a service to others, not when you're running it for your own team. Practically: your legal team should still glance at AGPL before you bundle it into an internal platform you resell, but "we run drawDB on our intranet for our own engineers" is not a scenario the license restricts.
Security. Because the core workflow never transmits your schema to a server, drawDB sidesteps an entire class of "which SaaS tool has our database's PII field names in their logs" conversations. ChartDB makes a similar security argument from a different angle — its Smart Query approach means it never receives your database credentials, only a query result you choose to paste in.
Maintainability. SQL is the actual interchange format here, not a proprietary export. Both tools generate standard DDL, so switching away from either later costs you nothing beyond re-importing that DDL somewhere else. That's a genuinely different position from tools with proprietary diagram formats that don't map cleanly back to SQL.
Latency, in the literal sense. Because there's no round trip to a server for editing operations — no "saving..." spinner, no optimistic-update-that-sometimes-reverts — every interaction is as fast as the browser's own rendering. That's a small thing until you've used a cloud-first diagramming tool over a flaky connection and watched dragging a table around become laggy because every move is being synced live to a server. drawDB structurally can't have that problem for its core editing loop, because there's nothing to sync to until you choose to export or share.
Practical use cases
- Prototyping a new feature's schema before writing the actual migration — sketch the tables, get the foreign keys right, export DDL, hand it to whoever writes the Rails/Django/Prisma migration.
-
Documenting a legacy database you've inherited: paste its
CREATE TABLEstatements in, get a navigable diagram instead of a 40-table SQL dump nobody wants to read top to bottom. - Teaching: ER modeling is a core relational-database concept, and a zero-setup browser tool removes the "first install Workbench" barrier for a classroom or onboarding doc.
- Design review artifacts: export a diagram image or the DDL itself as part of an RFC or pull request description, so reviewers see the shape of the data model, not just the migration diff.
- Quick whiteboard replacement in a design meeting, when standing up a shared Figma board or a paid diagramming tool is overkill for "let's sketch these five tables."
- Interview and take-home exercises: a zero-signup ERD tool is a low-friction way to ask a candidate to model a schema live, without asking them to first create an account on a tool they'll never use again.
-
Cross-database migration planning: because DDL export targets six different dialects from the same diagram, you can design a schema once and generate the target syntax for, say, a MySQL-to-PostgreSQL migration, catching dialect-specific type mismatches (an
ENUMthat doesn't map cleanly, anAUTO_INCREMENTvs.SERIALdifference) before you write a single line of migration code. - Internal platform documentation that needs to live next to code rather than in a separate wiki: since the output is plain SQL and the tool is self-hostable with no state, some teams check exported DDL into the same repo as their migrations and regenerate the diagram from it whenever someone needs a visual reference, rather than trying to keep a wiki page's screenshot in sync by hand.
The limitations the trending-repo hype skips over
None of the coverage of drawDB's star count spends much time on the tradeoffs baked into its "no backend" design, so it's worth being explicit about them:
- Your diagrams live in one browser's IndexedDB, on one device, by default. There's no automatic cross-device sync. Clear your browser data, switch machines, or hit a corrupted IndexedDB store, and your diagram is gone unless you exported it. For anything you care about keeping, exporting SQL (or the project file) after every session isn't optional polish — it's the actual backup strategy.
- Real-time collaboration isn't part of the core product. If you want to co-edit a schema live with a teammate the way you would in Figma or Google Docs, drawDB's local-storage model doesn't get you there without standing up and wiring together the optional sharing server yourself, and even then, sharing a link is a different experience from simultaneous multi-cursor editing.
-
It doesn't introspect a live database. Unlike ChartDB's Smart Query, drawDB has no built-in way to point at a running Postgres/MySQL instance and pull the current schema automatically — you're limited to pasting DDL you've exported through some other means (
pg_dump --schema-only, for instance). For teams whose real problem is "our production schema has drifted from our docs," that's a meaningful gap. - No version history or diffing. There's no built-in way to see how a schema evolved across sessions, unlike a tool backed by a real database with row-level history.
- AGPL is a genuine adoption friction point for some companies, even when it shouldn't be. Plenty of enterprise legal and security review processes flag any AGPL dependency for manual review regardless of how it's actually being used, purely because of the license's reputation. That can slow internal adoption even in the "we're just running it on our intranet" case where the license imposes no real obligation.
- The open issue count (129 open issues, 100 open PRs at last check) against a comparatively small maintainer base suggests normal open-source bottlenecking — feature requests and edge-case bugs in dialect-specific SQL parsing (Oracle support is explicitly still in beta) can sit for a while.
- Large schemas are still a browser-canvas problem. Nothing about IndexedDB storage or client-side rendering scales infinitely — a diagram with a few hundred tables (not unusual for a mature monolith's database) is going to stress any browser-based canvas renderer, drawDB included, in ways a purpose-built desktop tool with virtualized rendering might not.
- No built-in RBAC or audit trail. If your reason for wanting a "database design tool" is actually "we need to track who proposed which schema change and get sign-off," that's a governance workflow drawDB doesn't attempt to solve — you're back to pull-request review on exported SQL for that, which is arguably the right tool for the job anyway, but it's worth naming explicitly rather than assuming the diagramming tool will grow into it.
Competitive comparison
| Tool | Model | Account required | Live DB introspection | License | Self-hostable | Pricing |
|---|---|---|---|---|---|---|
| drawDB | Design-first ERD editor | No | No | AGPL-3.0 | Yes (npm/Docker) | Free |
| ChartDB | Introspection-first visualizer | No | Yes (via Smart Query) | AGPL-3.0 | Yes (npm/Docker) | Free (hosted SaaS available) |
| dbdiagram.io | Design-first ERD editor | Yes, for saving | No | Proprietary | No | Free tier + paid plans |
| MySQL Workbench | Design + introspection (MySQL only) | No | Yes (MySQL only) | GPL | Yes (desktop app) | Free |
| Azimutt | Introspection + design hybrid | Optional | Yes | Non-commercial source-available | Partially | Free tier + paid plans |
The honest takeaway from this table: drawDB doesn't beat every competitor on every axis. It beats them on cost and privacy-by-default; it loses to introspection-first tools on "show me my actual production schema right now," and it loses to paid tools on collaboration and persistence features that a subscription funds.
An independent read
The interesting story here isn't "free tool gets stars," it's what the architecture implies about the project's ceiling. drawDB's no-backend design is simultaneously its best feature and a structural limit on how the project can grow as a business. You can't easily bolt a "Team" pricing tier onto a tool whose entire value proposition is "nothing touches our servers" without contradicting the pitch that got it 39,000 stars in the first place. ChartDB made the opposite bet early — building toward a hosted SaaS layer with Smart Query and AI-assisted export as premium-feeling features — and that gives it a more obvious path to sustainability even at a smaller star count, at the cost of asking users to trust more infrastructure.
That's not a criticism of either project; it's a genuine fork in how open-source developer tools fund their own maintenance. A tool that refuses to collect your data structurally can't easily monetize that data later, which is reassuring for users and precarious for maintainers. Warp's sponsorship is one answer to that problem — external backing rather than a paid tier — but it's not obviously a durable one at scale. Worth watching whether drawDB eventually needs to introduce some server-dependent premium feature (real-time collab, cloud sync) to keep funding development, and whether doing so erodes the exact property that made it worth trusting in the first place.
There's also a quieter lesson in the star-count comparison itself. drawDB sits at roughly 39k stars against ChartDB's 22.7k, despite ChartDB arguably shipping the more technically ambitious feature (live schema introspection without transmitting credentials is a harder engineering problem than a visual table editor). That gap probably has less to do with raw capability and more to do with activation energy: a tool you can start using in the two seconds it takes a tab to load will always out-adopt a tool that asks you to first go get a database connection string ready, even when the second tool would serve your actual need better once you're in it. It's worth remembering that GitHub stars measure "how many people tried this and liked it enough to bookmark it," not "how many people are still using it a year later" or "which tool solved the harder problem." For a category this fragmented, the honest comparison metric would be retained weekly active diagrams, not stars — and neither project publishes that number.
Who should try it, who should wait, who should skip it
Try it if you design schemas from scratch regularly — new features, new services, technical RFCs — and want a fast, free, no-friction tool that doesn't ask you to trust a third party with your data model before you've even finished sketching it.
Wait if your actual need is "visualize and keep our production schema documentation in sync automatically." ChartDB's introspection model or a dedicated schema-diffing tool will save you more time than manually re-importing DDL every time your database changes.
Skip it if real-time multi-user collaboration or built-in version history is a hard requirement — those are genuinely unimplemented, not just rough around the edges, and no amount of self-hosting effort will add them without you writing that layer yourself.
What's your actual workflow for keeping ER diagrams in sync with a schema that changes weekly — do you regenerate them from migrations automatically, or has every team you've worked on quietly let the diagram rot the moment someone shipped a manual ALTER TABLE?
Sources:

Top comments (0)