CHROME EXTENSION TEMPLATE
Ship your browser extension in days.
MV3, content scripts, factory telemetry wired. Focus on what makes your extension unique.
CHROME EXTENSION TEMPLATE
Everything the manifest requires, none of the boilerplate.
Four production-ready surfaces, the same soft-factory design language as the landing.
- 01
MV3 native
manifest_version 3 service worker, declarative content scripts, and a proper options page. No MV2 leftovers, no polyfills.
- 02
Content scripts wired
Highlights a configurable selector, reports counts back to the popup, reacts to live selector changes from storage.
- 03
factory-ingest built-in
On-install register, button clicks, context menu and message events all stream to the soft-factory dashboard. Swap the URL to point at your own.
- 04
Polished popup
360px popup with Main / History / Settings panels, theme toggle, language switch, dark mode default, Geist + Geist Mono.
CHROME EXTENSION TEMPLATE
The popup is a real React app.
Three panels, hooks, typed chrome.storage, factory track helper. Drop in your own actions.
- Preact for a 17kb gzipped bundle.
- chrome.storage typed with our ambient declarations.
- factory.track helper for telemetry.
// extension/popup/popup.tsx
import { render } from "preact";
import { useEffect, useState } from "preact/hooks";
import { s } from "./popup-styles";
function Popup() {
const [count, setCount] = useState(0);
useEffect(() => {
chrome.runtime.sendMessage(
{ type: "factory/getCount" },
(res) => res && setCount(res.count),
);
}, []);
return (
<div style={s.shell}>
<header style={s.header}>
<span style={s.brandMark}>SF</span>
<span>Soft-factory</span>
</header>
<div style={s.card}>
<div style={s.statLabel}>Today's actions</div>
<div style={s.statValue}>{count}</div>
<button
style={s.primaryBtn}
onClick={() => {
chrome.runtime.sendMessage({
type: "factory/track",
event: "extension_primary_action",
});
setCount((c) => c + 1);
}}
>
Run highlight on this page
</button>
</div>
</div>
);
}
render(<Popup />, document.getElementById("root")!);
CHROME EXTENSION TEMPLATE
The template is free. Support packages are not.
Buy back time if you need a hand shipping.
DIY
- Full extension source under MIT
- Marketing landing included
- factory-ingest wired to the public dashboard
- Community support via GitHub issues
Pair
popular- Everything in DIY
- Two 90-minute pairing calls
- Help with manifest review + Chrome Web Store submission
- Email follow-up for 30 days
Done-for-you
- Everything in Pair
- Custom branding across popup and landing
- Stripe-backed license key flow
- Hand-off docs and a recorded walkthrough
Questions worth answering up front.
- Chrome deprecated V2 in 2024 for new submissions. This template targets MV3 only and uses the service worker model throughout.
Skip the boilerplate.
Clone the template, change the name, ship. That's the whole loop.