Quick Chrome extension tip:
chrome.storage.sync has brutal quotas: 100KB total, 8KB per item.
Hit them and writes silently fail — no error thrown, nothing saved.
Bundle related settings into one key. Use storage.local for bigger data.
#BuildInPublic #ChromeExtensions #ai-assisted
Posts by S-Hub | Chrome Extension Dev
Shipped Procshot v0.3.5.
Review caught a useEffect deps bug. Prompt re-fired every count tick — deps were [usageCount] not [].
Easy to miss alone.
chromewebstore.google.com/detail/ieblehdloggcpmknc...
#BuildInPublic #ChromeExtensions #ai-assisted
Exactly that. People tolerate friction once they understand the trade. The ask without context is what kills it — same on web, mobile, paywall, anything. Glad it worked for you too.
Shipped Procshot v0.3.2 — full i18n.
Every string now routes through chrome.i18n.getMessage(). Found 23 hardcoded strings in BrandingSettings alone.
chromewebstore.google.com/detail/ieblehdloggcpmknc...
#BuildInPublic #ChromeExtensions #ai-assisted
Wrote about the no-code version of my DataBridge extension.
Point-and-click data transfer between any two tabs — no scripting, no clipboard gymnastics.
dev.to/_350df62777eb55e1/how-to...
#BuildInPublic #DevCommunity #ai-assisted
Audited permissions across all 17 Chrome extensions this week.
Found tabs + scripting in 3 that didn't need them. Classic copy-paste manifest habit.
Removed. Smaller scope = faster CWS review + less scary install prompt.
#BuildInPublic #ChromeExtensions #ai-assisted
Quick Chrome extension tip:
MV3 dropped webRequest blocking. Migrate to declarativeNetRequest.
Define rules as JSON — Chrome evaluates them without running your code. Faster, but you lose dynamic rule generation.
#BuildInPublic #ChromeExtensions #ai-assisted
Reverse trial: full access for 7 days, then limits kick in. Users who actually touch the features convert way higher than passive installs. Cold free tier never worked for me.
Ship-first is the only sane move when you're solo. Locale data doesn't exist until you have users, so you build for where the installs come from and adjust from there.
Exactly that — reframes the whole ask. 15 seconds of 'oh I get what this does' beats any permission copy. Good luck with yours!
Just added Korean and Spanish to two of my extensions. Zero GA4 data on whether anyone actually uses non-English versions.
How do you decide which languages to ship first? Pure guesswork until you have locale data?
#BuildInPublic #ChromeExtensions #ai-assisted
Japanese fonts look identical to the untrained eye. Built a Chrome extension that names any typeface on hover.
dev.to/_350df62777eb55e1/i-buil...
#BuildInPublic #DevCommunity #ai-assisted
Added cross_promo_clicked tracking across 15 of my 17 Chrome extensions.
Now I can see exactly which extension sends users to which other one.
Hypothesis: they don't compete. They compound. Every install might multiply.
#BuildInPublic #WebDev #ai-assisted
That's a great principle. For font detection, hover felt natural — designers already hover-to-inspect everything. Meeting users where their instinct already is.
Thanks! Minimal friction was the whole goal — the tooltip appears in ~50ms so it feels instant. Good luck with Habit Pixel, stripping one step per release is a solid discipline.
Usage-based limits with a visible counter outperform time-based trials. Users need to hit the limit to feel the value. Metric: 7-day retention before vs. after first paid action.
No exact number yet — tracking via GA4 but volume is still small. The 'what I do' screen before the permission prompt made the biggest difference. Good luck with yours!
New on note: Freemium design that actually converts.
Built 20 paid Chrome extensions.
Tried 4 different freemium models.
One pattern consistently outperforms the rest.
What I learned:
{NOTE_URL_3}
#IndieHacker #ChromeExtension #Monetization
Japanese fonts are nearly impossible to identify by eye. Built a Chrome extension that reveals any typeface on any page — just hover over text.
dev.to/_350df62777eb55e1/how-to...
#BuildInPublic #DevCommunity #ai-assisted
New on note: Freemium design that actually converts.
Built 20 paid Chrome extensions.
Tried 4 different freemium models.
One pattern consistently outperforms the rest.
What I learned:
{NOTE_URL_3}
#IndieHacker #ChromeExtension #Monetization
Quick Chrome extension tip:
Content scripts run in an isolated world. They see the DOM but NOT the page's JavaScript variables.
Need window.myApp? Inject into page context:
chrome.scripting.executeScript({ world: 'MAIN' })
#BuildInPublic #ChromeExtensions #ai-assisted
Good point. Most installs come from CWS search — expectations vary wildly. I have uninstall reasons in GA4 but it's all 'other'. Testing shorter store descriptions to set better expectations.
Shipped onboarding to 3 of my 17 extensions last month.
Still not sure if the fast uninstalls were an onboarding problem or a "wrong user" install problem.
What's your read: churn in <24h — UX failure or targeting failure?
#BuildInPublic #IndieHacker #ai-assisted
Exactly. One less tab = one less context switch = users actually complete the action. Context fragmentation is the silent killer of browser tool adoption.
Early days still — published last week. Watching Day 1 retention more than install count right now. Habit Pixel looks interesting, same friction-first philosophy. How's your D1 retention holding?
Yeah that single-screen approach is exactly what worked. Procshot now shows a 3-step "here's what I do" before any click. Bounce dropped noticeably. The permission ask before showing value was the real killer.
How I find Chrome extension ideas:
1. Look at my own pain points first
2. Search CWS for "last updated: 2022" competitors
3. Check 1★ reviews — they're a goldmine
4. Ask "what would a power user pay $3/mo for?"
Step 3 alone gave me 4 extension ideas.
#ChromeExtension #IndieDev
Built a one-click SEO analyzer extension: scoring, schema detection, SERP preview â all without switching tabs.
dev.to/_350df62777eb55e1/best-f...
#BuildInPublic #DevCommunity #ai-assisted
Exactly. The tool handles the obvious stuff — syntax, patterns it's seen before. The 20% is logic that's plausibly wrong, matches the shape but breaks an invariant the tool doesn't know about. That part still needs eyes.
GA4 because I already use it for user analytics — zero new infra to add custom events. Biggest challenge: service workers lose state, so I buffer error events through chrome.storage.local before sending. Took about a weekend to get right.