logoalt Hacker News

robhatitoday at 5:18 AM3 repliesview on HN

It's a small too nothing great I just figured others might find it useful too. I kept finding myself needing to visualize database schemas, but most tools had the same problems: paywalls, mandatory signups, or sending your SQL to someone else's server.

No backend, no accounts, no data leaving your machine.

A few implementation details that were fun:

* Built on <canvas> instead of DOM/SVG. Tables are rasterized into cached bitmaps with viewport culling, which keeps things smooth even with hundreds of tables on screen.

* The SQL parser tracks source spans for every token. That lets edits stay surgical so a rename a table and only the relevant identifier (and its references) change while comments and formatting remain untouched.

* The URL contains the entire schema. Sharing simply serializes the schema into the URL itself, so there's no backend, no stored state, and no account required.

* I also experimented with a Rust/WASM version because why not? but the parser was ~37% slower because the JS↔WASM boundary cost outweighed the compute savings but The O(n^2) overlap-resolution pass was about 2.2x faster though * In the end I stuck with plain JavaScript. No framework ~32KB gzipped


Replies

vatsachaktoday at 6:01 PM

Beautiful software. Thanks!

Hendriktotoday at 9:15 AM

> The URL contains the entire schema.

Isn’t that going to be a problem due to the URL length limitations?

> It is RECOMMENDED that all senders and recipients support, at a minimum, URIs with lengths of 8000 octets in protocol elements.

https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5

show 1 reply
__natty__today at 8:31 AM

Truely good work! It’s responsive, clean and “onboarding” experience without signup walls is great. Good job.