Astro
12 items
Blog
-
Resolving Obsidian Wiki-Links in Astro with a Custom Remark Plugin
March 26, 2026How I wrote a small Remark plugin that converts [[wiki-links]] from Obsidian into proper HTML links at build time — without changing how I write in the editor.
-
Syndication Links Without Frontmatter Editing
March 23, 2026How .bluesky-posted.json auto-populates u-syndication links on every article and note page — no manual frontmatter required after each post.
-
Microformats2: Marking Up Posts for the IndieWeb
March 23, 2026How h-entry, h-feed, and the rest of the MF2 vocabulary make articles, notes, and photos machine-readable without changing how they look.
-
Obfuscating Contact Data on a Static Site
March 23, 2026How I protect email addresses and personal contact details on a static Astro site from harvesting bots, using a combination of Base64 obfuscation and a CSS RTL trick that also defends against copy-paste.
-
Live Webmentions Without SSR: A Hybrid Approach
March 23, 2026Upgrading the WebMentions component from build-time-only to a hybrid model: static HTML renders instantly, a silent client-side fetch updates the count without a redeploy.
-
Adding Notes, Links, and Archives
March 21, 2026Three new content sections built on Astro content collections — short-form notes, a curated link log, and a unified chronological archive.
-
Distinguishing Collection Sets from Category Collections
March 21, 2026A single boolean flag in the frontmatter separates navigational collection nodes from publishable photo sets — keeping the archive clean without adding structural complexity.
-
Structuring Photos as a Collection Tree
March 21, 2026How the photos section grew from flat albums into a recursive collection hierarchy with nested routes, breadcrumbs, and a tag browsing system.
-
Building the Photo Stream
March 19, 2026How the photos section works — JSON sidecars from Vision, import.meta.glob, Flickr's justified-layout, and batch loading with IntersectionObserver.
-
Migrating the Vision Script from OpenAI to Claude
March 19, 2026How scripts/vision.ts was rewritten to use the Anthropic SDK with claude-opus-4-6 and tool use instead of OpenAI's json_schema response format.
-
Photo Albums with Astro's Content Layer
March 19, 2026How the albums section is structured — from content collection to justified grid, album-scoped photo routes, and a sub-nav to switch between stream and albums.
-
How to build your Website from Local Setup to VPS
March 1, 2026A complete local setup for running an Astro SSR site in Podman with the Node standalone adapter.