Show HN: ColumnLens – Query millions of rows in milliseconds on your Mac

3 points by hilti ↗ HN
We keep shipping data to the cloud to analyze it, but modern Macs have enough horsepower to query millions of rows locally in milliseconds. Even an 8GB MacBook Neo.

I built ColumnLens because I wanted to stop uploading sensitive data to SaaS tools just to run a GROUP BY. It's a native C++ desktop app that opens 5GB+ CSV, JSONL, Parquet, and Excel files in about 3 seconds, then lets you query them with DuckDB's full SQL engine — JOINs, CTEs, window functions, all running on your machine.

The idea is simple: your laptop is a perfectly good analytics workstation. You shouldn't need a cloud pipeline to look at your data.

Some things I learned building it:

- DuckDB's columnar engine is absurdly efficient. 12M rows, sub-second queries, under 1 GB RAM. On hardware that fits in a backpack.

- ImGui + OpenGL is a great stack for data-heavy desktop apps. No DOM, no layout engine overhead — just raw GPU rendering. The data grid scrolls 12M rows without a single frame drop.

- I added a "3D City View" that maps rows to buildings (height = one column, color = another). Sounds gimmicky, but outliers and clusters are immediately visible in ways they aren't in tables or charts. Our brains are good at spotting the tall building in a skyline.

- Lua scripting turned out more useful than expected. People write small scripts to fetch data from APIs, run queries, and configure charts — repeatable analysis without leaving the app.

- Everything runs locally. Zero telemetry, zero network calls. The binary is 33MB, statically linked.

Free download at https://columnlens.com

Would love to hear from anyone else building local-first data tools — I think the "ship everything to the cloud" era is starting to swing back.

2 comments

[ 3.3 ms ] story [ 14.2 ms ] thread
Full disclosure: I’m a much better C++ developer than I am a marketer, so I asked Claude to help me write this post. Which is a bit ironic given that ColumnLens is literally about keeping your data local and off other people’s servers. Anyway — the app is real, the numbers are real, and the frustration with uploading CSVs to SaaS tools is very real. ;-)