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>;
}