<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>SQLite on Omegion</title><link>https://omegion.dev/tags/sqlite/</link><description>Recent content in SQLite on Omegion</description><generator>Hugo</generator><language>en-us</language><copyright>Omegion</copyright><lastBuildDate>Tue, 06 Oct 2026 13:36:19 +0200</lastBuildDate><atom:link href="https://omegion.dev/tags/sqlite/index.xml" rel="self" type="application/rss+xml"/><item><title>Loggo: A Self-Hosted Note App for Engineers</title><link>https://omegion.dev/2026/10/loggo-a-self-hosted-note-app-for-engineers/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://omegion.dev/2026/10/loggo-a-self-hosted-note-app-for-engineers/</guid><description>Why I built my own note app after pen and paper and a pile of other apps stopped working for my daily notes.</description><content:encoded><![CDATA[<h2 id="introduction">Introduction</h2>
<p>I needed to take notes every day, so I started the way most people do: pen
and paper. It worked for a while. Then two things got annoying. I couldn&rsquo;t
search old notes, and I couldn&rsquo;t put a code block in them. For an engineer,
that&rsquo;s a real problem. I tried a lot of note apps after that. None of them
fit me 100%. So I built <a href="https://omegion.dev/projects/loggo/">Loggo</a>
, a
self-hosted note app for engineers, and it&rsquo;s open source.</p>
<a class="link-row-ext project-card" href="/projects/loggo/">
  <img class="project-card-logo" src="/projects/loggo/logo_hu_e69e4147f0193116.png" width="128" height="128" alt="">
  <div class="link-row-ext-inner">
    <span class="project-card-title" style="view-transition-name: vt-title-ecaed81585dc9614aec0e4718233d6ef">Loggo</span>
    <div class="project-card-meta">Launched September 2026</div>
    <div class="link-row-desc">Self-hosted note app for engineers. A day is a board; you drop Logs onto it all day.</div>
  </div>
  <span class="ext-arrow">&#8599;</span>
</a>
<h2 id="a-day-is-a-board">A day is a board</h2>
<p>The idea is simple. Every day is a board. Through the day, you drop Logs
onto it. A Log can be a thought, a command, a task, a snippet. I don&rsquo;t have
to decide where something goes. It goes on today&rsquo;s board.</p>
<p>The board is an infinite canvas. You can drag Logs around and resize them,
or switch to a masonry layout when you want something tidier. You can also
move between days with keyboard shortcuts.</p>
<h2 id="writing-and-finding-things">Writing and finding things</h2>
<p>Each Log is written in a Markdown editor, so code blocks work the way I
wanted from day one. There are tags and tasks, with due dates shown in the
editor. You can attach files, and tables and YouTube links render inside the
Log. Search is full-text and uses SQLite FTS5, which fixes the thing I hated
most about paper.</p>
<p>Workspaces let you keep personal and professional notes apart. Daily
templates keep each day&rsquo;s entries consistent.</p>
<h2 id="notes-stay-as-plain-files">Notes stay as plain files</h2>
<p>This is the part I care about most. Loggo uses SQLite for search and
metadata, but every Log is also written as a Markdown file with YAML
frontmatter, in a folder you can open without the app. The path includes the
date, like <code>workspaces/&lt;slug&gt;/YYYY/MM/DD/&lt;ulid&gt;-&lt;slug&gt;.md</code>.</p>
<p>If the database breaks, the files are still there. The frontmatter carries
enough information that <code>loggo rebuild</code> can build the database again from
the folder. Loggo never runs git on that folder. Committing it is up to me.</p>
<h2 id="built-on-what-i-already-had">Built on what I already had</h2>
<p>Loggo is the third one after <a href="https://omegion.dev/projects/recipery/">Recipery</a>

and <a href="https://omegion.dev/projects/bookhoarder/">Bookhoarder</a>
. By the time I
started it, I already had a working stack from those two: Next.js,
TypeScript, a pluggable storage layer (local disk or S3-compatible), and a
way to ship it as a Docker container, on Cloudflare, or on Kubernetes. I
didn&rsquo;t want to throw that away and start from zero. So I built on top of it.</p>
<p>One thing is different this time. Recipery and Bookhoarder have no database.
Loggo has one, because full-text search needs it. SQLite needs a single
writer, so the Kubernetes setup runs one replica with a persistent volume.
The Cloudflare version is a read-only demo, using D1 and R2.</p>
<h2 id="run-it">Run it</h2>
<div class="code-block">
  <div class="code-block-header">
    <span class="code-block-lang">sh</span>
    <button type="button" class="code-copy" aria-label="Copy code">
      <span class="code-copy-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"/></svg>
</span>
      <span class="code-copy-icon code-copy-icon-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
</span>
      <span class="code-copy-label">Copy</span>
    </button>
  </div>
  <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker run -d <span class="se">\
</span></span></span><span class="line"><span class="cl">  --name loggo <span class="se">\
</span></span></span><span class="line"><span class="cl">  -p 3000:3000 <span class="se">\
</span></span></span><span class="line"><span class="cl">  -v /path/to/your/data:/app/data <span class="se">\
</span></span></span><span class="line"><span class="cl">  ghcr.io/loggo-dev/loggo:latest</span></span></code></pre></div>
</div>
<p>Open <code>http://localhost:3000</code> and you have today&rsquo;s board. The
<a href="https://docs.loggo.dev/deployment/docker/" target="_blank" rel="noopener noreferrer">Docker guide</a>
 has the full
setup, and the <a href="https://docs.loggo.dev" target="_blank" rel="noopener noreferrer">docs</a>
 cover the rest. The code is on
<a href="https://github.com/loggo-dev/loggo" target="_blank" rel="noopener noreferrer">GitHub</a>
 under AGPL-3.0.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Paper couldn&rsquo;t search or hold code, and the other apps never fit. Loggo
does both, and my notes are plain Markdown files I can open without it. If I
ever stop using the app, I lose nothing.</p>
]]></content:encoded></item><item><title>Loggo</title><link>https://omegion.dev/projects/loggo/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>https://omegion.dev/projects/loggo/</guid><description>Self-hosted note app for engineers. A day is a board; you drop Logs onto it all day.</description><content:encoded>&lt;p>Loggo is a self-hosted note app for engineers. Every day is a board, and you
drop Logs onto it as the day goes. Logs are written in a Markdown editor with
code blocks, tags, tasks with due dates, and file attachments. The board is
an infinite canvas, with a masonry layout as an option.&lt;/p>
&lt;p>Search is full-text through SQLite FTS5. Every Log is also mirrored to a
Markdown file with YAML frontmatter, so the notes stay readable without the
app and the database can be rebuilt from the files. It supports multiple
workspaces and daily templates. It runs as a Docker container, on Kubernetes,
or as a read-only demo on Cloudflare Workers. Licensed under AGPL-3.0.&lt;/p>
</content:encoded></item></channel></rss>