Hello, world
Welcome to the blog. This site is built with Astro, written in Markdown,
stored on GitHub, and deployed to Cloudflare Workers on every push to main.
Writing a post
Add a Markdown (.md) or MDX (.mdx) file to src/content/blog/:
---
title: 'My next post'
description: 'One-line summary for the index page and RSS.'
pubDate: '2026-11-10'
tags: ['rust', 'databases']
draft: true # visible in `npm run dev`, hidden in production
---
Post body goes here.
The file name becomes the URL, so my-next-post.md is served at /blog/my-next-post/.
Code blocks
Syntax highlighting is built in:
export async function fetchJson<T>(url: string): Promise<T> {
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json() as Promise<T>;
}