
Three weeks ago I was sitting in my college computer lab, pretending to study.
My friend next to me was reading an article and kept switching tabs to Google words he didn’t understand. I watched him do it four times in two minutes.
I leaned over and said “bro that’s so annoying, someone should fix that.”
He looked at me and said “so fix it.”
Six seconds. That was my entire validation process. Y Combinator would be proud.
The problem nobody was solving
I went home and researched existing Chrome extensions that explain highlighted text. There were a bunch, but every single one had the same fatal flaw.
They were context-blind.
Explain “monetary policy” on a crypto article? Generic economics definition.
Explain “hierarchy” on a Feudalism page? Dictionary definition about ranked levels.
Zero awareness of what you were actually reading. Like asking someone to explain a joke and they just define every word in it individually. Pfft!
The other problems:
- Required users to paste their own API key (most people don’t know what that is and frankly shouldn’t have to)
- Last updated in 2021
- UI looked like it was designed during the feudal era itself
The gap was clear: context-aware explanations with zero setup friction.
The part where I had absolutely no idea what I was doing
Small problem: I had never built a Chrome extension in my life.
I did what any reasonable person does. Watched YouTube tutorials for two hours. Learned approximately nothing useful.
So I just started building with Claude. Got a basic structure working. Errors came. More errors. Switched to Cursor. More errors but at least they arrived faster.
At one point, I had been debugging the same issue for three hours. The extension loaded. The button appeared. But explanations? Silent. Nothing. The AI equivalent of sending a text and getting left on read.
I may have had a small breakdown. My laptop may have been in mild danger.
The ‘aha’ moment
The extension was working but explanations still felt generic. I was sending just the highlighted text to the AI, which of course had no context about what the user was reading.
Then it hit me.
Every webpage has a title tag. Clean, simple, always there. The page title is basically a one-line summary of everything the user is reading.
I updated the prompt to include the page title and explicitly told the AI it must reference it in the relevance section.
Tested it immediately. Highlighted “hierarchies” on a Feudalism Wikipedia article.
The explanation mentioned feudal lords, vassals, and peasants.
That’s the product. That moment right there.
Shipping (and accidentally going live)
Deployed the backend to Railway, submitted to Chrome Web Store, paid the $5 developer fee, and waited nervously.
Then kind of… forgot about it.
One random afternoon I opened the developer console and saw it was live. No notification. No fanfare. Just quietly living while I was doing other things.
Anticlimactic and perfect at the same time.
Started sharing with friends, posted on LinkedIn, sent approximately 47 WhatsApp messages.
3 days after launch:
- 21 installs
- 7 five-star reviews
- 11 weekly active users
- 130 Chrome Store page views Not viral. Not on the front page of anything. Just real people, finding it useful, leaving kind words.
Felt pretty good honestly.
What I actually learned
Tutorials taught me nothing. Building taught me everything.
The gap isn’t always about features. Sometimes it’s about removing friction (no API key setup) and adding intelligence (context-aware explanations). Both together is a product. Either alone is just a feature.
And the best validation is a friend saying “so fix it” in a college lab.
One more thing
I used some fancy words in this article.
If any of them confused you, install ContextLens. It’ll explain what they mean and why they’re relevant to an article about building a Chrome extension lol.
Yes, I just used my own product to promote my own product. The circle of life.
Try ContextLens free:
🔗https://chromewebstore.google.com/detail/jdiojebiogbpkigohjijfnmccfniiago?utm_source=item-share-cb
Highlight any text, click Explain, get meaning, example and why it matters in context of what you’re reading.
No account. No API key. No setup. Just highlight and understand.
If you’re building something too — I’d love to hear about it. And if you have feedback on ContextLens, even better. Roast me kindly.
Top comments (0)