# Build a browser extension

> A browser extension is a small add-on that changes or adds to the websites people visit. To build one, you decide what it does on which pages, what permissions it needs and how it is published to the extension stores. ErdiBuilds is an open marketplace where clients post app, SaaS, website and game projects, see which independent developers from the EU fit best based on what they have already built, and pay per milestone.

Canonical: https://erdibuilds.app/build/browser-extension
Last updated: 2026-11-06 (November 6, 2026)

## What extensions do well

Extensions live where the work happens: inside the browser. They can read a page, add buttons, highlight text, save things, fill forms, block distractions or send data to another service. Because they are small, they are a fast way to test an idea.

Typical projects are productivity helpers, tools that save content to a note app or CRM, price and data collectors, writing and translation helpers, accessibility tweaks and a companion to an existing [web app](https://erdibuilds.app/build/web-app) or [SaaS](https://erdibuilds.app/build/saas), which adds a way to use the product on any page.

## How an extension is put together

- A manifest (A small settings file that tells the browser the name, permissions and parts of the extension.) describes what the extension may do.
- Content scripts (Code that runs inside a web page and can read or change what is shown.) work on the pages people visit.
- A service worker (A background script that reacts to events, such as a click on the extension icon or a message from a page.) handles background tasks.
- A popup or side panel gives the user buttons and settings.
- Optionally a back end for accounts, sync and payments, so the extension can also work across devices.

## Typical technologies

Most extensions use TypeScript (JavaScript with types, which catches many mistakes before the code runs.) with React (A JavaScript library for building interactive user interfaces from components.) for popups, and a build tool to package the files. Chrome, Edge and other browsers built on Chromium share most code. Firefox and Safari need small adjustments, and Safari extensions are wrapped in a Mac or iPhone app. A back end often uses Supabase (An open source backend with a Postgres database, user login and file storage.) or a [Node.js](https://erdibuilds.app/hire/nodejs) server. [Find My Stack](https://findmystack.app/?project_type=browser-extension) can suggest a fit for your idea.

## An example plan in milestones

A small extension can be finished quickly, and the store review is a part to plan for. Each milestone is funded before work starts and runs 1, 2, 3, 4, 6 or 8 weeks. Milestones are from 50 to 2,000 each in your project currency.

**Example phases for a browser extension**

|  | Example timing | What happens | What you can check |
| --- | --- | --- | --- |
| Prototype | For example, weeks 1 to 2 | Manifest, one content script, a popup, install from a local folder | The main idea works on the target pages |
| Full feature set | For example, weeks 3 to 4 | Settings, saving data, edge cases on different pages, error states | Stable use on the sites you named |
| Account and sync | For example, weeks 5 to 6 | Optional login, cloud sync, payments if needed | Same data on two computers |
| Store release | For example, weeks 7 to 8 | Store pages, icons, privacy text, permissions explanation, review fixes | The extension is listed in the store |

The weeks are for illustration. Developers set the length of each milestone in their proposal, and each real milestone runs 1, 2, 3, 4, 6 or 8 weeks. Skip the account phase if the extension works fine alone.

## What belongs in the project description

- What the extension does, on which websites and at what moment.
- Browsers to support: Chrome, Edge, Firefox, Safari.
- Data it reads or stores and where that data goes, which will matter for the privacy text in the stores.
- Whether users need an account and whether the extension is free or paid.
- Websites that may change their layout, since extensions that read pages can break when pages change.
- Screens or sketches of the popup and any changes on the page.

If your extension collects personal data, rules on data protection can apply. This is general information, not legal or tax advice.

## How to recognise a suitable developer

Ask for published extensions or open source ones you can read. Good signs are small permission requests, careful handling of other websites and a plan for fixing things when a target page changes. A developer who has been through store review knows what wording and permissions get questions.

The match score (A number from 0 to 100 that shows how well a developer fits your project, with plain reasons such as shared technologies, similar past work, budget fit and availability.) on proposals helps you sort them. Developers need at least 40 to apply, and 80 or more earns a Top match badge. Developers are independent professionals, not our employees. Compare more tips in [how to hire a developer safely](https://erdibuilds.app/guides/how-to-hire-a-developer-safely).

## Frequently asked questions

### Which browsers should the extension support?

Start with the browser most of your users have, often Chrome, and add others after launch. Chromium based browsers need little extra work. Firefox and Safari need more.

### Is there a review before my extension goes live?

Yes, the extension stores review submissions. Plan a few days or more for it and keep permissions as small as possible.

### Can I charge for an extension?

Yes. A common route is a free extension with a paid account on your own website, handled by a payment provider such as [Stripe](https://erdibuilds.app/hire/stripe).

### What if a website changes and my extension breaks?

That can happen when an extension reads other sites. Ask for tests on the key pages and for a clear way to fix selectors quickly. Agree on a follow-up milestone for maintenance if needed.

### Who owns the extension?

Unless both sides agree otherwise in writing on the platform, the rights to the result of a milestone pass to the client once that milestone is paid in full. Publish under your own store developer account so the listing stays with you.

## Related

- [Build a web app with an independent developer](https://erdibuilds.app/build/web-app): How to plan a browser-based web app: common technologies, an example milestone plan, what to write in the brief and how to judge a developer.
- [Build a SaaS with an independent developer](https://erdibuilds.app/build/saas): Plan a SaaS product: accounts, subscriptions, technologies, an example milestone plan, what to write in the brief and how to pick a developer.
- [Hire a Node.js developer for your server](https://erdibuilds.app/hire/nodejs): Node.js runs the server side of apps and APIs. Learn what a Node.js developer builds, what to ask and how milestones and matching work.
- [Hire a Stripe integration developer](https://erdibuilds.app/hire/stripe): Add payments or subscriptions to your product. What a Stripe developer does, what to ask, example milestones and how matching works.
- [What Is an MVP? A Plain Guide for Founders](https://erdibuilds.app/guides/what-is-an-mvp): An MVP is the smallest version of a product that real users can try. Learn what it includes, what it leaves out and how to plan one.
- [Hire a Developer to Build Something New](https://erdibuilds.app/help/build-new): Turn an idea into a working product. See how to prepare, how milestones structure the work and what to ask developers before you start.
