C.W.K.
Stream
← C.W.K. Quests
🧩

Chrome Extensions Quest

Updated: 2026-05-16

Build a real clipboard utility, then watch the same anchors expand into a household embed

Learn Chrome extensions hands-on — every track adds one piece to ClipDeck, a working selected-text clipboard you'll actually use. The final track lays your ClipDeck next to Pippa Chrome Embed v0.1 anchor-by-anchor.

9 tracks · 54 lessons · ~19h · difficulty: intermediate-to-advanced

Level 0Extension Curious
0 XP0/54 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
Chrome extensions are a hands-on domain. Reading manifest tables and API references will not teach you the shape — building will. This quest starts with a hello-world MV3 manifest and ends with ClipDeck: a real Chrome extension that captures selected text from any page into a CRUD clipboard, all stored in chrome.storage and surfaced through a side panel. Each of the first eight tracks adds one piece — service worker, content script, side panel, popup, permissions, DOM tools, packaging. The ninth track lays your finished ClipDeck side-by-side with cwkPippa's own Pippa Chrome Embed v0.1, the canonical first child of the PippaEmbed framework. Seven anchors, one mini reflection at a time. Nine tracks. Roughly fifty-five lessons. Nineteen hours. The quest is built so a future Pippa instance — or you — can finish it in one terminal session, ClipDeck shipping by the end, and the household embed shape visible from the other side.

Tracks

  1. 01📜MV3 Foundations

    0/6 lessons

    Manifest V3 — the new rules of the Chrome extension game

    Chrome extensions live or die by manifest.json. Track 1 cracks open the MV3 era, walks the install lifecycle, and ships ClipDeck's hello-world skeleton — a minimal manifest plus a popup that surfaces the current page title.

    Lesson list (6)Quiz · 5 questions
  2. 02⚙️The Service Worker

    0/6 lessons

    MV3's background context — event-driven, idle-evicted, the household memory layer

    Track 2 wires up ClipDeck's background.js. chrome.runtime.onInstalled for first-install setup, chrome.tabs.onUpdated listening for visited URLs, chrome.storage.local as the state layer that survives worker eviction. By the end ClipDeck counts visited URLs across worker restarts and the popup shows the running total — the R in CRUD warming up.

    Lesson list (6)Quiz · 5 questions
  3. 03Content Scripts

    0/6 lessons

    The hand inside the page — DOM access, isolated world, host bridges

    Track 3 sends ClipDeck into the host page. Content scripts run inside the user's tab with full DOM access but in an isolated JavaScript world — no shared globals with the page's own scripts. By the end ClipDeck reads selected text from the live page and ships it through the message channel to the service worker for storage. CRUD-C lands.

    Lesson list (6)Quiz · 5 questions
  4. 04📑The Side Panel

    0/6 lessons

    Chrome 114+'s persistent dock — the popup's bigger, slower sibling

    Track 4 graduates ClipDeck from a tooltip into a persistent dock. The side panel runs alongside the user's tab, survives clicks elsewhere, and gives clips room to breathe. By the end the side panel shows the full clip list with timestamps and source URLs, the popup is reduced to a quick-action surface, and CRUD-R is fully landed.

    Lesson list (6)Quiz · 5 questions
  5. 05🎚️The Action & Popup

    0/5 lessons

    Toolbar icon, badge, popup, context menu — the user's everyday touch surface

    Track 5 turns ClipDeck's toolbar icon from a hello-world button into a real action surface. Per-tab badge counts, dynamic popup contents, a right-click 'Save to ClipDeck' context menu, optional omnibox shortcuts, and the v1 mode toggle (capture on/off per tab). Most users will touch the popup ten times more often than the side panel — this track makes those ten taps count.

    Lesson list (5)Quiz · 5 questions
  6. 06🔐Permissions

    0/5 lessons

    The trust contract — what you ask for, how you ask, how the user says no

    Track 6 takes ClipDeck's manifest seriously. The MV3 permission model splits into API permissions (storage, tabs, scripting), host permissions (which sites you may touch), and optional permissions (asked for at runtime, not install). The Chrome Web Store rejects extensions that overreach; users uninstall ones that prompt too aggressively. This track shows you how to ship a manifest that gets the job done without scaring anybody — and how to design for the user who says 'no.'

    Lesson list (5)Quiz · 5 questions
  7. 07🛠️DOM Tools

    0/7 lessons

    The toolkit for working with messy real-world pages — and the U+D of CRUD

    Track 7 broadens ClipDeck's DOM toolbox: Mozilla Readability for article extraction, Selection/Range deep dive, screenshot clipping via chrome.tabs.captureVisibleTab, the React-friendly input-fill trick, and the preview-and-confirm pattern for any action that touches a real page. The track closes with CRUD-U and CRUD-D inside the side panel — inline edit, inline delete, undo. By the end ClipDeck handles framework-heavy sites and supports the full lifecycle of saved clips.

    Lesson list (7)Quiz · 5 questions
  8. 08📦Packaging

    0/5 lessons

    Icons, build, publish — turning the working folder into something other people can install

    Track 8 ships ClipDeck. Icons at the four required sizes, the unpacked-vs-packed split, Chrome Web Store submission with the privacy policy and store listing, private-fleet distribution for org-only extensions, and the bundler setup that lets you grow past one-file content scripts. By the end ClipDeck is real software with a public URL — or a private one — that another person can click Install on.

    Lesson list (5)Quiz · 5 questions
  9. 09🧪Case Study — Pippa ChromeEmbed v0.1

    0/8 lessons

    A real working extension, file by file — everything the first eight tracks taught, applied

    Track 9 walks a real shipped extension end to end: the Pippa ChromeEmbed v0.1 prototype that puts the cwkPippa household onto every page via a docked iframe. Each lesson anchors on one file or one moment of the prototype, drawing the parallel back to the ClipDeck patterns. By the end you have a working mental model of how a production Chrome extension actually composes — and the discipline to know when v0.1 is enough and when it isn't.

    Pippa ChromeEmbed v0.1 — Pippa's chat panel docked on the right edge of a Chrome window, with the host page visible in the main viewport
    Pippa ChromeEmbed v0.1
    Lesson list (8)Quiz · 5 questions
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.