Skip to content
C.W.K.
Stream
← C.W.K. Quests
🧩

Chrome Extensions Quest

Updated: 2026-08-07

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 the shipping Pippa ChromeEmbed v0.2.1, including its shared host registry.

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

Level 0Extension Curious
0 XP0/56 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 beside cwkPippa's shipping Pippa ChromeEmbed v0.2.1. Ten anchors walk the manifest, router, page sensor, three display modes, iframe bridge, payload ownership, refactor boundary, and the shared host registry. Nine tracks. Roughly fifty-six lessons. About nineteen hours. By the end, ClipDeck works and the household embed shape is 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.2.1

    0/10 lessons

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

    Track 9 walks the current Pippa ChromeEmbed v0.2.1 end to end: exact manifest hosts, the service-worker router, page capture, the popup doorway, the cwkPippa iframe bridge, tab-scoped identity, assisted insertion, and three display modes. It maps those production boundaries back to ClipDeck without turning ChromeEmbed into a second Pippa.

    Pippa ChromeEmbed docked on the right edge of a Chrome window: the host page — a journal entry on Dad's own site, with its illustration and a live post stream beside it — fills the main viewport, while the panel reports the page it is looking at, quotes its title and URL back, and names the model and token counts under the reply.
    The embed reads the page it is docked to: same browser, same tab, one panel that can answer about what is already on screen.
    Lesson list (10)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.