PN.26.029. Software. Studio project, 2026.
Sieve
A working data transformer that runs entirely in your browser, with a small safe expression language and proper technical documentation.


The brief
Build a working data transformation tool and document it as a real product would be.
The idea
Most people clean a CSV by hand, once, and then lose the steps. Sieve keeps them: a short readable pipeline of filters, derived columns and groupings that you can change at any point, with live results.
Decisions
- Nothing leaves the browser, which is the simplest possible privacy policy.
- Expressions are parsed by a hand-written parser and never reach eval.
- A bad step is marked in place, and the rest of the pipeline keeps running.
- The documentation was written as a real reference, with an error table.
How it came together
- Wrote the CSV parser and type detection first.
- Built the expression language as a tokeniser and precedence climber.
- Tested pipelines by script, and caught a bug where Select left hidden columns in exports.
How it works
sieve.js has no dependencies. Expressions compile to closures. Each step is a pure function from table to table, so reordering is safe.
Want something like this?
Tell us what you are making. A few lines is enough to start.
Hanging nearby

Moth-8A product page where the product is real: a playable eight-voice synthesizer that runs in the browser.PN.26.003. Working instrument, Product page.
Tide TablesSix editorial illustrations printed on a risograph press that exists only as code.PN.26.005. Illustration series, Print process code.
NullohmAn identity for a superconductor maker, where every cable batch stamps its own logo from its batch code.PN.26.008. Logo files, Brand book PDF.