Sam Breed

Product Developer, Investor

← wiki

Building this Wiki

The map is not the territory

First posted on

Last updated on

Three things were on my mind of late:

  1. I don’t ever seem to have the patience or wherewithal to write an entire blog post.
  2. I have been getting a lot of use, joy, and mileage out of my personal notebook.
  3. Knowledge graphs and text processing have been frequent themes in my work over the last few years.

Then, I was inspired by:

Conclusion: I’m starting a wiki, because it’s never been done before.

Table of Contents

1. Failing as a blogger

I have wanted to build a hypertext for a long time. I built my first website around 1996 on Geocities and I have been trying to make places made of language ever since.

I blogged for about 6 months in 2008 and 2009. From 2011-15, my website was just animations and ascii art. Sometimes there were even links. Since around 2017 I’ve had a version of this website running, with the occasional blog post here and there.

In the past year, I got inspired to dump my tab debt (almost) every month. This practice serves two purposes: active, chronological bookmarking; and an opportunity to gather a thought or two around a link. If I want to.

2. Note taking rules

Astro 2.0 added some interesting content management features. Namely, you can keep standalone directories of markdown files that are logically addressable but entirely separate from routes. Databases are cool and all, but having solid conventions for addressing flat-file content will get you a lot of mileage.

Earlier versions had content and code living together, which made me lean towards editing posts in VS Code, which, well, feels more like coding than writing or taking notes. There’s just something about an IDE that makes it hard for me to use it as a writing surface. Too many bells and whistles, not to mention having to switch off Co-Pilot when I’m authoring markdown.

Having a separate content directory makes it perfect for opening in a note taking app like Obsidian. This makes it easier for me to write, because I’m already using Obsidian to take notes every day.

A brief history of my preferred note-taking apps, 2013-2023:

3. A modest personal wiki

I’ve had the tagline “modest personal website” up for a year or two. It means that I want something that’s simple, unfancy, and hand built. I strive to make a little website that changes when I want it to change, and that has value to one person: me.

My private notebook has become the main place where I think, document, and plan. Working asynchronously with a small, distributed team means that most of my correspondence with colleagues is in writing, and I don’t like making people work hard to get the meaning. Rubber-ducking a message is

In that spirit, I would like to build and maintain a little knowledge graph in public.

4. Build Notes

I switched over the site over to Astro after 5 good years on Next.js. Astro has been a project that I’ve been closely tracking since it’s early releases. It takes a lot of the best parts of modern frameworks and seeks to tie them together with something approaching a compiler for your website.

In many ways, Astro paved a cowpath that I was already on. In 2017 I used unify, remark, and rehype to create a way in Next.js to author posts directly in markdown. This work presaged things like MDX and used the same toolchain that powers markdown compilation in Astro. I used projects in the unified ecosystem several other times, so having it baked into the framework is a bonus.

Custom Elements

There are a few Custom Elements floating around the site. I wrote about them in Little Web Components. They are:

Below the list of categories at the bottom of the page you’ll see a search form. This is my vibe-based search and will return similar posts. It’s like full text search, but much worse!

Categories