No description
  • HTML 79%
  • Astro 13.4%
  • MDX 2.5%
  • TypeScript 2.4%
  • CSS 1.6%
  • Other 1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Eddy Hintze 9d08729b03
All checks were successful
Build and deploy / build (push) Successful in 47s
Build and deploy / deploy (push) Successful in 2s
projects: note filament for er11 engrave settings
2026-10-16 18:25:42 -04:00
.forgejo/workflows deploy: build nginx image and trigger docker-neon deploy 2026-10-16 18:11:10 -04:00
.vscode vscode: recommend the mdx extension 2026-10-11 14:59:34 -04:00
design design: archive tag filter and search labs 2026-10-11 23:57:12 -04:00
docker deploy: build nginx image and trigger docker-neon deploy 2026-10-16 18:11:10 -04:00
public projects: add er11 collet tray 2026-10-16 17:24:45 -04:00
src projects: note filament for er11 engrave settings 2026-10-16 18:25:42 -04:00
.dockerignore deploy: build nginx image and trigger docker-neon deploy 2026-10-16 18:11:10 -04:00
.gitignore added a stagging folder to ignore. 2026-10-16 17:18:33 -04:00
.pre-commit-config.yaml site: scaffold astro lab-notebook template with sample content 2026-10-10 00:15:31 -04:00
.prettierignore design: archive site and identity explorations 2026-10-10 11:36:04 -04:00
.prettierrc.json site: scaffold astro lab-notebook template with sample content 2026-10-10 00:15:31 -04:00
AGENTS.md agents: note how staging images and files get processed 2026-10-16 17:24:45 -04:00
astro.config.mjs site: set domain to x0d.sh 2026-10-16 18:10:59 -04:00
Dockerfile deploy: build nginx image and trigger docker-neon deploy 2026-10-16 18:11:10 -04:00
justfile search: add a pagefind command palette 2026-10-12 00:12:19 -04:00
package-lock.json search: add a pagefind command palette 2026-10-12 00:12:19 -04:00
package.json search: add a pagefind command palette 2026-10-12 00:12:19 -04:00
README.md docs: explain where each kind of content goes 2026-10-11 14:59:24 -04:00
tsconfig.json site: scaffold astro lab-notebook template with sample content 2026-10-10 00:15:31 -04:00

personal-website

Eddy's lab notes: projects, a journal, and how everything is set up. Built with Astro as plain static files, so it can be hosted anywhere.

just setup && just dev

Editing content

Everything is markdown in src/content/:

Folder What Shows up at
projects/ One file per project (homelab's rack in frontmatter) /projects/<file>/
journal/ One file per entry (just new-entry x) /journal/<file>/
etc/ dev, pack, shop, services… (gear in frontmatter) /etc/<file>/
pages/ about.md /about/

Frontmatter is validated by the schemas in src/content.config.ts, so a typo fails the build with the file and field named. draft: true hides an entry (project, journal entry or etc page) from builds but keeps it visible in just dev, marked DRAFT.

Where things go

Sort by how something changes over time, not by its topic:

If I would… It goes in For example
overwrite it when it changes etc/ dev setup, desk, pack list, services
add to it over time projects/ homelab, pi shelf
finish it once, with a date journal/ a canoe trip, a one-off write-up
  • etc is a "uses" page: a high-level list of what I have right now. No history, stories or how-tos. When a page wants a "what changed" section, it's a project.

  • Projects are living pages. Long-running ones keep this section order, with a TOC at the top:

    1. Now: the current state.
    2. Notes: reference I keep coming back to.
    3. Changelog: newest first, one dated heading per burst of work (### 2024-10: added a compute node), so every entry has a link.

    A TOC shows up once a project has two or more ## sections. In an .mdx project, <RackDiagram />, <ServerList /> and <PoolList /> draw the homelab's rack data wherever they're placed.

    Quick one-offs and shelved projects just have less. Experiments are their own projects with their own status; when one goes into service it's marked done and gets a Changelog line in the project it joined.

  • Journal entries are dated and done once they're published: trips, and project updates too big for a Changelog entry (the Changelog line links to it).

Deploying

just build writes the site to dist/. Upload that folder to any static host. Set site in astro.config.mjs to the real domain first; the sitemap uses it.