Creating Successful Chrome Extensions

I got the chance to chat with Chris Achard and Christian Genco on the Makers.dev podcast. We talked about some of my projects, including T.LY URL Shortener and Weather Extension. The episode covers how he came up with the ideas, how I developed and marketed my projects, and where I see the future of my products and Chrome extensions in general.

In this episode, we talk about how Weather Extension and T.LY got started, how I think about building and marketing Chrome extensions, and what makes extensions such a practical distribution channel for indie products.

Transcript

Lightly edited for readability.

Hosts: Welcome to Makers, episode 70. Today we’re joined by Tim Leland, founder of T.LY and Weather Extension. Tim, how did you get into this mix of building and selling software?

Tim: After college I worked full time as a developer and also built websites for local businesses. Over time I realized building one thing and selling it many times was a much better model than building a new site for every client. That shift led me toward products, and Weather Extension was the first one that really took off.

Hosts: So Weather Extension did not come from client work?

Tim: No. Most of my client work was for restaurants and local businesses. Weather Extension came from my own need. I wanted a faster way to check the weather while sitting at my computer. Instead of opening my phone or a weather site, I wanted to click a browser icon and instantly see the temperature. It also updates in the background, so the current temperature is always there.

Hosts: That fits the classic “scratch your own itch” story. What came between client work and Weather Extension?

Tim: Before that I built a project called Social Traders. It was basically a Craigslist-style marketplace tied to Facebook login, before Facebook Marketplace existed. The idea was that you could see mutual connections and feel safer buying from someone. It got some users and people really did buy and sell through it, but once Facebook launched Marketplace I shut it down.

Hosts: What do you think about building on top of a marketplace like the Chrome Web Store? You get discovery, but you also give up control.

Tim: That tradeoff is real. For example, Windows now has a weather widget built in, so some people no longer need a weather extension. And I have heard stories of extensions being removed from the store with little or no warning. That’s why I try not to make everything dependent on the store. With T.LY, people can use the service without the extension. If Chrome shut down the extension, the product would still exist.

Hosts: How does Weather Extension make money?

Tim: It’s free for most users. There’s a paid upgrade that adds things like multiple locations, weather alerts, and a few extra features people requested over time. Before that, some users were already donating, which convinced me there was demand for a premium option.

Hosts: Chrome extensions are powerful, but they’re also scary from a privacy standpoint. As a user and a builder, how do you think about security?

Tim: The main thing is permissions. When you install an extension, look at what it is requesting. Years ago, a lot of extensions asked for access to every website and every API whether they needed it or not. Now Chrome is much stricter, especially with Manifest V3. If your extension wants broad access, review is tighter. I have tried to keep my extensions down to the minimum permissions they actually need.

Tim: For Weather Extension that means things like geolocation and notifications. For the link shortener extension, it mostly just reads the current tab URL when you click it. Chrome also started warning me about permissions I had added but never used, so I removed them. That is a much better model anyway: request extra permissions only when the user turns on a feature that needs them.

Tim: I learned that lesson the hard way. Years ago I added a new permission to Weather Extension without using the prompt-based flow. Chrome disabled the extension for all users until they re-enabled it. A lot of users never came back, so that was an expensive mistake.

Hosts: Manifest V3 also sounds like a big opportunity. Did you think about buying or rebuilding abandoned extensions?

Tim: Definitely. You can look at when an extension was last updated, roughly how many users it has, and whether the developer left contact information. The challenge is sounding legitimate, because lots of buyout messages in this space are shady. Still, there is a real opportunity when popular extensions are no longer maintained.

Tim: That is basically how the URL shortener extension happened. I scraped the Chrome Web Store to study popular extensions and noticed a Google URL shortener extension with more than a million users. Around the same time, Google announced it was shutting down goo.gl. I tried contacting the developer, never heard back, and built my own version that supported multiple shortening services.

Tim: I launched it before Google shut its service down, then when that old extension disappeared, people started looking for alternatives. Mine was already there. It went from almost nothing to tens of thousands of users very quickly, and later grew to nearly 400,000 active users across browsers.

Hosts: At that point, why build your own shortener instead of just continuing to call other APIs?

Tim: Reliability. People would shorten links through the extension, then a third-party domain would go down or its certificate would expire, and they would email me even though I did not control that service. Once the extension had enough users, I realized I needed my own backend. That is where T.LY came from.

Tim: T.LY is free for basic use, with limits mostly to prevent abuse. Paid plans unlock features like API access, smart links, analytics, and custom domains. A big part of the original pitch was that custom domains were much more affordable than some of the other options on the market.

Hosts: So what is the pitch today? Why choose T.LY over Bitly or TinyURL?

