PageSourceSearch

https://helixnotes.com/why-i-built-helixnotes

html helixnotes.com collected 2026-10-02 15:04:51 UTC 16,116 bytes, 121 lines download raw bytes

1<!doctype html>
2<html lang="en">
3	<head>
4		<meta charset="utf-8" />
5		<link rel="icon" href="/favicon.ico" />
6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7		<meta name="theme-color" content="#0e0f14" />
8		<link rel="stylesheet" href="/assets/style.css?v=4a1942c" />
9		
9<script
10			defer
11			src="https://analytics.arkhost.cloud/script.js"
12			data-website-id="76780114-a720-4844-8d89-15046770cc3d"
13		></script>
13
14		<link href="./_app/immutable/entry/start.DeFw0Ezb.js" rel="modulepreload">
15		<link href="./_app/immutable/chunks/B5R7Rgo7.js" rel="modulepreload">
16		<link href="./_app/immutable/chunks/BTr0kOH8.js" rel="modulepreload">
17		<link href="./_app/immutable/chunks/BvIOOxOp.js" rel="modulepreload">
18		<link href="./_app/immutable/entry/app.CKef_tJW.js" rel="modulepreload">
19		<link href="./_app/immutable/chunks/CWj6FrbW.js" rel="modulepreload">
20		<link href="./_app/immutable/chunks/D7PWZZqY.js" rel="modulepreload">
21		<link href="./_app/immutable/nodes/0.Qt7qQdZK.js" rel="modulepreload">
22		<link href="./_app/immutable/chunks/BMN7V18f.js" rel="modulepreload">
23		<link href="./_app/immutable/nodes/7.DjVRN92Z.js" rel="modulepreload">
24		<link href="./_app/immutable/chunks/BnSJ679h.js" rel="modulepreload">
25		<link href="./_app/immutable/chunks/D-lzizOX.js" rel="modulepreload">
26		<link href="./_app/immutable/chunks/yU8jEVIs.js" rel="modulepreload">
27		<!--anrgv2--><meta name="author" content="Yuri Karamian"/> <meta name="description" content="I tried dozens of note-taking apps. Each got something right, but none combined clean writing with local Markdown. So I built the one I wanted."/> <link rel="canonical" href="https://helixnotes.com/why-i-built-helixnotes"/> <meta property="og:type" content="article"/> <meta property="og:site_name" content="HelixNotes"/> <meta property="og:title" content="Why I Built HelixNotes"/> <meta property="og:description" content="Each note app got something right, but none combined clean writing with local Markdown. So I built the one I wanted."/> <meta property="og:url" content="https://helixnotes.com/why-i-built-helixnotes"/> <meta property="og:image" content="https://cdn.helixnotes.com/assets/screenshots/screenshot-1.png"/> <meta property="og:image:width" content="1200"/> <meta property="og:image:height" content="630"/> <meta property="article:published_time" content="2026-02-01"/> <meta property="article:author" content="Yuri Karamian"/> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:title" content="Why I Built HelixNotes"/> <meta name="twitter:description" content="Each note app got something right, but none combined clean writing with local Markdown. So I built the one I wanted."/> <meta name="twitter:image" content="https://cdn.helixnotes.com/assets/screenshots/screenshot-1.png"/> <!---->
27<script type="application/ld+json">{
28        "@context": "https://schema.org",
29        "@type": "Article",
30        "headline": "Why I Built HelixNotes",
31        "description": "I tried dozens of note-taking apps. Each got something right, but none combined clean writing with local Markdown. So I built the one I wanted.",
32        "image": "https://cdn.helixnotes.com/assets/screenshots/screenshot-1.png",
33        "datePublished": "2026-02-01",
34        "author": {
35            "@type": "Person",
36            "name": "Yuri Karamian"
37        },
38        "publisher": {
39            "@type": "Organization",
40            "name": "ArkHost",
41            "url": "https://arkhost.com"
42        },
43        "mainEntityOfPage": {
44            "@type": "WebPage",
45            "@id": "https://helixnotes.com/why-i-built-helixnotes"
46        }
47    }</script>
47<!----><!----><title>Why I Built HelixNotes | HelixNotes</title>
48		<link href="./_app/immutable/assets/0.DEUfUeYC.css" rel="stylesheet">
49	</head>
50	<body data-sveltekit-preload-data="hover">
51		<div style="display: contents"><!--[--><!--[0--><!--[--><nav class="nav"><div class="nav-inner"><a href="/" class="nav-logo"><img src="/favicon.ico" alt="HelixNotes" class="nav-icon" width="28" height="28"/> <span>HelixNotes</span></a> <button class="nav-hamburger svelte-12qhfyh" aria-label="Menu" aria-expanded="false"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button> <div class="nav-links"><a href="/#features">Features</a> <a href="/contributors">Contributors</a> <a href="/docs">Docs</a> <a href="/faq">FAQ</a> <a href="/why-i-built-helixnotes">Why HelixNotes?</a> <a href="/#download" class="nav-cta">Download</a></div></div></nav> <!--[--><article class="blog-article"><div class="article-meta"><span class="tag">Behind the Build</span> <h1>Why I Built HelixNotes</h1> <p class="subtitle">I tried dozens of note-taking apps over the years. Each got something
52            right, but none combined clean writing with local Markdown. So I built
53            the one I wanted.</p> <div class="date"><span>Yuri Karamian</span> · Founder of ArkHost · February 2026</div></div> <h2>The Problem</h2> <p>I take a lot of notes. Technical documentation, project planning, random
54        ideas at 2am - all of it goes into whatever note-taking app I'm using at
55        the time. And over the years, I've used most of them.</p> <p>Evernote worked for me for years. Over time it became heavier, and its
56        pricing and product direction kept changing. I stopped feeling comfortable
57        making it the only home for information I wanted to keep.</p> <p>In between, I tried a lot of others - Joplin, Standard Notes, Simplenote,
58        Notion, Anytype, Notejoy, NimbusNotes, you name it. Each one got
59        something right but missed something else. Too slow, too bloated, weird
60        sync issues, locked-in formats, or just not pleasant to use day-to-day.</p> <p>Then I found <strong>UpNote</strong>. Clean UI, fast, just works.
61        Honestly, I loved it. But there was one problem: your data lives in
62        Google Firebase. Your notes, on someone else's cloud, tied to a
63        proprietary format. For a privacy-focused person running Linux, that's a
64        dealbreaker.</p> <h2>The Obsidian Detour</h2> <p>So I tried Obsidian. Local files, Markdown, ownership of your data - the
65        philosophy made sense to me. But I spent more time adjusting the app than
66        writing in it, and eventually I stopped reaching for it.</p> <p>Obsidian is powerful if you spend time configuring plugins, learning
67        hotkeys, and tweaking CSS. But I don't want a hobby. I want to open an
68        app, write something down, and close it. The default experience without
69        plugins felt incomplete, and with plugins it felt like maintaining a side
70        project.</p> <h2>What I Actually Wanted</h2> <p>It turned out to be pretty simple:</p> <ul><li>UpNote's clean, intuitive UI</li> <li>Obsidian's philosophy - local <code>.md</code> files, no cloud, no
71            lock-in</li> <li>A lightweight desktop app that is not built on Electron</li> <li>Open source, so you can verify what it does with your data</li></ul> <p>That app didn't exist. So I built it.</p> <h2>The Stack</h2> <p>I went with <strong>Rust + Tauri 2.0</strong> for the backend instead of
72        Electron. It produces a small native desktop app and, in my day-to-day
73        use, keeps the memory footprint low enough to leave HelixNotes open all
74        day without thinking about it.</p> <p>The frontend is <strong>SvelteKit + TailwindCSS</strong>, with <strong>TipTap v3</strong> as the editor. TipTap gives you a rich WYSIWYG
75        markdown experience - formatting toolbar, slash commands, and a source
76        mode toggle for when you want to see the raw markdown.</p> <p>Search is powered by <strong>Tantivy</strong>, a Rust-native full-text
77        search engine. The index stays on your machine and keeps searches quick,
78        even as a vault grows.</p> <p>Your notes are plain <code>.md</code> files on your filesystem. Notebooks
79        are folders. Metadata lives in frontmatter. That's it. No proprietary
80        database, no SQLite blob, no format you can't read with <code>cat</code>.</p> <h2>Sync Without Lock-in</h2> <p>There's no HelixNotes cloud and no account. That's by design: I don't
81        want to be the company holding your notes.</p> <p>Because your notes are just files in a folder, you can sync them with
82        whatever you already use - Nextcloud, Syncthing, Dropbox, rsync, Git, or
83        nothing at all. The app watches the filesystem for external 
83changes and
84        picks them up automatically.</p> <p>If you'd rather the app handle it, there's optional WebDAV sync to your
85        own server now too. Either way, I'm not going to tell you where to put
86        your files. That's your decision.</p> <h2>Open Source, AGPL-3.0</h2> <p>HelixNotes is licensed under <strong>AGPL-3.0</strong> and hosted on <a href="https://gitlab.com/ArkHost/HelixNotes" target="_blank" rel="noopener">GitLab</a>.</p> <p>AGPL means anyone can use, modify, and distribute the code. But if
87        someone modifies it and runs it as a service, they have to share their
88        changes. It protects the project from proprietary forks while keeping
89        everything open.</p> <h2>Who It's For</h2> <p>HelixNotes is for people who want a comfortable rich editor while keeping
90        their notes as ordinary files. It favors useful defaults over plugin
91        hunting, and personal control over a hosted account.</p> <p>It is not trying to replace a team wiki or a real-time collaboration
92        workspace. There is no HelixNotes cloud, and I do not want the project to
93        become the company holding everyone's notes.</p> <p>Available for <strong>Linux</strong> via AppImage, <a href="/#apt-repo">Debian APT</a>, <a href="/#dnf-repo">Fedora DNF</a>,
94        and AUR; plus <strong>Windows</strong>, <strong>macOS</strong>, <strong>Android</strong>, and <a href="https://apps.apple.com/us/app/helixnotes/id6788490726" target="_blank" rel="noopener">iPhone and iPad via the App Store</a>.
95        Free, open source, no account.</p> <div class="separator">· · ·</div> <p>I built HelixNotes because I needed it. Turns out other people did too.
96        If you've been looking for the same thing, give it a try.</p> <div class="cta-box"><h3>I built the notes app I wanted to use.</h3> <p>Try HelixNotes, or inspect the source first.</p> <div class="buttons"><a href="/#download" class="primary">Download</a> <a href="https://gitlab.com/ArkHost/HelixNotes" class="secondary" target="_blank" rel="noopener">Source Code</a></div></div></article><!--]--><!----> <footer class="footer"><div class="footer-inner"><div class="footer-left"><img src="/favicon.ico" alt="HelixNotes" class="footer-icon" width="20" height="20"/> <span>HelixNotes</span> <span class="footer-sep">|</span> <a href="https://gitlab.com/ArkHost/HelixNotes" target="_blank" rel="noopener" title="GitLab" class="footer-social"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22.65 14.39 12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94L2.27 9.7l2.44-7.5c.12-.36.63-.36.75 0L7.9 9.7h8.2l2.44-7.5c.12-.36.63-.36.75 0l2.44 7.5 1.22 3.75a.84.84 0 0 1-.3.94Z"></path></svg></a> <a href="https://discord.gg/V7HYtShrB7" target="_blank" rel="noopener" title="Discord" class="footer-social"><svg width="20" height="16" viewBox="0 0 71 55" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M60.1 4.9A58.5 58.5 0 0 0 45.5.5a44 44 0 0 0-1.9 3.9 54.2 54.2 0 0 0-16.2 0A42 42 0 0 0 25.5.5 58.4 58.4 0 0 0 10.9 5 60 60 0 0 0 .4 46.8a59 59 0 0 0 17.9 9 44 44 0 0 0 3.8-6.2 38.2 38.2 0 0 1-6-2.9l1.5-1.2a42 42 0 0 0 36 0l1.5 1.2a38.5 38.5 0 0 1-6.1 2.9 43 43 0 0 0 3.9 6.2 58.7 58.7 0 0 0 17.9-9A59.5 59.5 0 0 0 60.1 5ZM23.7 38.4c-3.6 0-6.6-3.3-6.6-7.4s2.9-7.4 6.6-7.4 6.7 3.3 6.6 7.4c0 4-2.9 7.4-6.6 7.4Zm23.6 0c-3.6 0-6.6-3.3-6.6-7.4s2.9-7.4 6.6-7.4 6.7 3.3 6.6 7.4c0 4-2.9 7.4-6.6 7.4Z" fill="currentColor"></path></svg></a> <a href="https://mastodon.social/@HelixNotes" target="_blank" rel="me noopener" title="Mastodon" class="footer-social"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z" fill="currentColor"></path></svg></a> <a href="https://www.reddit.com/r/HelixNotes/" target="_blank" rel="noopener" title="Reddit" class="footer-social"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z" fill="currentColor"></path></svg></a></div> <div class="footer-right"><a href="/faq">FAQ</a> <a href="/contributors">Contributors</a> <a href="/why-i-built-helixnotes">Why HelixNotes?</a> <a href="/docs">Docs</a> <a href="/privacy">Privacy</a> <span class="footer-sep">|</span> <a href="https://gitlab.com/ArkHost/HelixNotes" target="_blank" rel="noopener">Source</a> <a href="https://gitlab.com/ArkHost/HelixNotes/-/releases" target="_blank" rel="noopener">Releases</a> <a href="https://gitlab.com/ArkHost/HelixNotes/-/blob/main/LICENSE" target="_blank" rel="noopener">License</a> <span class="footer-sep">·</span> <span>Built by Yuri Karamian - Powered by <a href="https://arkhost.com" target="_blank" rel="noopener">ArkHost</a></span></div></div></footer> <!--[-1--><!--]--><!--]--><!--]--> <!--[-1--><!--]--><!--]-->
97			
98			
98<script>
99				{
100					__sveltekit_1rz0pg = {
101						base: new URL(".", location).pathname.slice(0, -1)
102					};
103
104					const element = document.currentScript.parentElement;
105
106					Promise.all([
107						import("./_app/immutable/entry/start.DeFw0Ezb.js"),
108						import("./_app/immutable/entry/app.CKef_tJW.js")
109					]).then(([kit, app]) => {
110						kit.start(app, element, {
111							node_ids: [0, 7],
112							data: [null,null],
113							form: null,
114							error: null
115						});
116					});
117				}
118			</script>
118
119		</div>
120	</body>
121</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.