Soft-factory

CHROME EXTENSION TEMPLATE

Ship your browser extension in days.

MV3, content scripts, factory telemetry wired. Focus on what makes your extension unique.

chrome://extensionsdev mode
Soft-factory
v0.1.0
loaded
uBlock Origin
v1.55.0
loaded
React DevTools
v5.0.0
loaded

Telemetry and tooling you'd wire yourself, ready to go.

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.tsx37 lines
// 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

$0/ forever
  • Full extension source under MIT
  • Marketing landing included
  • factory-ingest wired to the public dashboard
  • Community support via GitHub issues
Clone the template

Pair

popular
$490/ one-time
  • Everything in DIY
  • Two 90-minute pairing calls
  • Help with manifest review + Chrome Web Store submission
  • Email follow-up for 30 days
Book a pairing session

Done-for-you

$2,400/ starts at
  • Everything in Pair
  • Custom branding across popup and landing
  • Stripe-backed license key flow
  • Hand-off docs and a recorded walkthrough
Request a quote

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.