Hello, world

The first post — why this blog exists and how it is built.

I started this blog to have a place of my own to write about software: architecture decisions, things that broke in production, and whatever I'm learning.

What runs here

Nuxt with Nuxt Content for the Markdown posts, Nuxt UI for the interface, and @nuxtjs/i18n for the two languages. Deployed on Vercel with no extra config.

// every post is a file at content/blog/<locale>/<slug>.md
const posts = await queryCollection('blog')
  .where('path', 'LIKE', '/blog/en/%')
  .order('date', 'DESC')
  .all()

The same post in both languages shares one filename, so switching languages keeps you on the same page.

Back to posts