Stuck for an idea?
Pick one from the menu of 30 below. If nothing clicks, scroll down and use a brainstorm prompt to think out loud with an LLM until something does.
§ 30 starting points
Each is one sentence on purpose — specific enough to start, vague enough to make your own.
Productivity
- Tab Inventory — snapshot all open tabs to a saved list; restore a session later.
- Focus Mute — one click hides YouTube comments, recommendations, and the autoplay sidebar.
- Doom-Scroll Timer — track minutes spent on chosen sites today; warn at a daily limit.
- Reading Queue — save articles to a popup list with one click; mark read; clear weekly.
- Pomodoro Overlay — a 25-minute countdown floating over any tab.
Reading & writing
- Reading Level — show the Lexile or Flesch-Kincaid score of the current article.
- Article TLDR — generate a three-bullet summary of the page via an LLM API.
- Citation Converter — toggle a selected reference between APA, MLA, and Chicago.
- Passive Voice Highlighter — mark passive-voice sentences in any article.
- Selection Stats — highlight text and see word count, reading time, and avg. sentence length.
Research & source evaluation
- Publication Date Reveal — surface the article's actual publish date when it's hidden.
- Author Lookup — show a quick panel with the author's bio and other recent work.
- Source Triangulator — compare claims in the article against three other sources.
- Loaded Language Detector — flag emotionally-charged words for media literacy lessons.
- Quote Origin — highlight a quoted passage and search for its original source.
Accessibility
- Reader-Mode Plus — strip the page to clean text in a dyslexia-friendly font.
- Contrast Booster — cycle through high-contrast color schemes with one click.
- Read Aloud — have the browser speak any selected text using the Web Speech API.
- Big-Cursor for Screenshare — enlarge the cursor and add a click ripple for projection.
Privacy & student safety
- Tracker Counter — badge shows how many third-party trackers loaded on the current page.
- Permission Inspector — reveal what permissions this page has (camera, mic, location).
- Data Flow Map — visualize what domains the page sent data to.
- Form Domain Warning — alert before submitting a form to a third-party domain.
Classroom & teaching
- Smartboard Strip — one click removes ads, sidebars, and comments for projection.
- LMS Paywall Flag — mark links in your LMS that lead behind paywalls.
- Discussion Generator — generate five discussion questions from the current article.
- Anonymized Browser — hide history, bookmarks, and profile name during screenshare.
- Citation Capture — one-click save a formatted citation with URL and access date.
§ Brainstorm with AI
Three prompts to get unstuck. Copy any of them and paste into Claude or ChatGPT — fill in the placeholders, and it'll pitch you ideas.
I'm a [YOUR ROLE — e.g., "middle-school English teacher"] who uses Chrome about [N] hours a day. Here are three small frustrations I have with how websites work for me: 1. [frustration #1] 2. [frustration #2] 3. [frustration #3] Suggest five Chrome extension ideas — one short paragraph each — that would solve any of these. Constraints: Manifest V3 APIs only, no external services or paid APIs. Rank them from easiest to hardest to build.
I keep doing this manual task in my browser every day or week: [Describe the task — be specific. Example: "I open three news sites, scan headlines, copy the ones I want to assign into a Google Doc with the date, source, and a brief note about why I'd assign it."] Could a Chrome extension automate or streamline this? Before you suggest a solution, ask me three clarifying questions about what makes the current process annoying or where the friction really is.
Generate 10 "I wish this webpage would tell me X" wishes that [DESCRIBE YOURSELF — e.g., "a high-school history teacher researching primary sources"] would realistically have while reading articles online. For each wish, sketch a one-sentence Chrome extension that would deliver it. Mark the three you'd build first if you were me, and explain why those three.
A tip when the LLM responds with five ideas you don't love: pick the closest one and reply "go deeper on #3 — what would it take to build, and what would it look like in 30 seconds of use?" The good idea usually shows up on the second turn.
Take this with you.
Bookmark this page. Everything you need to keep going is here.
§ Prompts you can copy
Build a minimal Chrome extension using Manifest V3 that [DESCRIBE WHAT IT DOES]. The extension should: • [behavior 1] • [behavior 2] • [behavior 3] Output: 1. Complete file structure (folder + filenames). 2. Full code for every file, in separate code blocks. 3. Note next to each file explaining where it goes. 4. Exact permissions needed in manifest.json, and why. 5. Step-by-step instructions to load it in Chrome. Use only Manifest V3 APIs. Do not reference deprecated APIs. Keep external dependencies to zero.
My extension is throwing this error when I [WHAT YOU DID]: [PASTE THE EXACT CONSOLE ERROR] Here is the relevant file: [PASTE THE FILE] Don't rewrite everything. Identify the specific cause and give me a minimal patch — show me only the lines that need to change and where in the file they go.
Review this manifest.json and tell me: 1. Which permissions are actually needed for the listed features. 2. Which permissions are over-broad and could be tightened. 3. Whether host_permissions could be replaced with activeTab. 4. Any privacy or security concerns you'd raise in a code review. [PASTE manifest.json]
§ Official documentation
Chrome Extensions: Get Started
Google's official walkthrough — manifest, structure, permissions, the whole vocabulary.
developer.chrome.com →Manifest V3 Reference
The full schema. Bookmark this — you'll come back to it every time the AI invents a property that doesn't exist.
manifest reference →Official Sample Extensions
Real, working, MV3-compliant extensions you can study and steal patterns from. Cleaner than most AI output.
github / samples →Chrome Web Store Dashboard
Where you submit your extension when it's ready for the world. The $5 fee lives here.
developer dashboard →Web Store Program Policies
Read this before publishing. The rules around permissions, privacy, and disclosure are stricter than you think.
program policies →Debug Extensions
How to inspect the popup, the service worker, and content scripts. Different DevTools for each — you'll need this.
debugging guide →§ Glossary
- manifest.json
- The extension's identity card. Declares its name, version, permissions, and which files do what. Without a valid one, Chrome won't load the extension.
- Manifest V3
- The current schema for that identity card. Manifest V2 was retired in 2024. If your AI generates V2, push back and ask for V3.
- service worker
- A background script that runs without a UI, handling events that aren't tied to a specific page. Sleeps when idle.
- content script
- JavaScript that gets injected into the actual web pages you visit. Reads and modifies the DOM. This is where most "do something to this page" features live.
- popup
- The little window that appears when you click your extension's toolbar icon. Just HTML, CSS, and JS — like a tiny webpage.
- permissions
- Powers your extension is asking for — reading active tabs, accessing storage, talking to specific domains. Granted at install time. Always the smallest set possible.
- activeTab
- A narrow permission that gives temporary access to the current tab only when the user clicks your extension. Almost always preferable to broad host permissions.
- load unpacked
- Loading an extension from a folder on your computer instead of from the Web Store. Requires Developer Mode. How you'll test everything you build today.
Troubleshooting.
The most common ways your extension will refuse to load — and how to fix each.
"Manifest file is missing or unreadable"
manifest.json at its top level — not one folder up, not one folder down. Open the folder in Finder/Explorer and confirm manifest.json is right there before clicking Load Unpacked.
"Manifest version 2 is deprecated"
manifest.json and look for "manifest_version": 2. Send the file back to the chatbot and say: "Convert this to Manifest V3. Replace background.scripts with a service worker, replace browser_action with action, and update any deprecated APIs."
The extension loads but nothing happens when I click it
chrome://extensions, find your extension, click the "Errors" button. Then right-click the extension icon → Inspect popup, and check the Console there. The error is almost always a typo'd function name or a missing permission.
"Cannot read property 'X' of undefined" in the popup
The content script doesn't run on the page I want
matches array in your manifest.json. URL patterns are picky — https://example.com/* matches every page on that site, but https://example.com matches only the homepage. After editing the manifest, click the reload icon on your extension card before testing.
I edited a file but nothing changed in Chrome
chrome://extensions and click the circular reload icon on your extension's card. Editing files doesn't auto-reload the extension — you have to tell Chrome to pick up the changes.
"Service worker registration failed" or "Status code 15"
background.js or the file path in manifest.json is wrong. Open chrome://extensions, click "Errors" on your card — the exact line number is there. Paste it back into the chatbot.
I want to undo and start over
chrome://extensions (it doesn't delete your files). Delete the folder if you want a clean slate. Open a new chat with the LLM — long conversations accumulate confusion. Start from the template prompt above.
About this site.
This whole thing is the workshop's premise, demonstrated.
Every word of this site — the structure, the typography, the keyboard navigation, the copy buttons, the troubleshooting accordion — was produced by describing what I wanted to a chatbot and iterating. No template. No framework. No build step.
The same approach you'll use today to build a Chrome extension built this. That's the point.
palette warm-black, paper-cream, signal orange, electric chartreuse
stack one HTML file, no dependencies, no build step
presentation mode press F from any section