A couple weeks ago Knightwise told us about a fantastic open source, cross-platform notebook app called Joplin. After he told us about it, I raved about it as well.
This week I asked Bart whether he thought it might be the right app to replace Evernote for him he said he was waiting for me to tell him more about it, including information on how it organizes notes. When he said that, I realized I had more work to do here. The description of Joplin was from the 30,000-foot view. We talked about how it was open source, how cool it is you can sync it through any server you want including one of your own, and how it runs on every platform including the command line. But we didn’t describe it. Let’s rectify that, shall we?
Interface
Joplin has two distinctly different interfaces. The desktop version (which is built on Electron) is very full-featured. The mobile version is more limited but is still quite capable. I think I mentioned last time that Joplin doesn’t take full advantage of the huge screen on the iPad Pro, which is kind of a shame. Because this is an open source project, you can make suggestions in the forum for Joplin, which I actually did on this very subject.
Desktop
On the desktop, you have a 3 or 4 column view, depending on your settings. The left column shows your notebooks, represented by little folder icons. You can add subfolders, and they’re shown with a downward chevron, and the folders show the number of items in each folder.
When you select a notebook, the second column will show the notes and to-do’s in that notebook. The last column is where you actually write your notes. Joplin uses a version of Markdown, which allows you to create beautiful headings, italics, bold, lists, and more. It’s super easy to learn. Bart tried for years to convince me that Markdown is awesome, and while I’m still annoyed by some of its limitations, I have to admit it’s pretty cool. Joplin is more than a Markdown editor though, it’s actually a rich text editor because you can mix and match Markdown with embedded images and other document formats.
I don’t want to do a full Markdown lesson, but for context let me give just a few examples of how Markdown formatting works. When you’re writing in Markdown you use asterisks for bulleted lists, underscores on either side of a word to make it italics, and hash symbols to make headings. This makes the Markdown pretty easy to read (unlike writing in HTML), and still, the rendered version is beautiful.
I said that Joplin has 3 or 4 columns. The option of the 4th column is whether you want to view just your Markdown, just your rendered view, or whether you’d like to see both side-by-side. If you want a more focused writing experience, you can toggle off the sidebar and the notes viewer giving you just your writing area with just the Markdown or the Markdown and the rendered view.
If you’re not a Markdown wizard, the desktop app gives you some standard icons to format as bold and italics, add links, code, bullets, checkboxes, headings and more.
If you have an editor you really like, at any time you can right click on a note and open it in that favorite editor. When you close the file in the external editor (without saving), the note is updated in Joplin. I thought that was a pretty cool feature.
If you like the Markdown editor built into Joplin, you’re going to go bananas when you see the options available to tailor your experience. In Preferences → Markdown, you’ll find a list of around 20 installed plugins to enhance the standard capabilities. I’m definitely not going to go through them all here but one really weird one caught my eye.
The plugin says “Enable Mermaid diagrams support”. Well, hang on now, I certainly want mermaids in my notes, don’t you? You know I love a good diagramming application, so I simply had to investigate.
Mermaid is an open source diagramming project where you create diagrams using a normal text editor rather than a GUI where you draw boxes and lines. Creating diagrams with a text editor sounds weird, but so did Markdown when I first heard about it. An example of the syntax for Mermaid is if you write A-->B;
you get a rectangular box with an A in it followed by a box with a B, with an arrow going between them. Take out the >
symbol and it’s a straight line with no arrow.
With Mermaid, you can create flowcharts, sequence diagrams, class diagrams, Gantt charts, Pie Charts, and more. I learned just enough to be impressed and amazed that Mermaid exists, then practiced a little bit inside Joplin, and learned that this is too nerdy for even me. But I still think it’s amazing.
The option to enable Mermaid diagrams is controlled by the desktop app, but once you enable it, the feature is available across your mobile devices as well.
Mobile
Let’s switch gears to talking about the mobile version of Joplin. Instead of seeing 3 or 4 columns at once, the interface slides in and out so you can’t see all of the columns at once. For example, if you’re in a notebook, you’ll see the list of notes and to-dos inside the notebook. But as soon as you select a note, it will take over the whole screen. You can only view the Markdown or the rendered view but not both side-by-side.
This makes perfect sense on a phone screen, but I think with a big-girl tablet like the iPad Pro, Joplin could easily show us both panes at the same time.
It’s a little weird to go back and forth between the Markdown and rendered view on mobile. If you’re in the rendered view, in the bottom right there’s a red circle with a little paper and pencil inside, indicating that you can edit this note. When you tap that icon you’re in Markdown editor mode.
But to get back to the rendered version there’s no corresponding icon. There’s a three-dot menu in the upper right and a downward arrow icon up there too, but neither takes you back to the rendered view. In the upper left, you’ll see the name of the notebook you’re in and a back left arrow. Strangely it’s that back left arrow that gets you back to the rendered view. I say strangely because once you’re in the rendered view that same exact arrow takes you to the list of notebooks. Strange UI decision but once you know it, it’s not that bad.
The mobile app doesn’t display the icons for bold and italics and list items like the desktop app, so you’ll have to rely on your memory of how to format with Markdown if you rely mostly on mobile.
To-Dos
I’ve mentioned that Joplin lets you create to-dos. You can create these to-dos within the same notebook where you put your notes. It might work for some people, but seeing a mixture of to-dos and notes in a list of things inside a notebook looks like a hot mess to me. If I start using to-dos in Joplin, I’ll make separate notebooks for the to-dos within a project.
When you create a to-do, it looks pretty much like a regular note, except it has a circle you can click to show you’ve completed it and it gets a strikethrough in the notes list to designate that completion. You can also add an alarm to a to-do so they work well as reminders, triggering macOS’s notifications when a to-do is due. I don’t see any way to add those alarms in the mobile version though, just on the desktop.
Within your to-do you have free-form text but it’s easy to create subtasks because Markdown can create those natively with the format - [ ] List item
. In Joplin, this creates the same little circles in the rendered view, and you can check them off in the rendered view. Near as I can tell, that’s the only interaction you can do in the rendered view. When you check them off, the Markdown gets a little x
between the square brackets.
Since the to-do really is a free-form text area, you can write just like in a normal note including adding in external documents such as images. I really like having this much flexibility in a to-do.
Organization
Bart asked me what options Joplin has for organization. I’ve already explained the folder structure, but Joplin also supports tagging. This allows you to have a single note tagged for discoverability in different contexts. While one note can only be in one notebook, it can have multiple tags. I read in the forums that people really want to be able to use Boolean searches for tags, such as photography and trains, but it doesn’t appear that’s been implemented yet.
Search works really well to find notes by their content or titles. Tag searches baffled me for a bit until I finally figured out that to search for notes with a given tag, you have to precede the tag name with tag:
.
I mentioned that you can create notebooks within notebooks so I got curious how many levels deep you can go with Joplin. You can create sub notebooks 10 levels deep, but when you try to add one more, it puts the 11th one parallel at the top level. However, I think it might be a bug in the UI, because I deleted the top-level notebook that had the 9 sub-notebooks, and the 11th one disappeared too. So I think it IS still a sub-notebook but just doesn’t look like it.
Notes can be sorted by their creation date, update date, or by title. You can also create a custom sort in the desktop app by dragging notes up and down. You can’t create custom sorts in the mobile app but you can use a custom sort you created earlier on the desktop.
Notebooks don’t have as many sort options – you get sort by title and updated date. Not sure if more options are desirable as that would be enough for me.
Joplin lets you create links between notes. Select a note, right-click on the title and choose Copy Markdown Link. You can then embed that link into any other note for quick access. People in the forums describe using this technique to create their own index of notes on a topic. I think links to other notes would be really useful in a to-do item as well. I normally end up typing a lot of info into a to-do so I remember why I’m doing it, but if I could just link to a note I’d already written on the topic that would be way simpler.
Syncing
Joplin notebooks and notes sync across all of your devices at a specific interval. The most often you can have it sync automatically is every 5 minutes, but you can always hit the sync button to make it go on demand. Don’t forget that an advantage of Joplin is you get to choose your sync service. I’ve been using Dropbox and I haven’t had any problems with syncing.
In Joplin, you can drag in images, videos, audio files, PDFs, pretty much anything you want to attach. In the Synchronization settings, you can choose whether and how to download attachments to your notes.
I set mine to Always while I’ve been testing it, but if you have a giant set of notes with lots of attachments, it might make more sense to set it to Manual so you can get them on demand when you click on an attachment. The third option is Auto, which means attachments are only downloaded when you open a note. Very cool that they’ve got all of these options.
Plugins
One of the great joys of open source projects is when the developer creates an API (Application Programmable Interface) so that other people can write a plugin for their app to extend the capability of the application.
In Joplin Preferences on the desktop, there’s a link to a GitHub repo with 30 or 40 plugins for the Joplin. A few examples include: turning ABC text notation into sheet music, embedding a list of links specified by search inside of a note, exporting of a collection of notes to a static site generator, and one that allows you to create favorite notes.
There’s one that will add a powerful calculator and one that will run calculations on your tables in Markdown. If you want Joplin to be skinned to look more like a native Mac app, there’s a theme plugin to do just that. It’s really worth taking a look at all of these third-party plugins to see if there’s something that would make Joplin even more useful to you.
Where Are the Files Stored?
One thing people might be asking is how the notes are stored. One of the reasons I like Keep It from Reinvented Software is that every note is just a file in the Finder. I can right-click on any one of them and choose Show in Finder and get right to it.
Joplin is more like other traditional notebook apps, with everything is stored in an SQLite database. I’m not a database person so that makes it a bit opaque to me, but I read in the forums about someone who accidentally deleted a notebook (and emptied the trash) but was able to retrieve it from a backup using SQLite.
For my personal needs, a good export method is probably just as good as Show in Finder.
Exporting from Joplin
Luckily, Joplin has quite a few options on the export front. You can export notes to:
- Joplin export file or directory
- Markdown
- HTML file or directory
Exporting a notebook to a Joplin directory works, but I believe the option is most useful for importing back into another Joplin installation. The Joplin directory export format exports all of the notes in their native Markdown format, but the title of each note is a long string of numbers and letters rather than the name of the note itself.
7f044cd9b83e46b09bcd05243666c089.md
If you export a single note as Markdown, the title is preserved. You may remember in my initial few words about Joplin that I said it’s really a rich text editor because you can embed images, audio, video, and PDFs, or other file formats. Because of this, when you export a note as a Markdown file, you’ll also get a Resources folder where those attachments will be exported. You get that Resources folder whether or not you had any embedded content.
You can select more than one note at a time, and choose export, but I think there’s a bug in this. Instead of revealing a Finder window with Save or Cancel, it shows Open instead, and hitting that does nothing at all to export your multiple notes. I may report this bug to the project, reporting bugs is a pretty heavy lift with Joplin.
Bug Reporting
This week, I wrote up an outline for a presentation I was working on using Joplin. I realized when I was finished that I needed a way to move that outline to a second clean user account I use for my presentations. My notebooks in Joplin wouldn’t be available to me, so I decided to export my outline note as a PDF to view from the other account.
I don’t know what the heck went wrong, but the PDF export was complete gibberish. By that I mean a jumble of text-like characters I’ve never seen before. I thought maybe it was something borked in that particular note, but I switched to another one, and the export there was also gibberish.
My solution was to just bring up the note in Joplin on my iPad while I presented from my second user account on the Mac.
Being a good netizen, though, I went off to the Joplin forums to report this bug. There I discovered that bug reporting was to be done by creating an issue in the GitHub project. Luckily I know how to do that!
But I have to say, they sure made it a lot harder than I would have hoped. I assumed I’d have to do a writeup describing the problem and identifying the OS and Joplin version and add a screenshot as an attachment and I’d be done. But they asked for some significantly nerdier stuff. They wanted a debug log, which isn’t all that uncommon, but to get the debug log you had to create a text file in a very deep directory on your system, paste in some glop I didn’t understand, and restart the app.
This caused the JavaScript console to appear as yet another column (which was kind of cool) but I had to watch for errors or warnings and copy that text into a text file to send to them.
This wasn’t that hard, but I cannot imagine a normal human who just wants to write notes doing this much work.
After I got all that done and I finished my presentation in the other account, I went back to my main account and guess what? PDF export worked flawlessly! So I had to go back to the GitHub issue and tell them that and move on. No clue why it happened or what fixed it.
Bottom Line
I’ve not been an Evernote user for a very long time, so I’m not the perfect person to judge whether Joplin is the replacement you’ve been looking for. But I can tell you that it’s incredibly powerful and it’s in very active open source development so if it doesn’t do what you want just yet, you can influence that development. It’s cross-platform and it’s free.
And did I mention it’s very pretty? You can find Joplin at joplinapp.org.