Tim: I think of it as a simpler URL shortener. The API is straightforward, custom domains are accessible, and the shortened links can often be shorter because the domain itself is shorter and the namespace is less exhausted than older services. Some of the bigger products have far more features, but many users just want a clean, reliable shortener that is easy to set up.

Hosts: Your marketing playbook seems pretty disciplined: SEO, blog posts, Product Hunt, Indie Hackers, podcasts. What has worked best?

Tim: The Chrome Web Store has probably been the biggest driver, especially because the extension ranks well when people search for “URL shortener.” Beyond that, I have had a personal blog for years and try to publish helpful content around extensions and technical topics. I am also active in communities like Indie Hackers. A lot of it is just consistently putting the product in places where the right people will find it.

Hosts: Have you learned anything specific about Chrome Web Store optimization?

Tim: Naming matters. My extension is literally named “URL Shortener,” which helps. Keywords in the description help some, though it is hard to tell how much. Screenshots matter. Reviews matter too, but they are tough because happy users rarely leave them and upset users do. I also think many users discover extensions through normal Google search, not through the store search itself.

Tim: Reviews can be especially messy. At one point Weather Extension was hit with a flood of one-star reviews. I contacted Google because it went from very few reviews to hundreds of negative ones almost overnight. Some were removed, but not all. Their advice was basically to start over with a new extension if I wanted a clean slate. That is one of the hard parts of living inside someone else’s marketplace.

Hosts: You also talked about the dark side of extension access. If someone were malicious, what could they do?

Tim: If an extension has access to all browsing activity, it can do a lot. One obvious abuse case is data collection. Another is targeting specific workflows, like modifying copied crypto addresses. Chrome has cracked down on some older abuses too, including in-browser crypto mining scripts that some extensions used to run.

Tim: That is another reason I like building a real service on top of an extension. Products like 1Password or LastPass are not valuable because of the extension alone. The extension just improves access to a broader product. T.LY fits that pattern better than something that only exists inside the browser store.

Hosts: How is T.LY built behind the scenes?

Tim: It is simpler than people expect. The core app is built with Laravel and MySQL. A lot of the scaling comes from background jobs and caching. For redirects, caching popular URLs makes a huge difference. I use Redis, add infrastructure as needed, and so far that has worked well without major outages.

Tim: The hardest part was not the link shortener itself. It was abuse prevention. Shortly after launch, my hosting company shut the service down because malicious content was being routed through it. I had to build automated checks, domain reputation lookups, and review workflows so bad links could be caught and removed quickly. That side of the product took months to get right.

Hosts: With that many users, what does support look like?

Tim: I try to keep the product simple enough that support stays manageable. For the extensions, new feature requests usually just go onto my list for future updates. For T.LY, most people figure it out on their own because the core job is straightforward: paste a long URL, shorten it, and optionally use a few more advanced features. Keeping the feature set focused has helped a lot.

Hosts: What is next for the product?

Tim: I want to keep growing it and keep learning which features people will actually pay for. I have started building a “one links” feature, similar to Linktree, where someone can use a single page to share multiple links. It is still early, but it could become a useful add-on for people already using custom domains and link tracking.

Tim: I also want to improve the homepage, publish more content, and think more deliberately about marketing. My paying customers today range from teachers to marketers to businesses using short links for print materials, QR codes, SMS, and API-driven workflows. If I had to double revenue quickly, I would probably spend most of my effort on marketing rather than adding a huge number of new features.

Hosts: What channels are you exploring there?

Tim: I have experimented with Google search ads, and I have tried Facebook and Twitter ads too. It is very easy to spend money there without getting much back, so I am still learning. Search ads make the most sense to me because people already know they need a URL shortener. They are not casually browsing Facebook hoping to discover one.

Hosts: Chrome does not really have a paid promotion layer inside the store yet, but it feels like it eventually could.

Tim: I agree. Google could absolutely monetize that if they wanted to. Right now it feels more hand-picked. I was fortunate that Weather Extension was featured as an editor’s choice on Mozilla’s store, but Chrome promotion still feels opaque. If Google ever modernizes the Chrome Web Store, paid promotion seems like an obvious addition.

Hosts: The bigger takeaway here seems to be that differentiation does not always have to come from some massive technical breakthrough. It can come from better distribution.

Tim: Exactly. I usually go after products where users already understand the category. I am not trying to invent an entirely new market and educate everyone from scratch. If people already know what the product does, then I can focus on making it a little better, a little simpler, and easier to find.

Hosts: Where should people find you if they want to learn more?

Tim: My blog is timleland.com, where I post a lot of technical articles and extension-related content. I’m also active on Twitter, and of course T.LY is the place to go if you need to create short URLs.