Every full-stack developer has been there: you are planning a new feature, sketching out database tables, and spending half your time looking up ORM syntax for many-to-many relationships or writing join tables by hand. I wanted a tool where I could visually draw my relational tables, connect the columns, and immediately get clean, copy-pasteable code for the three targets I use most: PostgreSQL SQL, Prisma ORM, and Drizzle ORM.
So, I built SchemaDraw(https://schemadraw.netlify.app).
---
The Architecture: Designing for ₹0 Scale
As an indie hacker, I wanted to launch a tool that could support thousands of developers without leaving me with a heavy server bill. To achieve this, SchemaDraw is built as a 100% client-side Single Page Application (SPA) using React and Vite:
- Client-side Compilation: The engines that transform your visual nodes into SQL or TypeScript are entirely written in JavaScript, running in the user’s browser.
- Local Storage Persistence: Your work auto-saves locally so refreshing the tab won't lose your schema.
- LZ-Compressed URL Sharing: Instead of saving diagrams to a server database, SchemaDraw compresses the entire canvas layout and schema structure into a URL hash component. You can copy the share link and send it to a teammate—the app reads the hash and redraws the exact layout with zero server storage costs.
Key Features Built for Developers
- Protruding Target Handles: Most ERD tools place connection dots inside nodes, leading to click collisions. SchemaDraw places handles - outside the borders, lighting up green on valid targets to make 5px drawing links effortless.
- Interactive Presentation Lock: Toggle read-only mode to safely present or inspect diagrams without making accidental changes.
- Grid Auto-Layout: Got a messy canvas? One click aligns all your tables into a clean, alphabetical column-row grid.
- Cohesive Theme Engine: A single click swaps between a clean Light Slate and a cohesive Pitch-Black interface.
Check it out!
SchemaDraw is open, free, and requires no accounts or signups. 👉 Try it here: I’d love to hear your thoughts! What features, databases, or ORM compilers would make this a permanent part of your bootstrapping toolkit? Let me know in the comments below!