Personal site and digital garden — a small corner of the internet for things created, written, and thought about.
A digital garden: loosely organized, openly evolving content that grows over time rather than being published as finished work. Content lives in /src/content/garden, in Norwegian, English, or Japanese. Each piece has a type, shown as its colour:
- longread (Langlesing): something longer to read, like an essay or a story
- note (Notat): something short to skim, like study notes
- art (Kunst): something to look at, like renders, photos or drawings
- interactive (Interaktiv): something to play with, like a visualization (gets the wide layout)
What a piece is about goes in its tags.
Each piece has a growth status: seedling 🌱 (rough idea), budding 🌿 (taking shape), or evergreen 🌳 (mature).
- Astro — framework
- React 19 + MDX — interactive components and rich content
- D3 — data visualizations
- KaTeX — math rendering
- Vercel — hosting
src/
├── content/
│ ├── garden/ # Garden pieces (.md / .mdx)
│ └── talks/ # Talk metadata (.md)
├── pages/
│ ├── index.astro # Home — recent garden items + talks
│ ├── about.astro
│ ├── garden/ # Garden index + item pages
│ ├── rss.xml.ts # RSS feed
│ └── hulen.ics.ts # iCal feed (scraped from Ticketco)
├── components/ # Astro + React components
├── layouts/
└── styles/
└── global.css # Design tokens
Create a .md or .mdx file in src/content/garden/. Required frontmatter:
---
title: "Your title"
pubDate: 2026-04-28
type: longread # longread | note | art | interactive
lang: no # no | en | ja
status: seedling # seedling | budding | evergreen
isDraft: true # omit or set false to publish
excerpt: "Optional short summary shown in the garden index"
tags: [optional, tags]
---Deployed to truls.dev via Vercel. Pushes to main deploy automatically.