Back to blog

Starting This Blog

1 min read
#Announcement#Next.js

Introduction

This blog runs on Next.js 16 and Cloudflare Workers. Every post is a Markdown file managed in the repository — publishing is just a git push.

Why build-time rendering?

Cloudflare Workers does not allow eval / new Function at runtime. So Markdown is converted to HTML at build time, with syntax highlighting baked in.

// velite processes content type-safely at build time
const posts = defineCollection({
  name: "Post",
  pattern: "blog/**/*.md",
  schema: s.object({
    title: s.string(),
    date: s.isodate(),
    body: s.markdown(),
  }),
});

At runtime the server only injects HTML — fast and Workers-compatible.

What's next

  • Project write-ups
  • Notes on tricky technical problems
  • Things I learn along the way

Thanks for reading!