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:
- Product notes — what we're shipping, what we cut, and why.
- Technical posts — how we built specific things. Plenty of code.
- Field reports — what happens when bosun.bot meets actual saltwater.
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.