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.