Devlog #3: Playing Nice (Allowlists & Passive UI)
The core loop works. So you type a time, the badge pops up and it tells you what time it is for your contact. But after using it for a few days, two massive problems became obvious: it was running everywhere and it was too loud.
Here’s how I fixed the extension to play nice with your browsing experience.
Problem 1: The “Everywhere” Problem
Originally, the manifest was set to <all_urls>. This meant the content script was injecting itself into every single page you visited. Your banking site, Reddit, random blogs. Even if the badge didn’t pop up, the event listeners were running on every text box on the internet which felt invasive and heavy. So I added an enabledSites list to chrome.storage.local. The extension now defaults to only running on whatsapp.com, slack.com and mail.google.com.
I also updated the popup UI. If you want to add a new site (like discord.com), you can either type it manually in the popup or just hit the “+ Add current site” button which grabs the URL of the tab you’re currently looking at. The content script listens to storage changes so if you add a site, the extension instantly activates on that tab and no reload is required.
Problem 2: The Noise Problem
The badge was a full card which activated whenever you typed a time or date, a giant dark tooltip would expand below your text box. If you were just typing a normal message that happened to include a time, the UI was visually shouting at you. SO I shrunk the UI down to a tiny 26x26 pixel clock icon (🕐). It still appears when you type a time phrase but it stays out of your way. If you actually want to see the conversion, you click the icon and the full panel expands. If you click away, it collapses back to the icon. It’s much less stressful to type with!
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.