Browser Extension Development (BED) Framework
that gives you an opinionated, repeatable approach, tooling, and workflows
optimized for shipping prod-ready extensions to all modern browsers
Go from prototype to profit faster!
It's a "framework" as in, a way of doing things. A defined, repeatable approach, tooling, architecture and workflows to help you accomplish a specific thing:
ship production grade browser extensions fast, reliably and continuously.
If you can build a website, you can build a browser extension (its just HTML, CSS and JS). Eliminate false dichotomies and analysis paralysis. Just bring your preferred frontend meta-framework (or vanilla JavaScript / TypeScript), add Vite, sprinkle in Bedframe and you're good to go.
Bedframe is a Vite-based SDK (CLI, fully-typed functions, CI/CD workflows, and optional configurations) that let you get the most out of Vite's versatile, modern development tooling. Get up and running on new browser extensions or use it to go cross-browsers with your existing extensions.
There are no new DSLs to learn. Just good ol' web development (with a lil sauce on the side). git add > git commit > git push and let the workflows automatically version, zip, upload and publish your extensions. The concepts are as simple as 1, 2, 3; comfortable like getting in B.E.D.
Chromium browsers, like Arc, Brave, Chrome, Edge, Opera, Webkit browsers like Safari and Gecko browsers like Firefox.
Bedframe lets you build from one codebase, share as much as possible and only extend manifest features for browsers that have unique keys in their manifest.json.
manifest.json file.
There are only 3 required fields. The rest is determined by your creativity and product vision.
Define your extension features once and go cross-browser with minor adjustments.
Vite as your sturdy foundation.
Enjoy next-generation frontend tooling that lets you stay nimble; use React or Vue or Solid or Svelte or any of the ~8 supported meta-frameworks (including Vanilla JavaScript and TypeScript).
Productionizing your codebase means making it robust, reliable, and scalable. It's about preparing your project for real-world deployment, ensuring it can handle end-users and seamlessly interact with other systems and services.