Urgent.News

One page, thousands of outlets. See who else covered it.

Editions

Tech

What I Learned Shipping My First Chrome Extension to the Web Store

I spent the last few months building and shipping a Chrome extension called Promo Drop, a free tool that finds verified promo codes and cashback for products on Whop. It is live on the Chrome Web Store now. This is a write-up of what I learned getting it there, minus the one part I cannot share (more on that below). Quick background on me: I studied at Lancaster University, spent a while day…

A few months ago, I built and launched a Chrome extension named Promo Drop, a free tool designed to locate verified promo codes and cashback for products on Whop. It is now available on the Chrome Web Store. I decided to share my experience with shipping this extension, focusing on the lessons learned, excluding one aspect I cannot disclose.

I studied at Lancaster University, worked as a day trader, and later joined Whop courses and communities. I observed that discount codes existed but were hard to find, and when no code was available, there was no way to recover value. Hence, I created the tool I desired. Here's what I learned from the process.

First, Manifest V3 has fundamentally changed the approach to building Chrome extensions. The old model is no longer valid, as there is no persistent background page anymore. Instead, Chrome creates and destroys a service worker as needed, making it impossible to rely on in-memory state between events. This necessitates persisting data in storage and designing the extension around the service worker being inactive most of the time. Many early bugs stemmed from the misunderstanding of variables' persistence.

Second, the Web Store review process favors simplicity and honesty. The most significant factor that facilitated my reviews was requesting minimal permissions and providing a clear justification for each. Reviewers scrutinize extensions that request more than necessary. Scoping the extension to run only where required, instead of on every site, benefits both users and simplifies the review process.

Third, keeping the extension's core functionality off the client is essential. In my case, the logic for determining promo codes does not live within the extension. Instead, the client sends a URL to a server, which responds with the result. This approach prevents reverse-engineering the method and ensures the extension remains thin and user-friendly.

This shift was initially driven by IP protection but proved beneficial for engineering purposes. Avoiding client-side secrets means anyone can inspect the extension, ensuring nothing can be hidden there.

Fourth, ethical considerations should be a primary concern in extension development. Promo Drop earns an affiliate commission and adheres to a strict rule: attribution only occurs upon a genuine user action, and it never overwrites an affiliate link set by someone else. This approach avoids background cookie-dropping and hijacking, which could lead to removal from the store and damage brand relationships. Being honest from the start eliminated the need to backtrack later.

Lastly, the minimalist design of the user interface is crucial. My initial version displayed a banner immediately upon having content, which was effective but irritating. I later adopted a quieter approach, featuring a small indicator with details accessible upon user request. This design improvement resulted in increased engagement.

For any feature living on top of another site's page, restraint is key. Shipping a real product through a review gate like the Chrome Web Store demands discipline in handling least privilege, honest copy, and honoring a privacy policy. Even if the extension had not succeeded, the lessons learned would have been invaluable. Promo Drop is available at https://promodrop.codes/ if you're interested in seeing the final product. I'm open to questions about Manifest V3 or the Web Store process in the comments.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

More from Monday 17 August →