This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
My bookmarks bar is a mess. I have years and years worth of bookmarks that I hadn't looked through in so long - 722 to be exact. Cleaning it up is the kind of chore I'll put off forever.
So I built Bookmark Buddy 🦥, a Chrome and Edge extension that tidies your real bookmarks for you, then keeps them tidy.
Introducing Mochi, the sloth that does the tidying!
- Reads your bookmarks right in the browser. No exporting.
-
Finds duplicates on its own, even when the links differ by
httpvshttps, a trailing slash, or tracking codes likeutm_source - Suggests 6–9 folders that fit your bookmarks, which you can rename, remove or add to. Already have folders you like? Keep my folders keeps them (subfolders too) and only sorts the loose bookmarks.
- Handles subfolders. Add your own, or have Gemma split a big folder into a few subfolders (Recipes › Dinners, Desserts)
- Sorts every bookmark into those folders, slow and steady, a few at a time
- Lets you fix anything: drag bookmarks between folders or into a new order, rename, add or reorder folders, and delete what you don't need
- Applies it in one click. Your bookmarks move into the new folders and the empty old ones are cleared out. A backup is saved first, so Undo everything puts it all back.
- Sorts new bookmarks as you save them. Drop a bookmark in your Bookmarks bar and Mochi files it, with a little notification and an Undo button.
There's also a web version that works in any WebGPU browser: drop in a bookmarks export and download a clean file to import back.
The sorting is done by Gemma, running entirely in your browser. Your bookmarks never leave your device.
Who gets to be lazier: anyone whose bookmarks bar has turned into a junk drawer, which is pretty much everyone. And once it's clean, you never have to clean it again.
Demo
Try the extension (Chrome or Edge):
- Download
bookmark-buddy-extension.zipfrom the latest release and unzip it. - Go to
chrome://extensions(oredge://extensions), turn on Developer mode, click Load unpacked, and pick the unzipped folder. - Click Mochi 🦥 in your toolbar.
Coming soon to the Chrome Web Store and Edge Add-ons, so it'll be a one-click install.
Try the web version: https://bookmark-buddy.onrender.com (Chrome or Edge on a laptop works best. Click "Try it with sample bookmarks" if you don't want to use your own.)
Code
tmott13
/
bookmark-buddy
🦥 Tidies your messy bookmarks with Gemma running on your device, then sorts new ones as you save them. A Chrome/Edge extension plus a web app. Nothing is uploaded, and you can undo everything.
🦥 Bookmark Buddy
Your messy bookmarks, tidied while you put your feet up. Meet Mochi, the sloth who does the tidying 🦥🍡
Bookmark Buddy sorts your bookmarks into clean folders, catches duplicates, and keeps everything tidy as you save new ones. The sorting is done by Gemma running in your browser with WebLLM, so your bookmarks (your bank, your job search, your health sites…) never leave your device.
It comes two ways:
- 🧩 Chrome / Edge extension (the lazy way): tidies your real bookmarks in place, with one-click Undo everything, then sorts new bookmarks automatically as you save them.
- 🌐 Web app: bookmark-buddy.onrender.com. Works in any WebGPU browser. Drop in a bookmarks export and download a tidy file to import back.
Built for the DEV Hacktoberfest Open-Source AI Challenge, Week 3: Slow and Steady.
Install the extension
- Download
bookmark-buddy-extension.zipfrom the latest release and unzip it. - Go…
How I Built It
-
Open model: Gemma 2 2B (
gemma-2-2b-it-q4f16_1-MLC) on laptops, with Gemma 3 1B as the lighter option for phones. - Runs in the browser: WebLLM runs Gemma on your GPU with WebGPU. The model downloads once and is cached, so it even works offline.
- Frontend: Angular 22 with signals. Your session is saved in your browser, so a refresh doesn't lose your progress.
- Extension: Manifest V3. The same Angular app is the extension's page. A small background worker listens for new bookmarks, and when one needs a folder it opens a hidden offscreen page that runs Gemma on the GPU, then closes it a few minutes later to give the memory back.
- Hosting: a free static site on Render, with no backend at all.
Like my last two projects, the big idea is Gemma makes the judgment calls, and the app keeps your data safe:
- Gemma never touches a URL. It only sees each bookmark's title and website, and replies with a folder name. The app copies the actual links, dates and icons, so nothing can get mangled.
- Nothing gets deleted unless you say so. Duplicates and old dev links go into a "Maybe delete?" folder with a reason, so you decide. You can delete anything with one click (or clear out the whole "Maybe delete?" folder), and restore it until you apply. The extension saves a backup first and can undo everything.
- Nothing gets lost. If Gemma skips a bookmark or makes up a folder name, the app catches it and puts it in "Other." Every bookmark you keep ends up in a folder.
- Small batches, with examples. A 2B model does much better sorting 6 bookmarks than 300, so it works through them in small batches, slow and steady, like a sloth. Each batch also shows Gemma a few bookmarks it already sorted, so similar pages land in the same folder.
- The app handles the obvious ones. If a title or site clearly names a folder ("Easy taco recipe" → Recipes), the app files it without asking Gemma. Gemma only gets the judgment calls.
- It learns as it goes. Once Gemma puts the same site in the same folder twice, the rest of that site's bookmarks follow automatically, which saves time. Sites with every kind of content, like YouTube and Reddit, always get a fresh look. When you save a bookmark into a folder yourself, or hit Undo on a guess, Mochi learns from that too.
- It never blocks you. If Gemma isn't downloaded yet, a new bookmark waits in a "Needs a home" folder until you open Bookmark Buddy, instead of getting lost.
I was surprised by how well Gemma worked to generate the proper folder names for my bookmarks. I also loved how fast Mochi worked to organize all of my bookmarks.
My first version didn’t get it right. Gemma sorted 12 bookmarks at a time, and my recipes ended up scattered across a few different folders. The fix was slowing it down: 6 bookmarks at a time, plus a few already-sorted examples so Gemma stays consistent. Turns out slow and steady really does win, just like Mochi.
I built this with Claude as my pair programmer. I picked the problem, made the product calls, and tested it on my own bookmarks.
Why Does Open Innovation Matter?
- Bookmarks are personal. They show your bank, your job search, your health sites, your hobbies. With an open model running on your own device, none of that gets uploaded to anyone's server.
- It's free to run. No API bill, no subscription. Set it up once, tidy whenever you want.
- It works offline. Once Gemma is downloaded, you can tidy your bookmarks on a plane.
- I control the whole pipeline. I decide what the model sees (titles, not URLs), how it's batched, and the safety rules around it. A closed API would be a black box in the middle of my bookmarks.
The Lazy Payoff
I was able to organize all 722 of my bookmarks! I also kept my folders, which I loved.
It took me about 15 minutes in total to organize my bookmarks. I had about 40 bookmarks that Mochi put into an "Other" folder that I went through line by line to sort. The app did everything I needed it to do. I love that I could drag n drop bookmarks, create new folders, and delete bookmarks, all in one place! This app saved me so much time and it was very low effort. Perfect for a lazy sloth like myself.
What's Next: Bookmark Buddy 1.1.0
- Chrome Web Store and Edge Add-ons: a one-click install with automatic updates, no Developer mode needed
- Right-click "Ask Mochi to file this": sort any bookmark on demand, including old ones sitting in the wrong folder
- A weekly tidy-up: a gentle nudge like "Mochi found 4 bookmarks that could use a home," then one click to review
- A toolbar popup: see what's waiting in "Needs a home" and turn auto-sorting on or off without opening a full tab
- A first-run welcome: a quick tour of what Mochi does and help picking a Gemma model
What should Mochi learn next? Tell me in the comments 🦥
Prize Categories
- Gemma: Gemma 2 2B and Gemma 3 1B run fully in the browser with WebLLM, suggesting folders, sorting every bookmark, and filing new ones in the background.
-
Render: the web version is deployed as a free Render static site from a
render.yamlblueprint.
Thanks to DEV, the Hacktoberfest team, and the MLC/WebLLM and Gemma teams. And a belated Happy International Sloth Day (Oct 20) from Mochi! 🦥





Top comments (0)