How to create a new browser extension?

Browser extensions are now a must-have, so why not create your own? Learn in this article how to create, use and even publish your own extension. In this article, we're going to create an extension that lists lots of cool sites for devs!
•
Updated on August 14, 2026
•
3 min read
Believemy logo

Our extension consists of listing plenty of cool websites for us developers in a list, one after another.

To create an extension, we will need to create an HTML page and a CSS file, as we are used to doing. We will just modify certain things.

 

Prerequisites

  • Knowledge of HTML
  • Knowledge of CSS
  • Basics of JSON

If you need a refresher or want to learn HTML and CSS, follow this course and then come back to this article.

 

Setting Up the Project

We will need to create a folder in which we will have index.html, style.css, and manifest.json.

In index.html, we will write the basic code of an HTML page:

HTML
<!DOCTYPE html>
<html lang="en">

  <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <link rel="stylesheet" href="./style.css">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>

  <body>
      <h1>My First Extension</h1>
  </body>
</html>

 

Let's add our first websites: a palette generator, a JSON comparator, and a CSS wave generator:

HTML
  <body>
      <h1>My First Extension</h1>

      <a href="https://coolors.co/e6eed6-dde2c6-bbc5aa-a72608-090c02">Palette Generator</a>
      <a href="https://getwaves.io/">Wave Generator</a>
      <a href="https://jsoneditoronline.org/#left=local.wixiyo&right=local.jozayo">JSON Comparator</a>
  </body>

 

Let's Tackle the CSS

As for the CSS, we just need to specify the size of our window by modifying the size of body:

CSS
body {
  width: 400px;
  height: 500px;
  font-family: Arial;
}

 

Let's add a style to our links:

CSS
a {
  width: 90%;
  border-radius: 8px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  padding: 7px;
  gap: 5px;
  text-decoration: none;
  color: #fff;
  transition: 0.2s;
  background: #333333;
  align-items: center;
  margin-bottom: 10px;
}
a:hover {
  transform: scale(1.02);
  opacity: 0.8;
}

 

The manifest.json

In manifest.json, we will specify a bunch of things:

JAVASCRIPT
{
    "name": "My First Extension",
    "version": "0.0.0.1",
    "manifest_version": 3,
    "description": "The best extension that exists!",
    "icons": {
        "48": "icon.png"
    },
    "action": {
        "default_popup": "index.html"
    }
}

 

In this case, we have:

  • name: the name of our extension
  • manifest_version: the version of manifest.json (make sure it is version 3)
  • description: the description of our extension
  • icons: the path to our icon(s) in different resolutions
  • action => default_popup: the path to our HTML page

 

Using Our Extension in Our Browser

To use our extension in our browser, in most browsers, we will need to enable developer mode. Go to the extensions page and click on the "Developer mode" button to activate developer mode.

 

Then, click on "Load extension" and select our project.

 

Publish My Extension

To publish our extension, it's not necessarily the same process. It all depends on the browser for which you want to make your project available.

Category: Developers

Share this article

Want to help us? Share this article on your networks or even better: on your site, in an article or in your newsletter.

Believemy logo
Comments (0)

You need to be logged in to comment on this article: log in or sign up.

Read next

The 8 best extensions for Chrome (Google Chrome, Brave, ...) that every developer should have

Would you like to have the best extensions to increase your productivity as a developer? We've selected the 8 best for your Chrome browser, whether it's Google Chrome, Brave or many others!

December 9, 2024

How to create an NPM package with Node.js

Learn how to publish your own npm package with Node.js and npm. Step-by-step guide to initializing, creating, publishing and updating your JavaScript package on npm.

December 9, 2024

Syntax highlighting with HTML and CSS

If you have a blog or a portfolio on which you want to present code, whether HTML / JavaScript or CSS code extracts, you have undoubtedly come up against a problem: how do you activate syntax highlighting to make it look as if you had put the code in a code editor? In this article, we'll look at how to do it.

December 9, 2024

Creating a random colour generator with JavaScript

Want to practise your JavaScript skills? Try building a random colour generator! In this article, we'll look at how to do it.

December 9, 2024

Where to start with web development?

Creating your own website is a very rewarding experience: the feeling of creating something that didn't exist before with your hands on a keyboard has always amazed me. But where to start in web development? That's what this article is all about!

December 4, 2024

Find any font with the WhatFont extension

Easily find the fonts used on any website with the WhatFont extension. Quickly identify font names, sizes and styles with this free tool, ideal for designers and developers.

December 6, 2024

Create a clean, modern timeline using html and css

Whether you want to show a purchasing process, the highlights of your career on your portfolio, or anything else, learn how to create a sleek, modern timeline to show it off!

December 9, 2024

ARC Browser : The best alternative to Safari and Google Chrome

Arc has rapidly become one of the best browsers for Mac users. A few days ago, this fabulous browser announced the release of a beta for Windows users, giving us the opportunity to explain why you too should try out the Arc browser today.

December 9, 2024

Become the solopreneur you dream of being.

First project, career change, business launch: access our courses, practice on real-world cases, and move forward with clear guidance.