Starbound

July 4, 2026 · Starbound Dev Universe

Building the Blog Machine With Astro and TypeScript

The devlog system now has a practical publishing loop: TypeScript reads safe commit history, Astro renders posts and RSS, and every public entry gets reviewed media instead of raw agent output.

Starbound hero artwork used as a temporary devlog system image

Hook

The devlog needed its own production system before it could become a habit.

I do not want these posts to be random journal entries, and I do not want them to be pasted commit logs. The goal is a repeatable loop: collect safe history, draft a packet, review the media, rewrite the narrative by hand, then publish only what is public-safe and useful to builders.

What Changed

The devlog now lives in the website workspace as an Astro content collection. Posts have frontmatter for title, date, series, status, commit range, hero media, clips, CTA, sources, and title options. Astro renders the index, individual posts, and RSS.

The generator moved to TypeScript so the tool, schema, and site live in the same ecosystem. It can collect commit history, classify changes, suggest review media, produce a draft packet, and block local publishing until a post is marked approved.

Codex And Godot Workflow

This system is built around a constraint: Codex output is source material, not public material.

That distinction matters. Internal transcripts can contain machine-specific details, unfinished claims, and material that belongs in review rather than publication. The devlog tool uses a safe-list and the posts still need human review. The public artifact should describe actions and outcomes, not dump the agent transcript.

Visible Result

The visible result is this hub: a devlog index, post pages, RSS, approved media folders, and a local command path for generating future draft packets.

It also changed the way I think about videos. OBS clips are not separate marketing chores. They are part of the evidence loop: show Codex working, show the Godot result, add captions, then link the deeper post.

What Broke Or Surprised Me

The surprise was that Python was not the right long-term home for the tool.

The first version worked, but the site had already moved to Astro. Keeping the generator in TypeScript reduces split ownership: the same workspace understands the content schema, post renderer, RSS, and command scripts. For a solo build-in-public pipeline, fewer boundaries means fewer excuses not to post.

Next Experiment

The next improvement is cadence. Every meaningful workstream should end with a small package: one post, one hero image, one short clip plan, one YouTube description, and one honest note about what still fails.

Clip Plan

Sources

Commit range: astro-typescript-devlog-systemDevlog home