DEV Community

Cover image for Introducing Inkdrop v5
Takuya Matsuyama
Takuya Matsuyama

Posted on • Originally published at

Introducing Inkdrop v5

Hello! I’m Takuya. I’m so excited to announce that Inkdrop v5 has been just released today. It’s been 5 months since the last update but we’ve got a bunch of new features, improvements, and bug fixes! I’d like to say thank you to all the customers who helped me testing the beta versions. Thank you, Andi, can_Y, ebigram, Erdem, Gustavo, James, Mike, Rael, tdudz, and Zhuolun for your feedback. Let me take you through what’s new in v5.

What is Inkdrop? — It’s my 4-year-work

A Markdown note-taking app that syncs

To people who stumbled across this article: Nice to meet you. I’ve been building Inkdrop alone for 4 years. Wow, how time flies! This is a plain-text Markdown note-taking app that runs and syncs across macOS, Windows, Linux, iOS, and Android devices with end-to-end encryption. It makes organizing Markdown notes simple without hassles. It’s initially built just for myself — I was searching for a replacement for Evernote, supporting code syntax highlighting and some other programmer-friendly features like vim keybindings and hackability, for a long time. Then, I couldn’t find the one and eventually decided to build it myself. The journey towards building a perfect note-taking app was so hard than I imagined. But I stuck with it for 4 years and kept improving it. I learned a lot through this project and blogged about them. You can read my blog articles such as:

Last year, I worked on rebuilding the app completely from scratch in order to clean up its technical debt and it successfully paid off:

This update is on top of those endeavors.

But I’m not actually building alone

Building a great editor alone would be extremely hard. Because there are countless personal preferences and nice-to-have features for developers. In order to deal with that issue, Inkdrop provides a powerful API that allows you to add new functionality or provide a new look to the app with a plugin. While I’ve been working on its core features alone, we’ve got more than 100 plugins now! Most of them (> 80%) are made by the user community, which is awesome. I’m happy to see people enjoying hacking Inkdrop. You can browse plugins from here.

Plugins let me focus on improving the core features instead of adding many optional features. So, I’m encouraging people to create a plugin with plugin developer license:

You can use Inkdrop for free, forever if you created a plugin.

Faster data sync and launch speed

Okay, let’s get started from talking about performance improvements in v5.

Since scaling out the database cluster, the data sync got slowed down for some reason. It was due to the bad network topology where each server was running in a different region, which caused the RTT to be around 166ms. I moved the servers to the same region but in different availability zones and that made the RTT less than 1ms. Now it syncs across devices 3 times faster than before!

The app launch speed has been also significantly improved. Inkdrop is built on top of Electron and the old version needed 4 seconds to launch, which is very slow. I finally managed to leverage v8 snapshots to boost the startup time. As you can see, the new version takes less 1,000 milliseconds to launch. The slow startup speed is so stressful. But now, I’m very happy to solve this issue. Please read the following article to know how I accomplished it:

It’s so fast, as you can see:

Refurbished icons and cleaner UI

The toolbar icons looked kind of outdated these days. They were too bold for the recent retina resolution displays. Besides, the action buttons on the top of the editor were taking too much spaces which makes you uncomfortable to use in a smaller display:

So, I decided to refurbish the icons and rearrange the editor action buttons to make it look modern and clean:

You can toggle the editor drawer by clicking the three-dash button on the top right corner of the editor:

I used Streamline Icons for this improvement :)

Notebooks now behave more like ‘projects’

As a developer, you will have many projects and side projects. As you get more projects, it gets hard to organize your notes in Inkdrop v4 due to lack of flexibility. Inkdrop should be durable to be always your place to jot down your daily hacking endeavors even if you’ve got a lot of notebooks, tags and notes. Towards this issue, in this update, I’m happy to introduce the following features supported:

  • Pin notes to the top
  • Find sub-notes in collapsed parent notebooks
  • Workspace View
  • Remember sort & order settings per view
  • Remember navigation state

Let me explain the details below.

Pin notes to the top

Let’s say you sometimes have trouble remembering which notes you were working on in Inkdrop. The “Pin to Top” feature allows you to make notes stick to the top of your notes list like so:

Find sub-notes in collapsed parent notebooks

Before v5, the note list can only show notes directly under the notebook you selected. If you have a lot of child and grandchild notebooks, it was kind of annoying to grasp quickly what’s in a project. Inkdrop v5 supports listing sub-notes when the selected notebook is collapsed on the sidebar, as you can see:

Notice that the note count badge on the right side of the notebook item on the side bar also indicates sum of number of notes in it when collapsed.

Workspace view

By default, the sidebar shows all notebooks, status and tags in your database. It’s all mixed together and hard to distinguish as you store notes about various projects. You may think you want to see only information about a project you are currently focusing on. Workspace view allows you to switch the sidebar’s view into a specific notebook:

Remember sort & order settings per view

Now it remembers sort & order of note list for every view (all/notebook/tag/status) so that you don’t have to toggle sort order between notebooks.

Remember navigation state

While writing a note, you may frequently refer to other notes. So, an ability to quickly switch back to the editing note after searching notes is crucial for your note-taking. Take a look at the quick demo down below:

Plugin GUI

Plugins can be installed via ipm command but it would be not handy as you have to run it from a terminal app. I am aware of some people confused to use it. As we've got 100+ plugins, it is more important that we can install/uninstall plugins on the app. So, I implemented a GUI for plugins in v5! It's so easy to install/uninstall plugins without a terminal.

It also supports auto-update so you no longer have to run ipm update manually:

..and many more!

We’ve got so many improvements in this update. It’s going to be a too-long article if I listed up all. Please refer to the release notes here to know other improvements and bug fixes.

That’s pretty much of it. I hope you like it! Thank you for supporting Inkdrop. I’ll keep it up. Looking forward to seeing you guys enjoying it :D

Thank you for all your support!

Top comments (4)

datadeer profile image
Lucca Sanwald • Edited

I've been using Inkdrop for the at least one year now and i have to say it's a great product! But i also enjoy your new YouTube content. It's amazing to get insights from someone who's rocking the solo developer gig. The engagement and transparency towards your community is really something that sets you apart from alternative products 😃👍

Thanks Takuya! And keep up the good work 🥳

craftzdog profile image
Takuya Matsuyama

Thank you, Lucca!
I'm so happy to know that you enjoy my videos ☺️

shostarsson profile image
Rémi Lavedrine

That is a great app (and very pretty). 👏🏽

craftzdog profile image
Takuya Matsuyama