Building Web Extensions With Your Favourite Framework

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Do you want to automate daily manual tasks or explore extending browser functionality? This talk has you covered; we’ll break down how to build Web Extensions from scratch – covering architecture, state management, Manifest V3, best practices and tools to bring your ideas to life! 🚀

This talk has been presented at JSNation 2025, check out the latest edition of this JavaScript Conference.

FAQ

Web extensions are useful because they automate repetitive tasks, enhance browser functionalities, and provide users with additional tools and capabilities, such as translating content, formatting JSON, and auto-filling forms.

To build a web extension, you need to understand the Manifest V3 standard, know how to use your preferred JavaScript framework (like Vue), and be familiar with the structure of web extensions, including components like pop-up, sidebar, and content scripts.

Manifest V3 is the standard for creating web extensions in browsers such as Chrome and Firefox. It defines the essential details of the extension, including its name, version, description, required permissions, and the location of its components.

Content scripts are part of the web page context and can interact with the web pages being navigated. They inject functionality, modify content, and communicate with other parts of the extension to perform actions on the web page.

To test a web extension locally, you can enable developer mode in your browser's extensions settings and load the unpacked extension. For deployment, you can publish it on the Chrome Web Store or Firefox Add-ons site for others to download and use.

The talk demonstrated practical uses such as configuring user preferences with web storage, rendering dynamic menus based on text selection, and utilizing built-in AI APIs for actions like translation and summarization.

Open-source packages in web extension development provide simplified APIs, reduce the need for manual configurations, and enhance development efficiency by offering pre-configured templates and tools for easier integration with browser APIs.

There are various tools and frameworks available, such as WebExtension Polyfill, webext package, and WXT. These tools simplify the development process by providing API wrappers, command-line tools, and templates for building web extensions.

A web extension is a small program developed using HTML, CSS, and JavaScript that integrates into a browser, adding new functionalities and customizing the browsing experience. It is similar to a single-page app but designed to work within the browser.

Web extensions can extend browser DevTools by adding new tabs or panels that provide additional functionalities, such as Vue DevTools, which offers enhanced inspection tools for Vue.js applications.

Alba Silvente Fuentes
Alba Silvente Fuentes
25 min
16 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Alba Silvente, Fullstack Engineer at Servlug, discusses unlocking web extension power with Vue. Shows demo features and AI API usage. Talks about building extensions, standards, structures, open-source tools, and practical use cases. Explores the simplicity and benefits of web extensions for customization, automation, and time-saving. Mentions varied functionalities like translation, JSON formatting, and form filling using extensions. Exploring form-filling extensions and building web extensions with Manifest V3 and Vue. Understanding the structure and components like pop-up and sidebar pages. Discussing manifest.json for defining extension details, background JavaScript in service worker context, and creating popup and sidebar pages. Discussing the importance of different contexts for popup and sidebar pages, customization with various JavaScript frameworks, and utilizing content scripts to interact with web pages. Communicating with content scripts, configuring settings via the options page, and extending web extensions with various functionalities like overriding home pages, bookmarks, history, and adding options to the context menu. Communicating with browser APIs for web extensions using packages like WebExtension Polyfy and webext. Storing data in web extensions efficiently with specialized storage areas. Simplifying communication between components using the WebX Bridge package for seamless browser API interactions. Using Vite and WXT frameworks for web extension development. Implementing preference configuration and communication flow between components for efficient web extension creation with WXD. Defining items in local storage for preferences and using composable for shared components in web extensions development. Using extension storage for web extension synchronization and integrating AI APIs for text analysis. Exploring Content Script Actions, Background API Communication, and Extension Deployment.

1. Unlocking Web Extension Power with Vue

Short description:

Alba Silvente, Fullstack Engineer at Servlug, discusses unlocking web extension power with Vue. Shows demo features and AI API usage. Talks about building extensions, standards, structures, open-source tools, and practical use cases. Explores the simplicity and benefits of web extensions for customization, automation, and time-saving. Mentions varied functionalities like translation, JSON formatting, and form filling using extensions.

Hi everyone, my name is Alba Silvente and I work as a Fullstack Engineer at Servlug. Today I want to talk about unlocking the power of web extensions using your favorite JavaScript framework. In my case, I will use Vue because it's the one I love, but you can use any framework you like. So first I want to show you a little sneak peek on how the demo will look like. Here you have the preference where the user can select what they want to see when they are navigating between pages. And then in the options page I have the same component, just showcasing the different preferences, so every time you change it you can see the real-time changes between them. And once you select a word in the page you are navigating, you will see a menu out of the preference that you selected, where we are calling the built-in AI APIs from the browser to generate the response.

So in this talk I want to show you how you will build this and what do you need to know in order to do it. So the agenda will look like. First we will talk about what, why and how we build our extension. Then we will see the standard behind them and the structure that our project needs to follow in order to create a web extension. Later we will see the open-source packages and frameworks that we can use to build web extensions easily and without the pain of configuring the entire project. And later we will see the practical use cases that I build with this demo, so we understand how to convert our ideas to a web extension.

