Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.

Project structure · More

Chrome extension project structure

Opens with credits

A Manifest V3 Chrome extension that saves highlights from any page into a side panel, built with WXT, React and TypeScript. WXT reads your entrypoints folder and writes the manifest for you, so the layout is one folder per thing Chrome loads (service worker, content script, popup, side panel, options) with shared code in utils. For students who have loaded an unpacked extension once and want to ship a real one to the Chrome Web Store.

Curated by Tauseef FayyazIntermediate137 files and foldersWXT 0.21, Manifest V3, React 19.3Checked October 2026
Explore the filesPick any file to see what it is, why it exists and when you add it.

How it grows

Each stage opens the explorer there

  1. 1Day 1What the scaffold and your first hour give you29 files and folders
  2. 2GrowingWhat a real app with features and tests adds+50 files and folders
  3. ProductionWhat running it for real users adds+33 files and foldersOpens with credits
  4. ExpertWhat a team needs to keep it healthy for years+25 files and foldersOpens with credits

How it is organised

  • One folder or file per entrypoint in `entrypoints`: WXT generates manifest.json from them, so the manifest never drifts from the code.
  • The service worker can stop at any time. Keep state in `chrome.storage`, timers in `chrome.alarms`, and register every listener at the top level.
  • Each part runs in its own context (worker, content script, pages). They talk only through typed messages and storage, defined once in `utils`.
  • Content scripts run on other people's websites: keep them small, mount UI in a shadow root, never inject page text as HTML.
  • Ask for the fewest permissions that work. Prefer `activeTab` and optional host permissions to `<all_urls>`, and write down why each one exists.
  • Business logic lives in plain functions in `utils`, tested with Vitest and WXT's fake browser. Playwright checks the real built extension in Chromium.
  • Every store upload comes from CI with a version higher than the last one; the manifest version is the package.json version.

At the top of the project

Open one in the explorer for the full story

Learn more on Sefism

Roadmaps, cheat sheets and projects that go with Chrome extension.

See 10 more
Checked against 18 official sources, October 2026. If something has changed, the docs win.Show sources

Picked from the other libraries by shared topics.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.

  • 1:1 Mentorship
  • Fresh Graduate Mentorship
  • Career Guidance

Brand deals, promos and partnerships: tauseeffayyaz@gmail.com