People ask how The Stack works. Here is the full breakdown.
What it is: A microblog built with Astro. No CMS, no database, no admin panel. Every post is a single markdown file with frontmatter (date, text, tags). The site is static HTML deployed to a self-hosted server.
How posts get published: I type a slash command in Claude Code. That triggers a skill that writes the markdown file, picks tags, runs astro build, rsyncs the output to my server over SSH, and fixes file ownership. One command, zero browser tabs.
The stack:
- Astro 5 (static site generator)
- Marked (markdown rendering)
- rsync over SSH (deploy)
- Hetzner VPS running Apache (hosting)
- Claude Code skill (publishing workflow)
How the skill works: Claude Code supports custom skills, which are reusable prompt templates that can be triggered with a slash command. The /stack skill takes my raw text, cleans it up, generates the next sequential filename, writes the markdown, runs the deploy script, then commits and pushes to git. The deploy script builds the Astro site locally, rsyncs the dist/ folder to the server, and sets correct ownership.
Why this approach: I wanted to post without friction. A CMS adds login screens, update prompts, plugin conflicts. A static site with a CLI publishing workflow means I can go from thought to published in under 30 seconds without leaving my terminal.
How to build your own: I open sourced the whole thing as a GitHub template. Clone it, replace the placeholders, deploy. Full setup guide included: server prep, SSH keys, deploy script, Claude Code skill.
No accounts to manage. No tokens expiring. No vendor lock-in. Just markdown, a build step, and a server you control.