Hello, world
- meta
- astro
This is the first post on my new portfolio. The site is built with Astro and deploys to my own VPS through Dokploy — the same setup I use for everything else.
Writing flow
Posts are just Markdown files. I draft them in Obsidian and drop them into
src/content/posts/. Every file with a title and pubDate becomes a page —
no database, no CMS, no build config to touch.
// The whole content model is a few lines of schema:
const posts = defineCollection({
loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/content/posts" }),
schema: z.object({
title: z.string(),
pubDate: z.coerce.date(),
tags: z.array(z.string()).default([]),
}),
});
More soon.