Photography
8 items
Blog
-
Syndicating Photos to Flickr with POSSE
March 21, 2026How I built a script that keeps Flickr in sync with my site — uploading new photos, deleting removed ones, moving photos between albums, and writing Flickr IDs back into sidecar files.
-
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.
-
Vision Rate-Limit Runbook for Photo Sidecars
March 15, 2026A practical checklist for running scripts/vision.ts on larger photo batches without failing on 429 TPM limits.
-
Generating Photo Sidecars Locally Before a VPS Deploy
March 14, 2026How to run Vision metadata generation against an Obsidian photo library locally and sync the generated JSON sidecars to a VPS.