Skip to content

Repository files navigation

My personal site. Writing, notes, photography, and a few other things.

Built with Astro, TypeScript, and Tailwind CSS. Hosted on Cloudflare Pages.

How it works

Posts and notes are Markdown files. The content CLI creates them with the frontmatter the site needs, and Astro builds the pages and RSS feeds.

I also manage photos in Capture One. Photo sync reads my collections and JPEG exports, generates images for the site, and stores the metadata in SQLite. Astro builds the photo pages from that database. The images are served from R2, or from local files during development.

Photo pages are currently disabled while I cull and re-edit photos after moving from Lightroom.

The CLI can also publish notes to Bluesky from the same Markdown files. It compares them with existing posts so I can review changes before publishing. There’s a record planner for Refrakt too, though publishing photos there isn’t implemented yet.

Bluesky publishing uses an app password for now. I might add OAuth later.

For the Markdown readers and writers, see notes.ts and posts.ts. The loaders connect those functions to Astro.

Run locally

With a current version of Node.js and pnpm:

pnpm install
pnpm dev
pnpm content       # Content tools
pnpm build         # Static build
pnpm test          # Tests
pnpm lint          # Lint and type checks

Settings are in src/site.config.ts. Photo pages need a local catalog and exported images; see the photo setup.

About

Personal site

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages