4 minutes reading time
A few months ago, right after finishing the first working build when I built the chat exporter, I started tinkering with a private tool I called Decant.
The original premise was typical developer over-engineering. I read a lot of documentation, long essays, and dense technical specs. The modern web is hostile to reading: floating headers that eat thirty percent of your screen, newsletter modals begging for your work email after four seconds of scrolling, and sticky video players hovering in the bottom right corner like a nervous tic.
My initial solution was to write a private extension wired straight to an LLM API. I would hit a key, the extension would scrape the raw HTML of the page, ship the whole payload off to an external API endpoint, burn half a cent in tokens, and ask the model to strip out the junk and return a clean summary or parsed Markdown.
It worked for about three weeks until the stupidity of the whole setup caught up with me.
First, the latency was unbearable. Waiting four seconds for a remote model to tell me what an article is about when my own machine already has the raw text sitting in memory is absurd. Second, the economics were dumb. Paying API bills just to extract a recipe or read a technical write-up is peak cloud brain-rot. And third, sending every internal intranet page, private dashboard, or unreleased draft I happened to browse to an external server felt like an unforced privacy leak.
So I blew the entire architecture up. I threw away the API keys, ripped out the backend proxy, and open-sourced the whole thing as a very stupid, very simple tool.
The rewritten Decant does exactly one thing: it extracts the signal from web pages locally inside the browser. It embeds Mozilla Readability directly into the client runtime. When you click the extension icon or hit a shortcut, it strips out the navbars, ad containers, and sidebar widget clutter, converting the core content into pure, structured Markdown right on your CPU.
Once the content is clean Markdown, you can do whatever you want with it without touching a server:
One feature I ended up using every single day is the Multi-Tab Batch Clipper (Alt+Shift+A). When I go down a rabbit hole on a topic, I usually end up with twenty tabs open in a dedicated browser window. Decant lets you hit a single shortcut and dump every open tab into a tidy ZIP archive of individual Markdown files, preserving the page title, URL metadata, and clean formatting.
The second piece was immediate hand-off into personal knowledge management tools. If you use Obsidian, Logseq, Bear, or NotePlan, there is a one-click button that triggers local URI schemes like obsidian://new. You get the article saved into your vault instantly, formatted with customizable YAML frontmatter, without needing a third-party synchronization cloud.
And if you actually do want to feed an article to an LLM to ask questions about it, you do not need an API key. Decant lets you hand off the decanted Markdown straight into active web chat sessions like ChatGPT, Claude, or Gemini in one click. The browser pastes the structured text directly into the prompt box. You get the AI analysis without paying API token margins or renting someone else's middleware.
It also includes a local preview studio with KaTeX math rendering and Prism code highlighting across dark and light themes, so you can see exactly what the exported Markdown looks like before you download or copy it.
The extension is open source under AGPL-3.0 on GitHub.
We have spent the last five years convincing ourselves that basic text manipulation requires a hundred million dollar datacenter cluster running round the clock. Sometimes the right engineering decision is to delete the server, let the browser run a local DOM parser, and keep your data where it belongs.
Image Credit: Pieter Bruegel the Elder (c. 1525-1569) - The Harvesters via Metropolitan Museum of Art / Wikimedia Commons.