---
title: My Website
description: I’m cultivating my own digital garden, a small piece of the internet.
pubDate: 2026-03-26
heroImage: ./my-website.png
heroAlt: My Website
category: en/development
tags:
  - astro
  - typescript
url: 'https://adrian-altner.de'
repo: 'https://git.altner.cloud/adrian/adrian-altner.de'
---

I wanted a digital home that wasn't a timeline on someone else's platform — a slow, owned place for blog posts, notes, links, and photos. This site is that place.

It's built with [Astro](https://astro.build) on a Node.js standalone adapter, TypeScript throughout. Most routes are statically prerendered; a handful of pages opt into server-side rendering where they need it. Content runs through Astro's content collections with Zod schemas, which means frontmatter is type-checked at build time — a typo in a `pubDate` fails the build rather than producing a broken page.

The site leans into [IndieWeb](https://indieweb.org) principles: posts get syndicated to Mastodon via a custom POSSE script, incoming webmentions are fetched at build time from webmention.io and rendered on the post they reference, and microformats2 markup runs end-to-end for anyone parsing the HTML.

Photos live as JPG files with JSON sidecars, organised into nested collections with breadcrumb navigation — no database, no image CDN, just files on disk. RSS feeds exist for every content type.
