A browser extension for highlighting the web — select text, jot a thought, and let it sync and organize itself in Notion.
This didn't start out as a highlighting tool. My first idea was an AI-powered glossary for technical terms, built with low-code tools. Working on it, I kept running into a smaller, more specific problem: whenever I wanted to save something I'd just read, the process itself got in the way. That smaller problem turned out to be the more interesting one, so I switched direction.
Reading something worth remembering usually means breaking your flow to save it. Copy-pasting into a notes app is clumsy. A screenshot isn't searchable later. And most web clippers are built to save an entire page — not the one paragraph you actually wanted, with no record of why it mattered to you.
Six features, in the order they matter most:
Select text on any page and highlight it in one of 4 colors. The source URL, page title and timestamp are captured automatically.
Right where you highlight, jot a quick note and file it under an existing or brand-new category.
Highlights under the same category merge into a single Notion page, instead of spawning a new row every time.
Freely frame any part of a page — like a built-in screenshot tool — mark it up with a highlighter or sticky notes, and sync it along with everything else.
Automatically sorts accumulated highlights into background knowledge, core concepts, real-world examples, and related areas.
Built-in text-to-speech reads your highlights back to you, with adjustable speed and voice.
The Notion integration maps to whatever field types a database actually has, instead of hard-coding fixed field names — so it works across different people's Notion setups, not just the one I built it for. Image uploads go through Notion's official three-step file upload flow: start an upload, send the bytes, then attach the block.
Two bugs took the longest to track down: the screenshot tool occasionally captured its own UI mid-render, fixed with a double requestAnimationFrame call to make sure the browser finished repainting before capturing — and an event-bubbling bug that was closing the annotation window on the wrong click.
I built this in collaboration with AI end to end — from scoping requirements, to writing the code, to tracking down bugs, to iterating on features based on what actually felt clunky to use.
Partway through, I looked at whether this could become a real product. Being honest with myself, the space is crowded and I didn't have a clear enough edge over what's already out there — so I made the call to keep this as a learning project and a portfolio piece, rather than force a commercial angle that wasn't really there. That decision felt like as much a part of the work as building the thing itself.
GitHub link coming soon.