Awesome Open Source
Awesome Open Source

latest tag license open issues chat in discussions follow on twitter

A hackable, offline-first markdown editor for notes, code snippets, and writing that runs entirely in-browser.



Dark and Light Themes

Dark theme by default. Light theme if you want it. 😎

Inline Markdown Rendering and Automatic Syntax Highlighting

All Markdown formatting is rendered in place. This eliminates the need for a preview pane while keeping your document in plain text. Feel free to copy and paste your Markdown into or out of this editor! Code blocks are automatically highlighted based on the tagged language.

Client-Side Encryption

Uses a hybrid cryptosystem approach to reap the benefits of both public-key and symmetric encryption.

Keyboard Friendly and Searchable

Keyboard shortcuts are available for many actions. Search documents with plain text or regex.

Context Switching

Focusing on #work or #play? Apply a global filter to only see the documents that are relevant in a given moment.

Offline First and Mobile First (Responsive)

No account, server, or internet connectivity necessary (after first load). The entire app is cached in the browser using Service Workers. Documents are stored in IndexedDB. All features of the app are built for mobile and desktop. The design changes responsively based on available screen real estate.

Modern Technologies

Built with Vue, Vuex, and VueRouter. Progressive Web Apps are accessible on all platforms and installable on many.

Tag-based Organization and Networked Thought

Add as many hashtags to your documents as you like. Build a network of information and explore your knowledgebase just as you would explore your own memories.


Watch a quick intro on YouTube (1m 39s)

To try out the sandboxed app (no accounts or syncing), check out


As simple as it gets.

# install dependencies
yarn install

Local Development

We can run it in development mode.

# binds to localhost:8888
yarn serve_dev

We can also run it in production mode.

Note: Offline functionality is only available in production mode due to lack of support in the Vue PWA plugin.

# binds to localhost:8889
yarn serve_prod

Compile to Static Assets

Create the production build.

# compiles at ./dist
yarn build_prod

The static assets will be available in the dist directory.


Logo by Zagg Studios


Your support is appreciated. ♥️

Provide Feedback

Your feedback is immensely important for building octo into an app that we all love. Consider starting a discussion if you have a question or just want to chat about ideas!

Open a Pull Request

If you feel comfortable tackling an existing issue, please consider opening a Pull Request! I am happy to introduce you to the codebase and work with you to get it merged!


Donations help support the development of octo (this open source project) and the hosting of

Accounts on include syncing and persistence through Firebase. Accounts are currently free, and your financial support directly impacts how long we can keep it that way.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (69,571
vue (4,186
vuejs (1,099
pwa (338
markdown-editor (86
offline-first (67