The Roadmap of Inkdrop Vol.3

Ground-up Improvements and Some New Features

The Roadmap of Inkdrop Vol.3

Inkdrop is a note-taking app that comes with robust Markdown editor with cloud sync.

All tasks of the roadmap (vol.2) announced last year have been recently finished.

It involved quite hard work like re-building the mobile app. It has become so comfortable to view and edit notes on your mobile phone than ever before.
I’m so happy to see that you seem to like it so far. I’ve wrote an article about lessons I learned while building it with React Native on this article. Please check it out if you are working on a React Native project.

And there was a significant improvement regarding sync which was not included in the roadmap — backing-up conflicted notes. The worst user experience in Inkdrop is to lose your data. I’m glad to be able to make the app more reliable for writing.

Now we’ve got many improvements so far. But we are going to go further more. I’ve had great discussions on our forum with customers. Thank you so much for your thoughts! They led me to the right direction. Let’s talk about the future of Inkdrop.

Task Progress Feature is Recently Added

Inkdrop has Over 500 Paid Customers Now

I have a good news and let me talk about it first.

It has grown gradually without covering on any large blogs or media. Growth was mainly through word of mouth. This allows me to provide the stable service, instead of pursuing a skyrocketing growth with unstable operations and poor user support.

And now, the number of paid subscribers is about to reach 600! Around 50 people are newly starting subscribing per month. This is amazing. I am able to concentrate on this project more without worrying about money. And it also allows me to pay for better tools for our development and operations. Thank you so much for your support.

370,000 JPY ≒ 3,302 USD

Ground-up Improvements

Okay, let’s get right into it.

It will be a long journey…

[Done] Rebuilding the Desktop App

As I mentioned while introducing the new mobile app in a blogpost, the desktop app needs a fundamental re-design so that it can keep evolving while ensuring it to be secure, stable, clean and simple. Because its stack is kind of old now. For example, React is still v14.
Some libraries used in the app have been already deprecated. There are too many breaking changes in order to update them to the latest versions. I learned a lot over the past 2 years on React development and I can do much better now.

The new mobile app’s base modules have been written in JavaScript + Flow and have some tests. Those modules are designed to be shared between mobile(React Native) and desktop(Electron). They are ready to integrate with the desktop app. It’s time to work on it.

[Done] End-to-end encryption

Currently our data at rest encryption happens in our servers. Because I’m just an indie developer, it is difficult to trust that my operating servers are fully safe. And it is not possible to prove that I don’t steal your data with the current architecture. That’s why Inkdrop supports syncing with a custom CouchDB server. But obviously, it is just an excuse and it doesn’t solve the actual issue at all.

As a note-taking app that comes with cloud sync out of the box, security must be of the utmost importance. I was thinking of how to bring the first-class security of end-to-end encryption to Inkdrop. It is also utilized in Apple’s iCloud, so it seems like a de facto standard encryption technique nowadays.
So I have to raise the bar.

For a transparency, I’m also planning to open-source some modules for encryption so you can check if it’s secure. It will be also useful when you create a third-party client for Inkdrop :)

It will be definitely a hard work though, I am going to tackle it!

[Done] Faster, Lighter & Better Full-text Search with Better UI

You will find that the more you create notes, the more search becomes important.

Current search UI is kind of inefficient due to its verbose syntax and small input box. The default search condition of -status:completed -status:dropped should be collapsed somehow. A query should be line-wrapped so that you can always see the entire query. And it would be nice to have auto-completion to help input conditions.

The search algorithm is based on TF/IDF built on top of PouchDB but that has some problems:

  1. Indexing is slow, which is significant. Especially on mobile. Because of the large overhead between PouchDB and SQLite3, it takes quite long time to complete if you have large amount of notes. I hate it.
  2. Matching process is ambiguous and unstable. Sometimes it won’t match desired notes with specified keywords. It’s annoying.

In order to solve those problems, I would like to build the search module from scratch, which doesn’t depend on PouchDB. It’s kind of technically challenging though.

[Done] Comprehensive API Documentations

There are already great customer-made plugins 3 and I am very excited to see them. Inkdrop is made for developers. Its extensibility is quite important so that you can freely customize the app as possible as you want, like other sophisticated editors. But current API documentation is incomplete and that causes that many users need my help to build their plugin.

The new desktop app will have more powerful APIs. And I’d like to make a comprehensive API documentation so you can understand how to build your plugin easily.

New Features

[Done] Better Image Support

Markdown doesn’t support specifying image size. Sometimes you get too large/small image in the html preview. It is not useful.

There are some ideas to accomplish that:

  1. Make a plugin to extend Markdown to be able to specify image size
  2. Use img tag with HTML markup
  3. Support GUI for resizing image in the preview and remember the size
  4. Recognize URL hash like #inkdrop-image-*

Number 1 looks simple but I don’t feel like extending Markdown syntax because it would lose the compatibility with other tools. Number 2 would not break any syntax but it would be annoying to input. I hate it. Number 3 is kind of WYSIWYG-like feature. And free-resizing is difficult to make responsive between various devices. So I think the best way to support it is number 4. For example, when you have an image as following:![img](inkdrop://file:-58zRhql1#inkdrop-image-small)

The app recognizes a hash part of the URL, which is #inkdrop-image-small, and apply a CSS like this:img[src*="#inkdrop-image-small"] {
 max-height: 10em;
}

Now you get a small image. If you would like to see the image in pixel perfect, all you have to do is just to click the image and you will get a full window preview.

Thanks for the ideas, Samantha and Sceptic!

[Done] Better Table Editing

Writing tables by hand is hard.
There should be a way to help generate them with specified number of columns and rows. It would also be nice to have shortcuts to add a column and a row before/after current cursor position. As a plain text editor, note that WYSIWYG-style table editor is not going to be added, like Typora has.

[Done] Other Language Support for Spell Checker

I see Inkdrop is used from various countries, which is wonderful fact I love.
Current spell checker only supports English. But supporting other languages could be simple.

Thanks for the suggestion, Cornelius!


Let’s make it together

Thank you for reading it.

As you may notice, it would be a phase to polish up the service rather than adding more features. I would like to focus on keeping providing clean, simple, stable and secure service so you can use it for long time.

But please remember that tasks listed here are only big ones on which I will focus. As I added many features and improvements without notice so far, I will also work on many unlisted improvements in the future. So please don’t hesitate to tell me your thoughts! I’m always listening to you.

As always, I appreciate your bug reports and feature requests very much. I can’t wait to show you how Inkdrop will evolve!

Thank you for all of your support!

Homepage: https://inkdrop.app/
Send feedback: https://forum.inkdrop.app/
Contact us: contact@inkdrop.app
Twitter: https://twitter.com/inkdrop_app