惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
D
Docker
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
爱范儿
爱范儿
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
Recent Announcements
Recent Announcements
U
Unit 42
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
量子位
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog

jonno.nz

The tunnel — jonno.nz Shorten the distance to control — jonno.nz How Many Days of AI Does New Zealand Have? — jonno.nz The wrapper is doing the work — jonno.nz Ukraine’s Drone Advantage Is an Engineering Loop — jonno.nz Prove the Machine Wrong — jonno.nz I Parsed Every Law New Zealand Has Ever Passed — jonno.nz Your Show HN dies in 7 hours — jonno.nz The Fastest Repealers in the West — jonno.nz Six Years, $228 Million, Zero Metres of Track The holes that kill you are the ones you never tested What Happens When a Worm Drives Claude? The Laws of Human Nature Conscious Minimalism The dent and the crater Product market fit isn't a stage, it's a gauntlet Change management Three Ways to Look at Time What an hour of your attention is worth Teaching a Neural Network to Watch Crime Like Video Open-Source Agent That Teaches Claude Code Your Architecture OpenHealth – Chat with Apple Health Data, Anywhere Claude Code Can Now Spawn Copies of Itself in Isolated VMs The Future of Security Is an Open-Source Model That Detects and Acts on Threats I Spent 29 Hours Debugging iptables to Boot VMs in 4 Seconds Can You Beat Last Month? Claude Code Running Claude Code in 4-Second Disposable VMs Stealing NanoClaw Patterns for Web Apps and SaaS What if your browser built the UI for you? — jonno.nz What the Data Actually Shows
I Built a Read-Later Chrome Extension Because Pocket Died
John Gregoriadis · 2026-05-05 · via jonno.nz

Pocket shut down in July 2025. I needed somewhere to dump the articles I keep telling myself I'll read later. So I built a Chrome extension that does exactly that and nothing else. Local-only, no accounts, no tracking.

I open about thirty tabs a day. I read maybe three of them. The rest are "oh that looks interesting, I'll come back to that," and then they sit there until my browser starts choking and I close everything in a fit of guilt.

Bookmarks aren't the answer. Bookmarks go into a folder I never open. Pocket was the answer, except Mozilla shut Pocket down in July 2025, which I found out the way most people did: by going to save something and discovering the service was gone.

So I built Read Later. It's a Chrome extension. It saves the page you're on. That's the whole pitch.

What it actually is

You hit Cmd+Shift+L and the current tab gets saved with its title, URL, and favicon. Add a tag if you want. Done. There's a popup if you'd rather click a button, and a context menu if you'd rather right-click a link without opening it first.

There's also a full-tab "shelf" view at Cmd+Shift+K where all your saved articles live. Search, filter by tag, mark as read, archive. The aesthetic is warm parchment and moss green because I got tired of every productivity tool looking like a Linear screenshot.

That's it. No AI summaries, no recommendations, no "people who saved this also saved...", no newsletter, no account.

Why I didn't just use bookmarks

I tried. Bookmarks are designed for things you'll come back to many times. A read-later list is the opposite, you read each thing once and then it's done. The lifecycle is different. Stuffing them into the same UI is why my bookmarks bar has been a graveyard for ten years.

The other read-later apps that survived Pocket all want an account, a sync server, and usually a subscription. For something whose whole job is "remember this URL until I read it," that's a lot of infrastructure. I wanted local storage and nothing else.

Local-only on purpose

Everything lives in chrome.storage.local. Nothing leaves your browser. There's no server because there's nothing for a server to do. If you want to back up your list, there's an Export button that gives you JSON. If you want to move it to another machine, Import takes the JSON back. If you want to share your shelf with someone, "Copy as Markdown" gives you a clean list you can paste into Slack or an email.

This was a deliberate call. Sync is the feature that turns a small tool into a service, and a service needs accounts, and accounts need a backend, and a backend needs my time and money forever. JSON in, JSON out is the version of "sync" that costs me nothing and gives the user complete control. Want it on two machines? Export on one, Import on the other. Good enough.

Shipping to the Chrome Web Store

The real experiment was the launch. I've shipped plenty of things over the years but never to the Chrome Web Store, and I wanted to see what that pipeline felt like end to end. Pretty smooth, no drama. You pay the developer fee, fill in the listing, upload a zipped manifest, wait for review. Mine went through first time.

The work was in the listing copy and the screenshots. You're suddenly writing for a discovery page where people decide in three seconds whether to click install. That's a different muscle from writing a README. It made me think harder about what the extension actually does for someone who isn't me.

I've got a folder on my laptop called "side projects" with about a dozen things in it, each solving some specific bit of friction in my own life. Most of them stay there. This one made it out because the friction was real, the build took an afternoon, and putting something on the Chrome Web Store turned out to be a satisfying little exercise.

If you've got tabs piling up and don't want to hand your reading list to a startup, it's there. Source on GitHub, MIT licensed. Pin the leaf icon and have a go.