A Chrome browser extension that adds a floating notepad to any website. Your notes persist per domain — write a note on GitHub, another on Stack Overflow, and they'll be there when you come back.
- Floating notepad — Draggable widget that lives on top of any page
- Per-domain persistence — Notes are saved separately for each website
- Auto-save — Notes save automatically as you type (400ms debounce)
- Draggable — Move the notepad anywhere on screen
- Minimize/Hide — Collapse or dismiss the notepad when not needed
- Popup dashboard — Quick overview of your notes from the extension icon
- Clear per-site — Delete notes for individual domains
- Zero dependencies — Pure vanilla JS, no frameworks or build tools
- Privacy-first — All data stays in your browser's local storage. No accounts, no servers, no tracking.
-
Clone or download this repository
git clone https://github.com/yourname/quick-notes-extension.git
-
Open Chrome and navigate to
chrome://extensions/ -
Enable Developer mode (toggle in top-right corner)
-
Click Load unpacked and select the
quick-notes-extensionfolder -
The Quick Notes icon appears in your toolbar — you're done!
-
Navigate to any website (e.g.,
github.com) -
Click the Quick Notes icon in the toolbar to open the popup, or use the floating notepad directly
-
Type your note — it saves automatically
-
Drag the notepad by its header to reposition it
-
Minimize or hide the notepad with the header buttons
-
Your note will be waiting for you next time you visit that domain
- Notes are stored in
chrome.storage.local— per-domain keys - The floating notepad is injected via a content script on every page
- Communication between popup and content script uses Chrome messaging API
- No network requests are made — everything runs locally
Notes are stored in Chrome's local extension storage:
{
"qn_notes": {
"github.com": "TODO: Review PR #42",
"stackoverflow.com": "CSS grid centering trick...",
"docs.google.com": "Meeting notes from standup"
}
}
| Permission | Reason |
|---|---|
storage |
Save notes locally in the browser |
scripting |
Inject notepad on-demand from popup |
<all_urls> |
Inject the notepad on any website |
No data leaves your browser. No analytics, no servers, no tracking.
This extension uses no build tools. Edit files directly and reload the extension:
- Make changes to any
.js,.css, or.htmlfile - Go to
chrome://extensions/ - Click the refresh icon on the Quick Notes card
- Reload any open tabs
quick-notes-extension/
├── manifest.json # Extension manifest (V3)
├── background.js # Service worker
├── content.js # Content script (floating notepad)
├── content.css # Notepad styles
├── popup.html # Popup UI
├── popup.js # Popup logic
├── popup.css # Popup styles
├── icons/ # Extension icons
│ ├── icon16.png
│ ├── icon48.png
│ └── icon128.png
├── LICENSE
└── README.md
MIT License — see LICENSE for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request