And what is a web extension? Well, it's as simple as a small page. It's like a single-page app, it's just a small program developing HTML, CSS and JavaScript that integrates into a browser to customize and add new functionalities to it. So you can imagine that if you want to add a DevTools tab, you will need to do something else than creating a website. That's why web extensions are needed in order to develop more things inside the browser itself. So it helps the user to have more capabilities thanks to that. And what's in it for me? Of course you will think maybe creating an extension can be really overkill for something you don't want to spend so much time doing. But imagine that you have a repetitive task that you are doing every day and you can automate somehow using web extensions. That's why I saw the potential and I wanted to develop my own demo so you can see what is the power of web extensions and how many things you can build with them. And there's web extensions for everything you can imagine. For translating content, there's web extensions for formatting the JSON that you are seeing in a page so you can see it more beautifully and easy to read.

2. Building Web Extensions with Manifest V3 and Vue

Short description:

Exploring form-filling extensions and building web extensions with Manifest V3 and Vue. Understanding the structure and components like pop-up and sidebar pages.

There's also extensions that fill out forms for you, so you create the content in one extension and then when you go a page and you fill the form, you fill it automatically with this data that you already saved. So you are saving a lot of time and that's a really powerful tool.

But what do you need to build a web extension nowadays? Well, first you will need to know the Manifest V3, that is the standard behind web extensions, and use your trusted JavaScript framework, that for me will be Vue. So the Manifest V3 is just the standard, as I told you, for creating web extensions in browsers such as Chrome, Firefox, and X. Also you can create for Safari, but there's differences between the APIs, but of course we have open source tools to help with that.

The structure of a web extension will be just files, JavaScript, HTML, and JSON files, components like the pop-up, the sidebar, the content scrape, well, we will see them now, or the context that make up this web extension. So there are so many different things that we need to know when we start that we want just to jump into it directly, so you can see them all, or at least a sneak peek of the most used ones, and then you can start exploring deeper in each of them.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Scaling Up with Remix and Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Understanding React’s Fiber Architecture
React Advanced 2022React Advanced 2022
29 min
Understanding React’s Fiber Architecture
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Full Stack Components
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Install Nothing: App UIs With Native Browser APIs
JSNation 2024JSNation 2024
31 min
Install Nothing: App UIs With Native Browser APIs
Top Content
This Talk introduces real demos using HTML, CSS, and JavaScript to showcase new or underutilized browser APIs, with ship scores provided for each API. The dialogue element allows for the creation of modals with minimal JavaScript and is supported by 96% of browsers. The web animations API is a simple and well-supported solution for creating animations, while the view transitions API offers easy animation workarounds without CSS. The scroll snap API allows for swipers without JavaScript, providing a smooth scrolling experience.
The State of the Web
JSNation 2025JSNation 2025
32 min
The State of the Web
Sasha Grief discusses the state of the web through web development surveys, leading to an interactive quiz about the state of JS and usage of front end frameworks. Discussion on popular front-end libraries like React, Vue, Angular, and the rising popularity of TypeScript among developers in recent surveys. Discussion on TypeScript adoption, TC39 committee proposals, favorite CSS feature 'has,' and browser support for 'has' selector. Browser interoperability, browser vendors' initiatives, AI usage among web developers, and survey insights. Job titles linked to higher income, diversity of survey topics, top hobby among developers, and popular specific video games. Learnings on CSS features, TypeScript default, AI usage, survey benefits, challenges in reaching diverse survey participants. Surprising positivity in JavaScript usage, stable framework landscape, AI adoption challenges, mainstream AI tools, successful situp.js survey. Inconsistent respondent numbers, manual data normalization efforts, subjective question selection process, community input, mitigation of selection bias. Reason for starting surveys, transition from Meteor JS, exploration of JavaScript ecosystem.

Workshops on related topic

AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
High-performance Next.js
React Summit 2022React Summit 2022
50 min
High-performance Next.js
Workshop
Michele Riva
Michele Riva
Next.js is a compelling framework that makes many tasks effortless by providing many out-of-the-box solutions. But as soon as our app needs to scale, it is essential to maintain high performance without compromising maintenance and server costs. In this workshop, we will see how to analyze Next.js performances, resources usage, how to scale it, and how to make the right decisions while writing the application architecture.
Writing Universal Modules for Deno, Node and the Browser
Node Congress 2022Node Congress 2022
57 min
Writing Universal Modules for Deno, Node and the Browser
Workshop
Luca Casonato
Luca Casonato
This workshop will walk you through writing a module in TypeScript that can be consumed users of Deno, Node and the browsers. I will explain how to set up formatting, linting and testing in Deno, and then how to publish your module to deno.land/x and npm. We’ll start out with a quick introduction to what Deno is.