locally saved markdown notes in a new tab or popup ๐
| ๐ dark mode | ๐งโ๐ป code block themes | ๐ popup notes |
|---|---|---|
![]() |
![]() |
![]() |
Warning
Uninstalling and reinstalling the extension will erase all saved notes - please back them up before attempting to switch between the chrome store and dev extensions!
Available on the chrome web store here.
Note: The chrome web store version will likely be a few versions behind. If you're looking to keep up to date with the latest version of docket, I recommend cloning this repo and simply using it as an extension in dev mode :D
- Clone or download this repo and unzip (if you downloaded a zip file).
- Go to
chrome://extensions/or wherever you manage extensions. - Enable developer mode and click
load unpacked. - Select the (unzipped) root folder.
Done!
npm installnpm run build
- Marked.js for markdown parsing
- highlight.js for code syntax highlighting
- DOMPurify for HTML sanitizing
- manifest holds extension metadata
- icons holds extension icon
- src holds typescript source code
- dist holds all html, css, compiled js, and bundled modules (using rspack)
There's a lot of improvements and features I'd like to add, and feature requests are always welcome.
Here's a few things that I have in mind:
- Large Overhauls
- Cross device sync!
- A work in progress - I'm currently designing the backend and database setup necessary to support cross device syncing
- Support live or concurrent editing by implementing a CRDT or OT system
- I would love to attempt this; but I think it's more important I get basic manual sync working first!
- Cross device sync!
- Editor Features
- Keyboard shortcuts for common markdown actions (bold, italic, etc.)
- (Kind of - still working on import and BULK export) Import/export markdown files
- This might not be possible due to restrictions on file access in chrome extensions
- Also, just paste the markdown into the editor, dummy ๐ฅฑ
- Autosave
- Query chrome storage when a user refocuses the tab or extension to prevent overwriting changes when multiple instances of docket are open
- Optimizations/QoL
- Reorder notes
- Lazy render markdown (only rerender when the markdown changes)
- This is a bit tricky because I would need a way to sourcemap the markdown to the rendered
html, which is nontrivial.
- This is a bit tricky because I would need a way to sourcemap the markdown to the rendered
- Scroll sync between the markdown and the rendered
html- Again, this probably requires sourcemapping the markdown to the rendered
html.
- Again, this probably requires sourcemapping the markdown to the rendered


