Skip to content

1 min read

Hello, world

A fresh start — and a template showing everything a post can do.

On this page

Welcome to the new blog. This post doubles as a template: copy this folder, rename it, and start writing.

Frontmatter

Every post starts with frontmatter that is validated at build time:

title: Hello, world # required
description: One sentence. # required, used for cards, SEO and RSS
date: 2026-11-12 # required
updated: 2026-11-20 # optional
tags: [Meta, Next.js] # optional
draft: true # optional — visible in dev, hidden in production
cover: ./cover.png # optional image next to this file

Code

Syntax highlighting works in both themes:

src/features/posts/core.ts
export function sortByDateDesc<T extends PostLike>(posts: readonly T[]): T[] {
  return [...posts].sort((a, b) => b.date.localeCompare(a.date));
}

Inline code like pnpm dev works too.

Math

Inline math: 216=655362^{16} = 65536 addressable locations. Display math:

CPU time=instructions×CPI×clock period\text{CPU time} = \text{instructions} \times \text{CPI} \times \text{clock period}

Images

Put images next to the post and link them relatively — they are copied and fingerprinted at build time.

Content flows from MDX files through Velite into Next.js pages

Callouts

Run pnpm dev and edit this file — the page reloads as you type.