Epos is an opinionated engine for building Chromium browser extensions with React. While frameworks like WXT and Plasmo prioritize flexibility, Epos focuses on a zero-config experience with powerful features that work out of the box. At a high level, Epos gives you: - A cross-context messaging system - Shared state with persistence and sync - Storage for files and data - Extension APIs available in any context - Automatic script injection + Shadow DOM - A simpler setup through epos.json
👨💻 I've been building browser extensions full-time for the past 5 years. Not small demo projects, but large, data-heavy products with complex UI, lots of features, real users, and revenue.
Over that time I kept running into the same problems in extension development, so I built internal tools to solve them. During the past year, I started combining those tools into one fully preconfigured engine, and today I want to share it with you.
⚡ Epos is not a framework or a boilerplate. It is a browser extension that connects to your local folder, runs your code directly in the browser, and exports a production-ready bundle when you are ready to ship.
The goal is to remove as many annoying extension-specific chores as possible so you can focus on building the actual product. There are several features that make Epos stand out, but instead of listing everything here, I want to highlight two of my favorites:
🔄 Unified Messaging
It provides a simple API for cross-context communication. You just call `.on()` and `.send()` to register and send events, and Epos handles the routing automatically. It requires no configuration and works in every extension context, even on regular web pages.
📚 Shared State
Epos provides a shared state object that you can work with like a regular JavaScript object, while under the hood it is automatically synced across all contexts and persisted to IndexedDB. Thinking about state as a normal object makes the whole application much easier to reason about. You just manage the data and let Epos handle the hard parts.
Report
No reviews yetBe the first to leave a review for [epos] Web Extension Engine
HARPA AI
Hey everyone,
👨💻 I've been building browser extensions full-time for the past 5 years. Not small demo projects, but large, data-heavy products with complex UI, lots of features, real users, and revenue.
Over that time I kept running into the same problems in extension development, so I built internal tools to solve them. During the past year, I started combining those tools into one fully preconfigured engine, and today I want to share it with you.
⚡ Epos is not a framework or a boilerplate. It is a browser extension that connects to your local folder, runs your code directly in the browser, and exports a production-ready bundle when you are ready to ship.
The goal is to remove as many annoying extension-specific chores as possible so you can focus on building the actual product. There are several features that make Epos stand out, but instead of listing everything here, I want to highlight two of my favorites:
🔄 Unified Messaging
It provides a simple API for cross-context communication. You just call `.on()` and `.send()` to register and send events, and Epos handles the routing automatically. It requires no configuration and works in every extension context, even on regular web pages.
📚 Shared State
Epos provides a shared state object that you can work with like a regular JavaScript object, while under the hood it is automatically synced across all contexts and persisted to IndexedDB. Thinking about state as a normal object makes the whole application much easier to reason about. You just manage the data and let Epos handle the hard parts.