I built my own second brain software tool

I needed a good place for notes, so I built my own tool. If you want to give it a try you’ll find the project on Github in my X1 Repo.

Second Brain Screenshot

Why Build this Tool?

Ten years ago I used Dokuwiki for my website. I stored a lot of random notes there and I was productive using it. But, Dokuwiki seems to be getting long in the tooth and I’m writing most of my technical documentation in Markdown these days. My ideal tool is web based, minimalist, and plain text. I’d also like to keep a lot of notes that I don’t want to publish online. Maybe I’ve got a little bit of “not invented here” syndrome. In any case, I wanted to build a tool that will work for me. I’ve also got a dream of expanding the tool into a niche tool that works well for technical teams and selling it as SAAS.

Ponder Came First

For capturing notes I started with a little app I built called Ponder. Ponder is inspired by my nostalgia for the old AlphaSmart 2000 word processor. The app was created using a simple HTML interface with a bit of JavaScript to store the text in the browsers storage. I’ve now been using that for a couple years and it works great as a scratch pad for me. With this project I’ve decided to go a step further and build something similar for all of my text.

PHP is my Hammer

I’ve been programming in PHP professionally for a long time so it’s often the hammer I reach for when I want to build something quickly. I sat down and coded up a very simple API for this tool. I wasn’t sure the exact design paradigm I wanted to use so the code is a mess right now, but It’s usable and I wrote the first draft of this blog post in it.

htmx Frontend

I’ve recently become interested in htmx. It allows you to build user interfaces with plain old html and attaches API’s via attributes. I thought this would be a good tool to try it on. By the time I made that decision I had already created the HTML and the first JavaScript function. So, the front-end is htmx with a little pure JS sprinkled in.

Sqlite Storage

I’ve decided to store all my text in sqlite. PHP has built-in and easy to use support for the format and I like the idea of a single file. I store all my files in Dropbox these days, which gives me automatic cloud backups. As a result, my sqlite file is synced with that tool and I can roll back to older versions as needed. I also plan to start creating dated snapshots before I get too many documents here.

I could have stored my data in simple text files, and I’m still considering exporting plain text too, but I thought sqlite would give me some other advantages.

What’s Next?

I’ll probably host this from a little server I run at home and then just use it for a little while. I need to find where it shines and where the holes are for me. From there I’ll slowly expand it to have the features I need for my own day-to-day use.


Joel's Newsletter

Get a monthly digest of what I'm up to.

Subscribe by Email