I turned the data grid inside our SaaS into its own product

Wait 5 sec.

For the last few years I've been building DemandFlow, a B2B SaaS platform used in telecoms for things like network inventory, ITSM and asset management. It's a lot of tables. Hundreds of entity types, big datasets, and users who live in grids all day. We built the frontend in plain HTML and JavaScript, no framework, and the grid ended up being the hardest and most-used part of the whole thing, but slower than we were happy with. So we switched to commercial grids - this saved is spending the time developing a high performance grid.... Until we did. And once we migrated our own app over to it I realised it had become a product in its own right, so I pulled it out, cleaned it up and released it as Lattice Grid. What it does: Vanilla JS, so it drops into any page with no framework or build step (npm or CDN). There are React, Angular, Vue and Svelte components too if you want them. Built for big data: rows are virtualised, and it can query ClickHouse, Elasticsearch or DuckDB directly, so filtering, grouping and paging run in the database. Table size is limited by your database, not the browser. Sorting, filtering, grouping with subtotals, pivoting, tree data, inline editing with undo, saved views and Excel export Charts, KPI tiles, a calendar, kanban board and a Gantt chart that all read the same data as the grid, so filtering the table updates everything on the page. An htmx integration: server-rendered tables hydrate into grids, out-of-band swaps update single rows, and the back button restores grid state. As far as I can tell no other commercial grid has one. It's free for non-commercial use: personal projects, learning, open source, side projects. Development on localhost is always free. Commercial use is licensed per domain, with unlimited developers. A few things I learned extracting it: Our best design decision: every view, whether grid, chart, KPI or Gantt, reads the same dataset. Nothing keeps its own copy, so nothing drifts. Our data router enables you to load up any data you want and the router sends it to the right grid or component. Being our own first customer is the best QA. DemandFlow runs on every release. When we moved our project screens off a commercial Gantt this month, the gaps we hit became the next release's backlog. latticegrid.dev   submitted by   /u/tonygoodchild [link]   [comments]