Welcome to the new blog. This site is a TanStack Start app running on Cloudflare Workers, so every page is server-rendered close to the reader.
Why rebuild?
- I wanted one codebase for the portfolio and the blog.
- Posts should be plain Markdown files that live in git.
- Deploys should be a single command.
How posts work
Each post is a Markdown file in src/content/posts/. A server function reads
and renders it, and TanStack Query caches the result on the client so moving
between pages feels instant.
export const Route = createFileRoute('/blog/$slug')({
loader: ({ context, params }) =>
context.queryClient.ensureQueryData(postQueryOptions(params.slug)),
})
More soon.