This is the source code of my personal website, were you're going to find my projects, who am I, and how to find me.
Powered by Steno and Deno
The development command is:
deno task devWhich steno serves the site with live reload, usually at http://localhost:5735.
While you obviously build it with:
deno task buildThe static site is written to dist/.
Other cool commands are:
deno task doctor
deno task previewcontent/
.steno/config.yml # site, theme, and collection configuration
blog/ # Markdown posts
*.md # public routes
theme/
styles.css # Tailwind entry and every site style
layouts/ # Tau layouts
components/ # shared Tau components
scripts/ # browser scripts, written in TypeScript (source of truth)
assets/ # fonts, images, and *generated* browser JS — don't hand-edit assets/*.js
I think it's clear why stuff are where they are.
Add posts under content/blog/ with this frontmatter:
---
layout: article
title: My Post
date: 2026-07-31
tags: [steno, web]
draft: false
archived: false
description: A short search and social description.
canonical: https://gxbs.dev/blog/my-post
image: https://gxbs.dev/assets/og/blog/my-post.png
---Drafts are omitted from production builds. Archived posts remain public and are
listed under /blog/archive.