Inkdrop's 2023 Recap: Refactoring, Rebuilding, and Reimagining

Inkdrop is Now 7 Years Old :partying_face:

Hey, Inkdroppers! This is Takuya.
I began developing Inkdrop in December 2016, which means I have been working on it for 7 years!
It’s hard to believe how significantly it has become a part of my career and life.
This project continues to generate sufficient income for my family and me.
The support from customers and the community keeps me 100% motivated to persist in my work.
I’d like to take a moment to reflect on 2023 and share what I’ve worked on and achieved this year.

Big challenges: refactoring and updating the old codebase and core modules

Years of working on this project have inevitably led to the accumulation of technical debt.
In a 2019 blog post, I mentioned how Inkdrop relied heavily on modules ported from the Atom editor, which was archived on December 15, 2022.
The architecture was challenging due to its extensibility and customizability, but many modules maintained by the Atom team are no longer active.
I had to find alternatives to keep the app functioning on macOS, Windows, and Linux.
I looked into VScode, which is also built on Electron, and adopted some of its techniques.
For instance, I migrated the file-watching module from Pathwatcher to Chokidar.
This migration and others have significantly improved the launch speed, which is great.

Another major change was moving away from FlowJS after they shifted their focus to the Facebook codebase instead of the open-source community.
A large portion of my codebase was in FlowJS, but I successfully converted it to TypeScript, including the server-side and web frontend code.
The conversion using flow-to-ts initially resulted in 2,500 errors - looked like a formidable challenge, haha.

Overall, the desktop project remains fresh and viable.
However, the aging codebase necessitates ongoing refactoring, which is time-consuming and slows down feature development but is essential for longevity.
This year, I faced burnout, a significant challenge as a solo developer.
Few people have maintained an app for over 7 years, leaving me with few peers to discuss these challenges.
It’s crucial for me to prioritize tasks more carefully to prevent the project from stalling.

Next year, I plan to replace the current plugin management system, ipm, with a simpler and smaller solution.

:rocket: Desktop v5.6 - Faster and richer

Inkdrop Desktop v5.6.0

I’m thrilled that v5.6.0 was released on October 23, following intensive refactoring and module migrations.
The update boasts a 500-700ms faster launch time🚀.
Key highlights include:

  • :dash: Improved launch speed
    • Migrated from CSON to JSON for config files
    • Plugins now load lazily
  • :art: Updated Markdown renderer engine
  • :rainbow: Built-in paste-as-markdown support
  • :sparkles: Nested workspace views
  • Quick notebook picker for moving notes

:iphone: Mobile v5 - Completely Rebuilt

I’ve been working on completely rebuilding the mobile version since 2022.
On May 9, the new version was released, resolving many editing issues on Android, improving performance, and offering smoother UIs with multiple theme support.

I’m planning to add more themes next year.
I hope you enjoy the new version so far!

:sparkles: New docs and starter guides

I successfully attracted a lot of people through my YouTube channel called devaslife, but there is a huge issue - Inkdrop has a significant low conversion rate.
I realized the importance of customer education, as I don’t use libraries or tools without adequate documentation in my daily workflow.
My policy is to make things I would use myself, and this includes writing user manuals and API docs.

The new designs are more engaging and accessible.



New doc design

New API doc design

The new design is significantly improved.
I have started writing beginner guides focusing on how the app can improve your coding workflow, rather than just feature descriptions, which are boring.
The guides include engaging thumbnails created with Midjourney to encourage reading as much as possible.

For example, you may like these two articles:

I realized that I have more tips to share and will be writing them next year!

Thanks for your support!

I hope you’ve enjoyed this recap of Inkdrop’s year.
I will be taking a holiday break until January 10 to seek inspiration, plan for the upcoming year, and spend quality time with my family.
I can’t wait to continue improving Inkdrop.

Thank you for your understanding and support, as always :heart:
Wishing you a happy and prosperous 2024! See you next year :raised_hands: