Development Log

How I'm building Nokta

releasemilestone

v0.10.0 - A Solid Foundation

Building an app is a lot of work. You add some functionality, and it sort of works. Then you redo it, redo it again, throw it all away because it's sort of not working, too. Then try something else until it finally does what you want it to do. And then make it play nicely with the rest of the app. Create a bug list, work your way through it... And once everything in your list is solved, there is a whole new list of bugs caused by your fixes. Build - Break - Fix - Repeat

That's why I call this release a "Solid Foundation". I've gone through the cycle so many times that there's nothing major on my list anymore. I'm not saying there aren't any bugs, but I've reworked it to a point where the basic elements are doing what they should. This is a version that can be fixed, updated and upgraded without having to redo like half of it.

Nokta started out as a test project to try out Tauri. A simple idea: build a note editor with a clean UI that works with a database and has its own file format. It didn't take long for me to realise that I was building something I would actually use myself. A lot of cool ideas came up, but at the same time, even the basic version of today has a lot of little details. I made a conscious decision to park all the cool ideas and focus on finishing a basic version.

This is what I'm proud of - or should I say: this was a total pain in the ass to build:

  • Getting the application menu to reflect the app's status (like adding check marks and disabling menu items)
  • Interacting safely with the database
  • Deciding to completely change the text-editor (several times) before landing on Lexical, then making it behave how I want it
  • Actually doing all the little tweaks and optimizations I found along the way
  • Fixing the search and replace functionality, search highlighting, the search UI, search keyword selection, fixing search bugs, search search search search...
  • And this just in: Azure Trusted Signing!

I've been working on this app for a long time, and I think the foundation stands. Making it as solid as possible will be a goal for each upcoming version. With this first published version, I can finally start working on the new stuff that lives in my head for now.

changelog

v0.10.0 - Summary of changes

  • Formatting fixes: Text colors, highlights, indentation, tabs in lists and code blocks behave properly now.
  • Search and replace: Highlights update correctly, clear when switching notes, and can handle formatted text better
  • UI polish: The search results panel has a close button, modal checkboxes aren't the size of dinner plates anymore, error text is selectable, menu items enable and disable at the right times, and the app remembers scroll positions when switching between notes.
  • Stability: Corrupted or fake databases no longer blow up the app, deleting or restoring notes updates the UI instantly, reloading pulls from the database instead of the file, and opening deleted notes correctly greys out actions.
  • Performance: Hydration and lazy loading for large notes, with edge cases fixed along the way.
  • Editor improvements: Dragging notes into other notes is tighter, block quotes and code blocks look consistent, and paste-spam is blocked so users can't fry the editor by accident.