← All posts

Welcome to the bosun.bot blog

This is the first post on the bosun.bot blog. Future posts will live alongside this one, all written as markdown files in content/blog/ and built into static HTML at deploy time.

Why a blog

We spend most of our time on the product itself, but a lot of what we learn — from sea trials, from boatyards, from the long evenings spent debugging an instrument feed at 3am — never escapes our heads. The blog is where we want to share those stories.

Expect a mix of:

How posts are built

Every post is a .md file with a YAML frontmatter header:

---
title: My new post
description: One-line hook for SEO and link previews.
date: 2026-06-01
tags: [release, navigation]
---

At build time, scripts/build-blog.ts walks content/blog/, parses each file with gray-matter, runs the body through marked, highlights code blocks with shiki, and writes a fully-formed HTML page into dist/blog/<slug>.html — plus a fresh listing at /blog.

The Hono server picks up those files automatically. There's no separate database, no CMS, no runtime markdown rendering, and no deploy-time hook to wire — just git push.

A code sample, because

// Server reads a per-route HTML map at boot. Blog posts get
// served from /blog/<slug> via the same lookup that powers the
// rest of the site.
const html = htmlByPath.get(`/blog/${slug}`)
return c.html(html ?? '404')

That's it for the welcome. Subscribe via the pre-order page if you want to be told when the next one lands.