Background

Permalink to heading Background

When I started this project, I was disillusioned the most by two things from the plethora of note-taking apps: 1) The disconnect in writing Markdown leading to overall non-intuitive experience, and 2) almost all of them were a desktop app based on the resource-hungry Electron. This two combined to give me a bad experience on my current 2018 Thinkpad T-series laptop.

I wanted a note-taking app that's open and portable(Markdown and web-based), private(no growth hacks and profiteering shenanigans), intuitive writing experience(absolute minimal disconnect in mental model when writing, no split-screen), fast on huge document, lightweight, and simple. And building on Web while focusing on web perf and UI/UX would be a big part in checking off those boxes.

But when I started working on intergrating Zuunote as a web app with user's local Markdown files, I decided to abandon Web as the distribution channel for Zuunote.

Why

Permalink to heading Why

Zuunote must be private, fast, and with great intuitive UI/UX for everyone. These goals motivate all my decisions for Zuunote.

And the current landscape to integrate with user's local files doesn't allow me to achieve those goals:

  1. File System Access API

    • Pro - Read and write directly on user's local files and directory.
    • Con - Only supported in Chromium-based desktop browsers. Renaming/moving directories can be slow - copy and remove recursively.
  2. Origin Private File System

    • Pro - Much broader browser support than File System Access API.
    • Con - To get updated files, user have to probably ZIP and download it. Renaming/moving directories can also be slow.
  3. File and Directory Entries API

    • Pro - Broader browser support than File System Access API.
    • Con - moveTo() API and more have been deprecated in Firefox.
  4. IndexedDB

    • Pro - Broadest browser support.
    • Con - Will be very awkward to emulate a file system. Also won't be as user friendly and performant as File System Access API.

I was at a lost how to move forward in the interest of cross-browser support and user-friendliness. It appeared to me that packaging Zuunote as a desktop app was the only way forward.

Benefits of desktop app

Permalink to heading Benefits of desktop app

While rationalizing this decision, I came to realize that being a desktop app actually ain't that bad.

And being based on Tauri's small footprint would make those benefits even more real.