<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ArkHost</title>
    <description>The latest articles on Forem by ArkHost (@arkhost).</description>
    <link>https://forem.com/arkhost</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3771865%2Fd993c33a-0a97-4ab9-bb84-cce69451b62c.png</url>
      <title>Forem: ArkHost</title>
      <link>https://forem.com/arkhost</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arkhost"/>
    <language>en</language>
    <item>
      <title>Why I Built HelixNotes - A Local-First Markdown Notes App</title>
      <dc:creator>ArkHost</dc:creator>
      <pubDate>Fri, 13 Feb 2026 23:56:12 +0000</pubDate>
      <link>https://forem.com/arkhost/why-i-built-helixnotes-a-local-first-markdown-notes-app-3n0f</link>
      <guid>https://forem.com/arkhost/why-i-built-helixnotes-a-local-first-markdown-notes-app-3n0f</guid>
      <description>&lt;p&gt;I tested dozens of note-taking apps over the years. Free, paid, everything. None of them worked. So I built my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;I take a lot of notes. Technical documentation, project planning, ideas that hit at random, all of it goes into whatever note-taking app I'm using at the time. And over the years, I've used most of them.&lt;/p&gt;

&lt;p&gt;Notion was slow. Like, noticeably slow. Every click had a delay. The offline mode was a joke. It barely worked, and when it did, syncing back was a coin flip.&lt;/p&gt;

&lt;p&gt;Evernote was fine in 2015. Then it got bloated, changed pricing three times, and I stopped trusting them with my data.&lt;/p&gt;

&lt;p&gt;Then I found &lt;strong&gt;UpNote&lt;/strong&gt;. Clean UI, fast, just works. Honestly, I loved it. But there was one problem: your data lives in Google Firebase. Your notes, on someone else's cloud, tied to a proprietary format. For a privacy-focused person running Linux, that's a dealbreaker.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Obsidian Detour
&lt;/h2&gt;

&lt;p&gt;So I tried Obsidian. Local files, markdown, own your data - great philosophy. But as a plain markdown editor, the default experience was painful. I actually stopped taking notes entirely.&lt;/p&gt;

&lt;p&gt;Obsidian is powerful if you spend time configuring plugins, learning hotkeys, and tweaking CSS. But I don't want a hobby. I want to open an app, write something down, and close it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Actually Wanted
&lt;/h2&gt;

&lt;p&gt;It turned out to be pretty simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UpNote's clean, intuitive UI&lt;/li&gt;
&lt;li&gt;Obsidian's philosophy - local &lt;code&gt;.md&lt;/code&gt; files, no cloud, no lock-in&lt;/li&gt;
&lt;li&gt;Actually fast, not "fast for an Electron app"&lt;/li&gt;
&lt;li&gt;Open source, so you can verify what it does with your data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That app didn't exist. So I built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Tauri Over Electron
&lt;/h2&gt;

&lt;p&gt;I went with &lt;strong&gt;Rust + Tauri 2.0&lt;/strong&gt; for the backend. The result is a small binary that uses a fraction of the RAM of Electron alternatives. It launches instantly and doesn't eat your battery.&lt;/p&gt;

&lt;p&gt;Tauri uses the system webview instead of bundling Chromium. That's why the binary is small and the memory footprint is low. For a note-taking app, there's no reason to ship an entire browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Rust + Tauri 2.0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; SvelteKit + Svelte 5 + TailwindCSS v4&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editor:&lt;/strong&gt; TipTap v3 - WYSIWYG with formatting toolbar, slash commands, and source mode toggle&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search:&lt;/strong&gt; Tantivy - a Rust-native full-text search engine. Indexes your notes, returns results instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; Plain &lt;code&gt;.md&lt;/code&gt; files on your filesystem. Notebooks are folders. Metadata lives in frontmatter. No proprietary database, no SQLite blob, no format you can't read with &lt;code&gt;cat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sync Without Lock-in
&lt;/h2&gt;

&lt;p&gt;HelixNotes doesn't have built-in sync. That's by design.&lt;/p&gt;

&lt;p&gt;Because your notes are just files in a folder, you can sync them with whatever you already use - Nextcloud, Syncthing, Dropbox, rsync, Git, or nothing at all. The app watches the filesystem for external changes and picks them up automatically.&lt;/p&gt;

&lt;p&gt;I'm not going to tell you where to put your files. That's your decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source, AGPL-3.0
&lt;/h2&gt;

&lt;p&gt;HelixNotes is licensed under &lt;strong&gt;AGPL-3.0&lt;/strong&gt; and hosted on &lt;a href="https://codeberg.org/ArkHost/HelixNotes" rel="noopener noreferrer"&gt;Codeberg&lt;/a&gt;. Not GitHub - Codeberg. If you're building a privacy-focused app, hosting it on Microsoft's platform feels like missing the point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get It
&lt;/h2&gt;

&lt;p&gt;Available on &lt;strong&gt;Linux&lt;/strong&gt; (AppImage, APT, AUR), &lt;strong&gt;Windows&lt;/strong&gt;, and &lt;strong&gt;macOS&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;a href="https://helixnotes.com" rel="noopener noreferrer"&gt;helixnotes.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 &lt;a href="https://codeberg.org/ArkHost/HelixNotes" rel="noopener noreferrer"&gt;Source on Codeberg&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📥 &lt;a href="https://codeberg.org/ArkHost/HelixNotes/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I built HelixNotes because I needed it. Turns out other people did too. If you've been looking for the same thing, give it a try.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>tauri</category>
      <category>svelte</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
