blog
Notes from building it.
What we measured, why the grid is built the way it is, and what it means for the people using it all day.
-
about 6 min
The column knows it holds metres
In most grids a unit is a formatter, and a formatter is a lie that shows the moment someone sorts. Lattice Grid makes a quantity a data type, so the column stays a number.
-
about 3 min
The table is the schema
htmx renders the table on the server; Lattice Grid upgrades it into a live grid in place, columns and rows read straight from the markup, and it survives htmx swaps.
-
about 2 min
Swap the import
A compatibility layer gives Lattice Grid the shape of dhtmlx's dhx.Grid, so the constructor, the data and selection namespaces and the events keep working. Swap the import.
-
about 3 min
When the grid became the interface
Grids are sold to developers, so they are built for developers. Why Lattice Grid ships redaction, annotation and presentation tools to every user as standard.
-
about 4 min
A real spreadsheet, written by the grid
Not a CSV renamed to .xlsx. A real workbook with typed cells, a frozen header and your column widths, written in the browser with nothing added to your bundle.
-
about 3 min
Two ways to show a row's detail
A row that expands into a nested grid, or a pane beside the list where nothing moves. They solve different problems, and one config field switches between them.
-
about 3 min
Put the conversation next to the number
The question about a figure lives in a chat thread and the figure lives in a grid. Attach the discussion to the cell and both problems go away.
-
about 4 min
The view someone built on Monday is still there on Friday
Everybody rebuilds the same filter every morning. Name it once, and the queue opens the way each role needs it without anyone negotiating.
-
about 3 min
Hierarchies that survive real data
Every tree demo uses data that is already a tree. Yours will not be. Here is what happens to the orphan, the cycle and the missing level.
-
about 4 min
What did this row say a minute ago?
On a live grid the useful question is not what you did, it is what the data did. Drag the scrubber back and the cells that moved are marked.
-
about 4 min
Pause the feed without losing your place
An analyst reading a row while it moves under them will eventually read the wrong number. One button holds the grid still and counts what it is holding.
-
about 4 min
A grid that keeps up with the feed
Rows arriving faster than anyone can read them, a grid that stays scrollable while they do, and a rate measured in your browser rather than ours.
-
about 3 min
Put the actual numbers on the projector
Screenshots of a grid go stale between the export and the meeting. Present the grid itself, step saved views like slides, and answer the question in the room.
-
about 2 min
Share your screen without sharing the salaries
Every team has a spreadsheet they cannot put on a projector because of one column. Redaction hides the values and keeps the meeting working.
-
about 3 min
What changed since last week
The reconciliation everybody does with two exports and a lookup, done by the grid instead: what moved, what it was before, what arrived and what went.
-
about 4 min
Give the grid the whole window
A panel a few rows tall is a poor place to spend a morning. One control fills the screen with the grid, Escape puts it back, and your work comes with it.
-
about 4 min
Width is the harder problem
Everybody demos a long grid. The one that hurts is the wide one, where the row you are reading loses its name somewhere around column nineteen.
-
about 4 min
A million rows, timed on your machine
Every grid vendor has a benchmark number from a laptop you have never seen. The grid in this post times itself in your browser instead.
-
about 4 min
Types are not labels
In most grids a column type picks an alignment. Here it decides storage, comparison, parsing, formatting and the editor, from one word.
-
about 4 min
A column definition should read like a description
Forty flat properties per column is a config file nobody reads twice. Grouping them by concern, and naming the repeats, makes a column list readable.
-
about 3 min
Get going in two minutes
One script, one stylesheet, a div with a height and a list of columns. Sorting, filtering, resizing and reordering are already there.
-
about 3 min
One licence per domain, not per developer
A grid is installed once and touched by everybody afterwards. Pricing it per developer bills you for a fact about your org chart, not your product.
-
about 4 min
Why we built our own grid
Nobody sets out to write a data grid. We drew the comparison table first, and three shapes of problem kept sending us back to the whiteboard.
-
about 3 min
We built this for ourselves. Now you can buy it.
Lattice Grid ran inside our own platform against live customer data for years before it had a price. Here is what that means for you.