Introducing Snip, The Notes App with a focus on privacy

Hello dear ProseMirror community,

we’re excited to present to you a piece of software we’ve been working on for quite a while. It is finally ready to be released to the world, and we’ll launch it where it all started: the ProseMirror user board!

We implemented a Note Taking App called Snip. While the competition in the area of Note Taking Apps is strong, we do believe we’ve come up with a handful of small but crucial twists.

Our landing page can be found here:

On the surface, Snip is just another Note Taking App. You can create rich text notes, organise them in folders, perform full-text search. But the idea behind it is much bolder. Let us point out a few key features:

Offline First, Privacy First:

Documents (or, as we call them, snippets) are stored offline. You can choose a folder on your local disk to store your snippets. That way, you can choose how to back up your data - be it an external hard drive, a NAS, a cloud provider of your choice, etc.

There are different kinds of Snippets, and they are pluginized:

Not only can you use Snip to write rich text notes - you can also use it as a code snippet editor. Other snippet types we support are Todo Lists and Sticky notes, but that is just the beginning: we plan to provide many more snippet types in the future. A few examples:

  • Spreadsheet snippet: a snippet which holds a spreadsheet
  • Color Palette snippet: a snippet which allows you to manage a color palette
  • Youtube snippet: a snippet which embeds a youtube video, with a note section allowing you to take notes with time marks
  • Protocol snippet: a snippet which allows you to add timestamped entries
  • etc.

We’re planning to open up the Plugin API to allow for 3rd party developers to provide their own snippet types. Anything that can be stored in a JSON structure is a snippet.

Folders are not just folders:

We implemented a special system which combines the concepts of folders and tags into one: E.g. using a tag with a slash (a / nested / tag) will be displayed accordingly as a folder hierarchy.

That way it becomes possible to organise your snippets both hierarchically and across multiple contexts.


We provide a custom reminder language which allows to set up Reminders. For now, Reminders will be triggered locally when the Application is running, but we will provide Reminders via Push Events in the future through the Snip Cloud.


Dashboards are an alternative way to visualise Snippets. You can create custom layouts to best fit your needs.

Quick Access:

Right now, Snip is tailor-made for developers, although we want it to become a tool used in other areas. A really useful feature we provide is called “Quick Access”: with it, you can quickly access code snippets and links you have saved. You search for them, then hit enter to copy the contents to your clipboard.

We proudly use ProseMirror for the rich text editing experience. We’re convinced it’s the best library available for the job and have been impressed with its accuracy and the incredibly well designed API. We use CodeMirror for code snippets and are of course planning to migrate to v6 soon.

We’ve built Snip with great passion and hope you’ll give it a try. We’re posting this in the ProseMirror user board exclusively for a start and are grateful for any feedback we can get. Thank you in advance!


Neat! Thanks for posting, and good luck with the launch.

Interesting. This is also how it is done in the next Fidus Writer release. One odd thing about doing folders that way though is the creation of empty folders. The way we are doing it in the development version, the user can create an empty folder, but the folder disappears when the user navigates up without putting a file into the folder. We have not yet tested it on users, but I’m guessing we will have to change that so that empty folders stay around even if not used. Have you received any feedback on using this approach from your users?

(Unfortunately, I couldn’t test your app on Ubuntu. I’ve filed a bug report.)

We have not received feedback about that yet. In our case, the behaviour is quite simple: if a folder becomes empty / if a tag doesn’t reference any snippets, it simply stays there until the user explicitly deletes it.