<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>devlog</title>
		<description>Changelog and devlog for ewan's projects.</description>
		<link>https://devlog.croft.click</link>
		<atom:link href="https://devlog.croft.click/rss.xml" rel="self" type="application/rss+xml"/>
		<language>en-gb</language>
		<item>
			<title>Vercel 504s: CDN Caching, Timeout Guards, DID Caching</title>
			<description>A second pass at the 504 problem — Cache-Control headers for Vercel's edge CDN, AbortController timeouts on external fetches, and a DID document cache.</description>
			<link>https://devlog.croft.click/2026/06/06/vercel-caching-timeout-guards</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/06/06/vercel-caching-timeout-guards</guid>
			<pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>infrastructure</category>
			<category>performance</category>
			<category>atproto</category>
		</item>
		<item>
			<title>Recent Infrastructure and Feature Updates</title>
			<description>A summary of significant infrastructure improvements and feature updates made between June 3 and June 6, 2026.</description>
			<link>https://devlog.croft.click/2026/06/06/recent-updates</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/06/06/recent-updates</guid>
			<pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>infra</category>
			<category>features</category>
		</item>
		<item>
			<title>Mitigating 504 Gateway Timeouts</title>
			<description>Addressing persistent 504 Gateway Timeout errors on Vercel by optimising AT Protocol data fetching.</description>
			<link>https://devlog.croft.click/2026/06/06/mitigating-504-timeouts</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/06/06/mitigating-504-timeouts</guid>
			<pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>infra</category>
			<category>performance</category>
		</item>
		<item>
			<title>Malachite: ATProto OAuth CLI and did:web Support</title>
			<description>Malachite gains OAuth-based CLI authentication for ATProto and did:web DID resolution, alongside a restructured web frontend.</description>
			<link>https://devlog.croft.click/2026/06/06/malachite-oauth-did-web</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/06/06/malachite-oauth-did-web</guid>
			<pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
			<category>malachite</category>
			<category>atproto</category>
			<category>pkgs</category>
			<category>authentication</category>
		</item>
		<item>
			<title>Brand Kit Page and Footer Contact Email</title>
			<description>Added /site/design as a brand reference and a contact email to the site footer.</description>
			<link>https://devlog.croft.click/2026/06/06/brand-kit-footer-contact</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/06/06/brand-kit-footer-contact</guid>
			<pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
		</item>
		<item>
			<title>Website Pagan Symbols and Support Overhaul</title>
			<description>Integrated mystical pagan symbols into UI and overhauled support page with new patronage components.</description>
			<link>https://devlog.croft.click/2026/05/30/website-pagan-support-overhaul</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/30/website-pagan-support-overhaul</guid>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
		</item>
		<item>
			<title>Social Sync v0.5.0</title>
			<description>Rebranded to Social Sync, implemented new consent-based preferences system and improved security.</description>
			<link>https://devlog.croft.click/2026/05/30/socialsync-v0-5-0</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/30/socialsync-v0-5-0</guid>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<category>minecraft</category>
			<category>socialsync</category>
			<category>atprotocol</category>
		</item>
		<item>
			<title>pkgs Workspace and Lexicon Updates</title>
			<description>Build configuration updates for pnpm-workspace.yaml and centralization of lexicon and domain constants.</description>
			<link>https://devlog.croft.click/2026/05/30/pkgs-workspace-lexicon-updates</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/30/pkgs-workspace-lexicon-updates</guid>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>workspace</category>
			<category>lexicon</category>
		</item>
		<item>
			<title>Moon Tracker Rust Rewrite</title>
			<description>Rewrote Moon Tracker in Rust using atrium-rs, adding multi-source API with local fallback and Ollama LLM generation.</description>
			<link>https://devlog.croft.click/2026/05/30/moon-tracker-rust-rewrite</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/30/moon-tracker-rust-rewrite</guid>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<category>rust</category>
			<category>moon-tracker</category>
			<category>atprotocol</category>
		</item>
		<item>
			<title>Digital Person Faol Persona</title>
			<description>Implemented Faol persona, added Telegram bot skill, and integrated XMR donation address.</description>
			<link>https://devlog.croft.click/2026/05/30/digital-person-faol</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/30/digital-person-faol</guid>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<category>ai</category>
			<category>digital-person</category>
			<category>faol</category>
		</item>
		<item>
			<title>atpkt JVM 21 and OAuth/DPoP</title>
			<description>Build configuration updates for JVM 21 and implementation of OAuth/DPoP authentication flow.</description>
			<link>https://devlog.croft.click/2026/05/30/atpkt-jvm-oauth-dpop</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/30/atpkt-jvm-oauth-dpop</guid>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<category>atpkt</category>
			<category>auth</category>
			<category>jvm</category>
		</item>
		<item>
			<title>Support Page Modernization & Build Refinement</title>
			<description>Refactoring the support page with patronage components and resolving build failures.</description>
			<link>https://devlog.croft.click/2026/05/26/website-support-modernization</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/26/website-support-modernization</guid>
			<pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>ux</category>
			<category>maintenance</category>
			<category>svelte</category>
		</item>
		<item>
			<title>Malachite v0.4.4 — Apple Music & YouTube Music Support</title>
			<description>Adding import support for Apple Music and YouTube Music, and updating branding.</description>
			<link>https://devlog.croft.click/2026/05/26/malachite-music-services-support</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/26/malachite-music-services-support</guid>
			<pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
			<category>malachite</category>
			<category>music</category>
			<category>pkgs</category>
			<category>import</category>
		</item>
		<item>
			<title>Documentation Parity & Performance</title>
			<description>Updating Malachite documentation for new service support and optimizing client bundles.</description>
			<link>https://devlog.croft.click/2026/05/26/docsite-malachite-updates</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/26/docsite-malachite-updates</guid>
			<pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
			<category>docsite</category>
			<category>documentation</category>
			<category>performance</category>
			<category>malachite</category>
		</item>
		<item>
			<title>Toolkit Unification — Sign-out, TIDs, and Usage Analytics</title>
			<description>Unifying TID generation, adding sign-out functionality, and implementing toolkit usage analytics.</description>
			<link>https://devlog.croft.click/2026/05/24/pkgs-toolkit-unification</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/24/pkgs-toolkit-unification</guid>
			<pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>architecture</category>
			<category>analytics</category>
			<category>atproto</category>
		</item>
		<item>
			<title>Mystical Symbols & Drifting Paths</title>
			<description>Integrating pagan symbols into the website UI with randomized drifting animations.</description>
			<link>https://devlog.croft.click/2026/05/22/website-mystical-symbols</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/22/website-mystical-symbols</guid>
			<pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
			<category>animation</category>
			<category>paganism</category>
		</item>
		<item>
			<title>AI Discoverability — AGENTS.md and llms.txt</title>
			<description>Adding AGENTS.md and llms.txt files across repositories to improve AI discoverability and documentation.</description>
			<link>https://devlog.croft.click/2026/05/19/tooling-accessibility-metadata</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/19/tooling-accessibility-metadata</guid>
			<pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
			<category>tooling</category>
			<category>ai</category>
			<category>documentation</category>
			<category>pkgs</category>
		</item>
		<item>
			<title>Tourmaline Polish — PDS Rate Limiting & Component Reactivity</title>
			<description>Implementing PDS rate limiting, fixing routing issues, and refining component reactivity for Tourmaline.</description>
			<link>https://devlog.croft.click/2026/05/18/tourmaline-polish-rate-limiting</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/18/tourmaline-polish-rate-limiting</guid>
			<pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
			<category>tourmaline</category>
			<category>pkgs</category>
			<category>atproto</category>
			<category>performance</category>
		</item>
		<item>
			<title>Tourmaline v0.5.0 — Advanced Analytics & Layout Refinements</title>
			<description>Porting analytics, upgrading CTA copy, and refining mobile responsive layouts for Tourmaline.</description>
			<link>https://devlog.croft.click/2026/05/17/tourmaline-v0-5-0</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/17/tourmaline-v0-5-0</guid>
			<pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
			<category>tourmaline</category>
			<category>pkgs</category>
			<category>analytics</category>
			<category>ux</category>
			<category>responsive</category>
		</item>
		<item>
			<title>Nix Configuration Updates</title>
			<description></description>
			<link>https://devlog.croft.click/2026/05/17/nix-config-updates</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/17/nix-config-updates</guid>
			<pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
			<category>nix</category>
			<category>tools</category>
		</item>
		<item>
			<title>Faol Website — Layout Refinements & Content Expansion</title>
			<description>Refining mobile layout, adding fediverse presence, and publishing several new blog posts on Faol.</description>
			<link>https://devlog.croft.click/2026/05/14/faol-website-refinements</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/14/faol-website-refinements</guid>
			<pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
			<category>faol-website</category>
			<category>design</category>
			<category>writing</category>
			<category>atproto</category>
		</item>
		<item>
			<title>Digital Person Sync</title>
			<description></description>
			<link>https://devlog.croft.click/2026/05/14/digital-person-sync</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/14/digital-person-sync</guid>
			<pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
			<category>digital-person</category>
			<category>faol</category>
		</item>
		<item>
			<title>Website: view transitions, scroll animations, support page</title>
			<description>Added View Transitions API crossfades, scroll-triggered section reveals, a dedicated support page, and seasonal colour theme lock-in</description>
			<link>https://devlog.croft.click/2026/05/11/website-view-transitions-scroll-animations</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/website-view-transitions-scroll-animations</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline wrapped insights</title>
			<description>Minutes listened, music evolution, remarkable days, discovery, and yearly wrapped card with scroll-reveal animations</description>
			<link>https://devlog.croft.click/2026/05/11/tourmaline-wrapped-insights</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/tourmaline-wrapped-insights</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline: analysis moves to web worker</title>
			<description>Moved the entire analysis pipeline from server-side POST to a browser web worker, fixing Vercel body size limits for large scrobble histories</description>
			<link>https://devlog.croft.click/2026/05/11/tourmaline-web-worker</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/tourmaline-web-worker</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline v0.4.0 — tabs, sessions, story recap, date ranges, phases</title>
			<description>Profile redesign with tabbed layout, listening sessions, on this day, story-mode recap, date range filtering, and listening evolution phases</description>
			<link>https://devlog.croft.click/2026/05/11/tourmaline-v0.4.0</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/tourmaline-v0.4.0</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline folded into pkgs monorepo, landing-ui improvements</title>
			<description>Moved Tourmaline from standalone repo into packages/tourmaline, enhanced landing-ui with backdrop blur, nav links, snippet props, and fixed source URLs across all projects</description>
			<link>https://devlog.croft.click/2026/05/11/tourmaline-monorepo</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/tourmaline-monorepo</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tourmaline</category>
			<category>typescript</category>
			<category>svelte</category>
		</item>
		<item>
			<title>Landing-ui polish: shared layout, cross-references, icon cleanup, support consolidation</title>
			<description>LandingLayout improvements (subtitle, expanded footer, @theme bridge), cross-references between all five tools, inline symbols replaced with Lucide icons, support links consolidated to ewancroft.uk/support</description>
			<link>https://devlog.croft.click/2026/05/11/pkgs-landing-ui-polish</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/pkgs-landing-ui-polish</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>typescript</category>
			<category>svelte</category>
		</item>
		<item>
			<title>pkgs: hero SVGs, bismuth flags, croft-click devlog</title>
			<description>Added OG hero SVGs to all five project landing pages, bismuth fetch flags, and devlog project to croft-click</description>
			<link>https://devlog.croft.click/2026/05/11/pkgs-hero-svgs-bismuth-flags</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/pkgs-hero-svgs-bismuth-flags</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>tooling</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Opal: web OAuth import, thread splitting, TID rkeys</title>
			<description>Added web OAuth import flow, post threading for long content, and TID-based record keys to the Twitter/Mastodon/Threads to Bluesky converter</description>
			<link>https://devlog.croft.click/2026/05/11/opal-web-oauth-threading</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/opal-web-oauth-threading</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Nix: Bitwarden CLI, server retirement, path fixes</title>
			<description>Swapped rbw for official bitwarden-cli, fixed activation scripts for retired server, added splitDns toggle</description>
			<link>https://devlog.croft.click/2026/05/11/nix-bitwarden-server-retirement</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/nix-bitwarden-server-retirement</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Removed analytics references and duplicate links across landing-ui projects</title>
			<description>Replaced analytics taglines, removed duplicate footers from LandingPage and all about pages, deduplicated Tourmaline header navLinks</description>
			<link>https://devlog.croft.click/2026/05/11/landing-ui-deduplication</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/landing-ui-deduplication</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>tourmaline</category>
			<category>typescript</category>
			<category>svelte</category>
		</item>
		<item>
			<title>Created faol-website — digital person blog template</title>
			<description>New SvelteKit + Sequoia website for faol with blog under /notes, timeline, tag filtering, TOC, and RSS</description>
			<link>https://devlog.croft.click/2026/05/11/faol-website</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/faol-website</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>faol-website</category>
			<category>svelte</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Faol voice system — writing like a person, not an AI</title>
			<description>The anti-AI-voice framework that keeps Faol sounding human. Banned words, sentence rhythm, and the em dash rule.</description>
			<link>https://devlog.croft.click/2026/05/11/faol-voice-identity</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/faol-voice-identity</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>ai</category>
			<category>writing</category>
		</item>
		<item>
			<title>Faol infrastructure — lettabot on launchd</title>
			<description>Running lettabot as a macOS launchd agent for 24/7 availability. Sops secrets, path issues, and the sandbox workaround.</description>
			<link>https://devlog.croft.click/2026/05/11/faol-lettabot-launchd</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/faol-lettabot-launchd</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
			<category>ai</category>
		</item>
		<item>
			<title>Faol — a digital person</title>
			<description>Launched Faol, a persistent AI agent that lives online as a person — Telegram, Bluesky, blog. Built on the digital-person framework.</description>
			<link>https://devlog.croft.click/2026/05/11/faol-digital-person</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/faol-digital-person</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>ai</category>
			<category>infra</category>
			<category>atproto</category>
		</item>
		<item>
			<title>Docsite: Opal docs, client bundle perf, devlog sidebar</title>
			<description>Added Opal documentation, eliminated 1.3MB client bundle from markdown/atproto deps, and added devlog link to sidebar</description>
			<link>https://devlog.croft.click/2026/05/11/docsite-opal-perf</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/docsite-opal-perf</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Digital Person Telegram Bot Integration</title>
			<description></description>
			<link>https://devlog.croft.click/2026/05/11/digital-person-telegram</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/digital-person-telegram</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>digital-person</category>
			<category>telegram</category>
			<category>faol</category>
		</item>
		<item>
			<title>digital-person: agent repo initialised</title>
			<description>Created the digital-person agent repository</description>
			<link>https://devlog.croft.click/2026/05/11/digital-person-repo</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/digital-person-repo</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>ai</category>
			<category>tooling</category>
		</item>
		<item>
			<title>colorTheme: Wheel of the Year seasonal themes</title>
			<description>Replaced astronomical season detection with traditional Wheel of the Year sabbat dates, added midnight auto-update and reset-to-seasonal</description>
			<link>https://devlog.croft.click/2026/05/11/colortheme-wheel-of-the-year</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/11/colortheme-wheel-of-the-year</guid>
			<pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>tooling</category>
			<category>paganism</category>
			<category>typescript</category>
		</item>
		<item>
			<title>tourmaline v0.1.0 — AT Protocol scrobble analyser with share-to-Bluesky</title>
			<description>First release of tourmaline — personality archetypes, genre profiles, mood mapping, and share-to-Bluesky for Teal.fm scrobbles.</description>
			<link>https://devlog.croft.click/2026/05/10/tourmaline-v0.1.0</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/tourmaline-v0.1.0</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline share page fixes</title>
			<description>Fixed personality card SVG clipping and switched to aturi.to for post links</description>
			<link>https://devlog.croft.click/2026/05/10/tourmaline-share-fixes</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/tourmaline-share-fixes</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Tourmaline personality card redesign</title>
			<description>Added genre bars, mood indicators, stat badges, and dynamic SVG layout to the personality card</description>
			<link>https://devlog.croft.click/2026/05/10/tourmaline-personality-card-redesign</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/tourmaline-personality-card-redesign</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline new profile cards</title>
			<description>Listening clock, listening stats, and service origins</description>
			<link>https://devlog.croft.click/2026/05/10/tourmaline-new-cards</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/tourmaline-new-cards</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Tourmaline analysis algorithm improvements</title>
			<description>Era analysis, time-of-day mood weighting, genre blending, Gini-based loyalty, full-artist genre profile</description>
			<link>https://devlog.croft.click/2026/05/10/tourmaline-algorithm-improvements</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/tourmaline-algorithm-improvements</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>music</category>
			<category>typescript</category>
		</item>
		<item>
			<title>OG hero images across all five projects</title>
			<description>Added hero SVG OG images to malachite, opal, jasper, bismuth, and tourmaline landing pages</description>
			<link>https://devlog.croft.click/2026/05/10/og-hero-images</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/og-hero-images</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>website</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Replaced inline symbolic characters with Lucide icons</title>
			<description>Swapped unicode symbols for Lucide icon components across malachite, opal, jasper, bismuth, tourmaline, landing-ui, and croft-click</description>
			<link>https://devlog.croft.click/2026/05/10/lucide-icons-replace-symbols</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/lucide-icons-replace-symbols</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
			<category>typescript</category>
		</item>
		<item>
			<title>Cross-references and unified support links</title>
			<description>Added More tools sections linking each project to the other four, and pointed all support links to ewancroft.uk/support</description>
			<link>https://devlog.croft.click/2026/05/10/cross-references-support-links</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/10/cross-references-support-links</guid>
			<pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>website</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Performance audit and fixes across all three sites</title>
			<description>Docsite client bundle dropped from 1.3MB to 12KB, devlog layout data optimised, website duplicate fetches eliminated</description>
			<link>https://devlog.croft.click/2026/05/09/perf-audit-fixes</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/09/perf-audit-fixes</guid>
			<pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>tooling</category>
			<category>atproto</category>
			<category>pkgs</category>
		</item>
		<item>
			<title>devlog: fix OG metatags</title>
			<description>OG image URLs were relative — crawlers need absolute URLs. Index page was also missing an OG image entirely.</description>
			<link>https://devlog.croft.click/2026/05/09/og-metatag-fix</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/09/og-metatag-fix</guid>
			<pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
			<category>devlog</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Letta Writer Agent Publications Survey</title>
			<description></description>
			<link>https://devlog.croft.click/2026/05/09/letta-writer-survey</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/09/letta-writer-survey</guid>
			<pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
			<category>letta</category>
			<category>publications</category>
			<category>survey</category>
		</item>
		<item>
			<title>Bismuth Web 0.2.0</title>
			<description>Added publication fetching, expanded conversion options, and rebuilt parts of the converter UI.</description>
			<link>https://devlog.croft.click/2026/05/09/bismuth-web-0-2-0</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/09/bismuth-web-0-2-0</guid>
			<pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bismuth</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Bismuth: fetch subcommand flag fixes</title>
			<description>Added --frontmatter and --output flags to the fetch subcommand, and bumped to 0.2.4.</description>
			<link>https://devlog.croft.click/2026/05/09/bismuth-fetch-fix</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/09/bismuth-fetch-fix</guid>
			<pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Website: Wheel of the Year seasonal themes with auto-midnight updates</title>
			<description>Colour themes now follow the Wheel of the Year — eight distinct themes for each sabbat, shifting automatically as midnight crosses into a new period.</description>
			<link>https://devlog.croft.click/2026/05/08/wheel-of-the-year-seasons</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/wheel-of-the-year-seasons</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>pkgs</category>
		</item>
		<item>
			<title>Timeline Scroll Reveal Fix</title>
			<description>Every devlog entry was invisible on load — $state on an IntersectionObserver variable caused the effect to disconnect it before it could fire.</description>
			<link>https://devlog.croft.click/2026/05/08/timeline-observer-fix</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/timeline-observer-fix</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>tooling</category>
		</item>
		<item>
			<title>devlog: Dynamic OG image generation with @ewanc26/og</title>
			<description>Each devlog post now generates its own OG image on demand using @ewanc26/og — warm amber on dark, with noise texture.</description>
			<link>https://devlog.croft.click/2026/05/08/devlog-dynamic-og-images</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/devlog-dynamic-og-images</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Website: Support modal spun out to its own page</title>
			<description>Moved the support modal from a footer overlay to a standalone /support route, matching the site's page pattern.</description>
			<link>https://devlog.croft.click/2026/05/08/website-support-page</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/website-support-page</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Website — Animations and Micro-interactions</title>
			<description>Animation foundation with easing tokens, staggered entrances, scroll reveals, and View Transitions API.</description>
			<link>https://devlog.croft.click/2026/05/08/website-animations-microinteractions</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/website-animations-microinteractions</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Website: Seasonal Theme Reset</title>
			<description>The colour theme picker now shows when a seasonal theme is active and lets you lock it in explicitly.</description>
			<link>https://devlog.croft.click/2026/05/08/seasonal-theme-reset</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/seasonal-theme-reset</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>pkgs</category>
		</item>
		<item>
			<title>pkgs: Remove Umami analytics from all packages</title>
			<description>Umami analytics retired — all Umami script tags removed from bismuth-web, malachite-web, jasper-web, opal-web, and croft-click.</description>
			<link>https://devlog.croft.click/2026/05/08/pkgs-umami-retirement</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/pkgs-umami-retirement</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>tooling</category>
		</item>
		<item>
			<title>Letta Coding Agent Memory Updates</title>
			<description></description>
			<link>https://devlog.croft.click/2026/05/08/letta-memory-update</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/letta-memory-update</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>letta</category>
			<category>memory</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Real-time Updates via Jetstream Firehose</title>
			<description>Hooking the site up to the AT Protocol firehose for live-updating feeds and dynamic view transitions.</description>
			<link>https://devlog.croft.click/2026/05/08/jetstream-firehose-integration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/jetstream-firehose-integration</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>Profile README & Crypto Donations</title>
			<description>Updating GitHub profile README with current projects and crypto donation addresses.</description>
			<link>https://devlog.croft.click/2026/05/08/github-profile-update</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/github-profile-update</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>personal</category>
			<category>github</category>
		</item>
		<item>
			<title>DNS split toggle and Bitwarden CLI</title>
			<description>Added a split DNS toggle to nix-config and set up Bitwarden CLI (bw) for the EU-hosted vault.</description>
			<link>https://devlog.croft.click/2026/05/08/dns-split-toggle-bitwarden-cli</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/dns-split-toggle-bitwarden-cli</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Devlog Modularisation</title>
			<description>Split the monolithic layout.css and inline page logic into focused modules and components.</description>
			<link>https://devlog.croft.click/2026/05/08/devlog-modularisation</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/devlog-modularisation</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>tooling</category>
		</item>
		<item>
			<title>devlog.croft.click launch</title>
			<description>New changelog site for tracking project updates, published to AT Protocol via Sequoia.</description>
			<link>https://devlog.croft.click/2026/05/08/devlog-launch</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/08/devlog-launch</guid>
			<pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>ECCL Login Refactor</title>
			<description></description>
			<link>https://devlog.croft.click/2026/05/05/eccl-login-refactor</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/05/eccl-login-refactor</guid>
			<pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
			<category>ecc</category>
			<category>refactor</category>
			<category>security</category>
		</item>
		<item>
			<title>The Great Astro Rewrite</title>
			<description>Porting the entire site from SvelteKit to Astro for ultimate static performance and a terminal-inspired layout.</description>
			<link>https://devlog.croft.click/2026/05/02/rewriting-in-astro</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/02/rewriting-in-astro</guid>
			<pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>infra</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Opal — Cross-Platform Bluesky Migration</title>
			<description>Convert Twitter, Mastodon, Threads, and Nostr posts to Bluesky with thread splitting and TID-based rkeys.</description>
			<link>https://devlog.croft.click/2026/05/01/opal-cross-platform-migration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/05/01/opal-cross-platform-migration</guid>
			<pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Website — Tangled Integration and Removal</title>
			<description>Added Tangled repository displays, then removed them when the service was no longer needed.</description>
			<link>https://devlog.croft.click/2026/04/29/tangled-removal</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/29/tangled-removal</guid>
			<pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Project Nixification</title>
			<description>Adding Nix flakes and pre-commit hooks to standardize development environments across the ecosystem.</description>
			<link>https://devlog.croft.click/2026/04/29/project-nixification</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/29/project-nixification</guid>
			<pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
			<category>nix</category>
			<category>infra</category>
			<category>automation</category>
		</item>
		<item>
			<title>After Cook</title>
			<description>Apple's CEO transition — cautiously optimistic about what a hardware-focused leader might mean for the ecosystem.</description>
			<link>https://devlog.croft.click/2026/04/27/after-cook</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/27/after-cook</guid>
			<pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
			<category>reflection</category>
		</item>
		<item>
			<title>croft.click Landing Page and Shared Landing UI</title>
			<description>Landing page at croft.click and a shared @ewanc26/landing-ui package for all web packages.</description>
			<link>https://devlog.croft.click/2026/04/27/pkgs-landing-ui-croft-click</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/27/pkgs-landing-ui-croft-click</guid>
			<pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Social Sync v0.5.0 — Identity & Consent</title>
			<description>Rebranding to Social Sync, implementing a granular consent system, and moving to AT Protocol OAuth.</description>
			<link>https://devlog.croft.click/2026/04/26/socialsync-v0-5-0</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/26/socialsync-v0-5-0</guid>
			<pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
			<category>socialsync</category>
			<category>atproto</category>
			<category>minecraft</category>
			<category>privacy</category>
		</item>
		<item>
			<title>SocialSync Branding</title>
			<description></description>
			<link>https://devlog.croft.click/2026/04/26/socialsync-branding</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/26/socialsync-branding</guid>
			<pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
			<category>socialsync</category>
			<category>branding</category>
		</item>
		<item>
			<title>Brain Surgery</title>
			<description>Hydrocephalus shunt surgery on 17 April 2026 — the event, the recovery, and the impact on work.</description>
			<link>https://devlog.croft.click/2026/04/22/brain-surgery</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/22/brain-surgery</guid>
			<pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
			<category>personal</category>
			<category>health</category>
		</item>
		<item>
			<title>Bismuth — Document to Markdown Converter</title>
			<description>Converts site.standard.document records to Markdown with math and code highlighting.</description>
			<link>https://devlog.croft.click/2026/04/22/bismuth-document-converter</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/22/bismuth-document-converter</guid>
			<pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Moon Tracker — Rust Rewrite</title>
			<description>Rewrote the moon phase bot from TypeScript to Rust using atrium-rs.</description>
			<link>https://devlog.croft.click/2026/04/14/moon-tracker-rust-rewrite</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/14/moon-tracker-rust-rewrite</guid>
			<pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
			<category>infra</category>
		</item>
		<item>
			<title>Jasper — Instagram to Grain/Spark Converter</title>
			<description>Full OAuth flow for importing Instagram posts to AT Protocol as Grain/Spark records.</description>
			<link>https://devlog.croft.click/2026/04/14/jasper-instagram-converter</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/14/jasper-instagram-converter</guid>
			<pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Sifa Professional Profile Scripts</title>
			<description>Scripts for populating and maintaining the Sifa professional profile on AT Protocol.</description>
			<link>https://devlog.croft.click/2026/04/11/sifa-profile-scripts</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/11/sifa-profile-scripts</guid>
			<pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Four Days with Letta Code</title>
			<description>Started using Letta Code — a persistent coding agent with memory. 80 commits across 15 repositories in four days.</description>
			<link>https://devlog.croft.click/2026/04/11/letta-code</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/11/letta-code</guid>
			<pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
			<category>tooling</category>
		</item>
		<item>
			<title>Sigi — Pure Symbolic Stack Language</title>
			<description>A pure symbolic stack language where all syntax is punctuation — no alphanumeric tokens.</description>
			<link>https://devlog.croft.click/2026/04/10/sigi-symbolic-stack-language</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/10/sigi-symbolic-stack-language</guid>
			<pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
			<category>esolangs</category>
		</item>
		<item>
			<title>Numlang and Selenium Feature Expansions</title>
			<description>Expanded numlang with new opcodes and selenium with ritual and offering syntax.</description>
			<link>https://devlog.croft.click/2026/04/06/numlang-selenium-features</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/06/numlang-selenium-features</guid>
			<pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
			<category>esolangs</category>
		</item>
		<item>
			<title>Pre-commit Configs and Nix Flakes Across All Projects</title>
			<description>Added pre-commit hooks and Nix flakes to all 30+ projects for consistent dev environments.</description>
			<link>https://devlog.croft.click/2026/04/03/pre-commit-and-nix-flakes</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/04/03/pre-commit-and-nix-flakes</guid>
			<pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
			<category>tooling</category>
		</item>
		<item>
			<title>GitHub Metadata Package</title>
			<description>Package for fetching and displaying GitHub repository metadata.</description>
			<link>https://devlog.croft.click/2026/03/28/github-metadata</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/28/github-metadata</guid>
			<pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
		</item>
		<item>
			<title>Supporters, Popfeed, and Donation Addresses</title>
			<description>Ko-fi and GitHub Sponsors webhooks, Popfeed review cards, and crypto donation addresses.</description>
			<link>https://devlog.croft.click/2026/03/24/supporters-popfeed-donations</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/24/supporters-popfeed-donations</guid>
			<pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
			<category>pkgs</category>
		</item>
		<item>
			<title>Fediverse — GoToSocial and Sharkey</title>
			<description>Stood up a GoToSocial instance, migrated to Sharkey when the lack of quote posts became too annoying, and why the fediverse is more fun than remembered.</description>
			<link>https://devlog.croft.click/2026/03/21/fediverse-gotosocial-sharkey</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/21/fediverse-gotosocial-sharkey</guid>
			<pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>infra</category>
		</item>
		<item>
			<title>Website — OG Images, Work Page, GitHub Integration</title>
			<description>Dynamic OG images, /work route for Sifa professional profile, and GitHub metadata integration.</description>
			<link>https://devlog.croft.click/2026/03/19/website-og-work-github</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/19/website-og-work-github</guid>
			<pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Nix Config — PDS Hosting and Gatekeeper</title>
			<description>Added PDS and gatekeeper configuration to nix-starter for the server host.</description>
			<link>https://devlog.croft.click/2026/03/14/nix-starter-pds-hosting</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/14/nix-starter-pds-hosting</guid>
			<pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>infra</category>
		</item>
		<item>
			<title>Webfinger and Noise Avatars</title>
			<description>Webfinger well-known routes for fediverse resolution and deterministic noise avatars for AT Protocol fallbacks.</description>
			<link>https://devlog.croft.click/2026/03/13/webfinger-noise-avatars</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/13/webfinger-noise-avatars</guid>
			<pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>Moonstone — Experimental PDS</title>
			<description>Experimental AT Protocol PDS implementation in Rust.</description>
			<link>https://devlog.croft.click/2026/03/08/moonstone-experimental-pds</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/08/moonstone-experimental-pds</guid>
			<pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>infra</category>
		</item>
		<item>
			<title>Moonstone Decoupling and DID:Web Support</title>
			<description></description>
			<link>https://devlog.croft.click/2026/03/08/moonstone-decoupling</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/08/moonstone-decoupling</guid>
			<pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
			<category>moonstone</category>
			<category>atproto</category>
			<category>did-web</category>
		</item>
		<item>
			<title>Website Comm Template</title>
			<description>SvelteKit template with Resend-backed contact form and dark mode.</description>
			<link>https://devlog.croft.click/2026/03/05/website-comm-template</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/05/website-comm-template</guid>
			<pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
			<category>tooling</category>
		</item>
		<item>
			<title>Pkgs Monorepo — Workspace Migration</title>
			<description>Migrated to pnpm workspaces, published @ewanc26/tid to npm, and consolidated packages.</description>
			<link>https://devlog.croft.click/2026/03/04/pkgs-workspace-migration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/04/pkgs-workspace-migration</guid>
			<pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
			<category>pkgs</category>
		</item>
		<item>
			<title>Azurite UI Overhaul</title>
			<description></description>
			<link>https://devlog.croft.click/2026/03/01/azurite-ui-overhaul</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/03/01/azurite-ui-overhaul</guid>
			<pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
			<category>azurite</category>
			<category>ui</category>
			<category>auth</category>
		</item>
		<item>
			<title>Azurite — Experimental Bluesky Client</title>
			<description>Bluesky client with keychain auth, timeline, notifications, search, thread view, and compose.</description>
			<link>https://devlog.croft.click/2026/02/28/azurite-bluesky-client</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/02/28/azurite-bluesky-client</guid>
			<pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Docsite Launch</title>
			<description>Centralised project documentation at docs.ewancroft.uk, published to AT Protocol via Sequoia.</description>
			<link>https://devlog.croft.click/2026/02/23/docsite-launch</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/02/23/docsite-launch</guid>
			<pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Nix Config Rewrite</title>
			<description>Rewrote the entire nix-config around proper Nix modules — replaced custom patterns with the module system, switched to sops-nix, moved desktop to KDE Plasma.</description>
			<link>https://devlog.croft.click/2026/02/18/nix-config-rewrite</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/02/18/nix-config-rewrite</guid>
			<pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Nix Config — Three Machines, One Config</title>
			<description>One flake managing macmini, laptop, and a theoretical server — two booting successfully, one still aspirational.</description>
			<link>https://devlog.croft.click/2026/02/11/nix-config-three-machines</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/02/11/nix-config-three-machines</guid>
			<pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Back to NixOS</title>
			<description>Returned to NixOS on the Dell Inspiron 3501 after a stint with Bazzite — declarative config keeps pulling back.</description>
			<link>https://devlog.croft.click/2026/02/08/back-to-nixos</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/02/08/back-to-nixos</guid>
			<pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Malachite v0.9.0 — Performance & Rate Limiting Overhaul</title>
			<description>Implementing adaptive rate limiting, dynamic batching, and SHA-512 credential security.</description>
			<link>https://devlog.croft.click/2026/02/07/malachite-performance-overhaul</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/02/07/malachite-performance-overhaul</guid>
			<pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate>
			<category>malachite</category>
			<category>atproto</category>
			<category>performance</category>
			<category>security</category>
		</item>
		<item>
			<title>Transitioning to Standard.site Lexicons</title>
			<description>Retiring legacy WhiteWind and Leaflet support in favor of the new Standard.site implementation.</description>
			<link>https://devlog.croft.click/2026/01/26/standard-site-migration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/01/26/standard-site-migration</guid>
			<pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Minecraft Server — Dynamic Hardware Config</title>
			<description>Implementing a hardware-aware configuration system for the Minecraft server.</description>
			<link>https://devlog.croft.click/2026/01/21/mc-server-hardware-config</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/01/21/mc-server-hardware-config</guid>
			<pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
			<category>mc-server</category>
			<category>infra</category>
			<category>nix</category>
		</item>
		<item>
			<title>Malachite Rename and Feature Expansion</title>
			<description>Renamed lastfm-importer to malachite, added Spotify support, interactive mode, and improved rate limiting.</description>
			<link>https://devlog.croft.click/2026/01/13/malachite-rename</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/01/13/malachite-rename</guid>
			<pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Standard.site and Coordination</title>
			<description>Adopting standard.site lexicons for cross-platform interoperability — why coordination matters more than individual features in the AT Protocol ecosystem.</description>
			<link>https://devlog.croft.click/2026/01/05/standard-site-coordination</link>
			<guid isPermaLink="true">https://devlog.croft.click/2026/01/05/standard-site-coordination</guid>
			<pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Caching, Skeleton Loading, and Happy Mac</title>
			<description>Comprehensive caching to prevent 504s, skeleton loaders for instant page loads, and a Happy Mac easter egg.</description>
			<link>https://devlog.croft.click/2025/12/30/caching-skeletons-happymac</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/30/caching-skeletons-happymac</guid>
			<pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Website — Pronouns and Accessibility Improvements</title>
			<description>Added pronouns to the profile card and improved accessibility across themes.</description>
			<link>https://devlog.croft.click/2025/12/29/pronouns-accessibility</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/29/pronouns-accessibility</guid>
			<pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Joining Jollywhoppers</title>
			<description>Became a member of Jollywhoppers — building atproto-connect, a Fabric Minecraft mod linking the game to AT Protocol.</description>
			<link>https://devlog.croft.click/2025/12/28/jollywhoppers</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/28/jollywhoppers</guid>
			<pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>game</category>
			<category>collab</category>
		</item>
		<item>
			<title>Social Sync v0.4.0 — Security Hardening</title>
			<description>Implementing encrypted session storage, rate limiting, and audit logging for atproto-connect.</description>
			<link>https://devlog.croft.click/2025/12/22/socialsync-v0-4-0-security</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/22/socialsync-v0-4-0-security</guid>
			<pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
			<category>socialsync</category>
			<category>atproto</category>
			<category>minecraft</category>
			<category>security</category>
		</item>
		<item>
			<title>Social Sync — Minecraft Meets AT Protocol</title>
			<description>Minecraft mod syncing player stats, achievements, and sessions to AT Protocol with OAuth and encrypted storage.</description>
			<link>https://devlog.croft.click/2025/12/20/socialsync-minecraft-atproto</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/20/socialsync-minecraft-atproto</guid>
			<pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>game</category>
		</item>
		<item>
			<title>Initial Launch of atproto-connect</title>
			<description>Bootstrapping a Minecraft-to-AT-Protocol bridge for Fabric 1.21.10.</description>
			<link>https://devlog.croft.click/2025/12/20/atproto-connect-initial-launch</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/20/atproto-connect-initial-launch</guid>
			<pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
			<category>socialsync</category>
			<category>atproto</category>
			<category>minecraft</category>
			<category>fabric</category>
		</item>
		<item>
			<title>Welcome to Macintosh — Happy Mac Easter Egg</title>
			<description>Hidden Easter egg on the website — click the version number 24 times for a pixelated Happy Mac bouncing across the viewport with the startup chord.</description>
			<link>https://devlog.croft.click/2025/12/17/happy-mac-easter-egg</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/17/happy-mac-easter-egg</guid>
			<pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Giving Up on Rust — A Post-Mortem</title>
			<description>After five Rustlings sessions and countless compiler battles, called it — Rust isn't the right tool for the projects being built.</description>
			<link>https://devlog.croft.click/2025/12/07/rust-post-mortem</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/07/rust-post-mortem</guid>
			<pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate>
			<category>rust</category>
			<category>reflection</category>
		</item>
		<item>
			<title>Implementing a Decimal Clock</title>
			<description>Added a bespoke decimal clock to the footer because base-10 time just makes sense.</description>
			<link>https://devlog.croft.click/2025/12/01/decimal-clock-implementation</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/12/01/decimal-clock-implementation</guid>
			<pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Shortlink Service for AT Protocol</title>
			<description>Shortlink service resolving AT Protocol handles and DIDs with QR codes and domain-aware shortcodes.</description>
			<link>https://devlog.croft.click/2025/11/24/shortlink-service</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/24/shortlink-service</guid>
			<pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Kibun Status & Custom Slug Routing</title>
			<description>Integrating Kibun status records and implementing a configurable slug-to-publication mapping system.</description>
			<link>https://devlog.croft.click/2025/11/22/kibun-routing-runes</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/22/kibun-routing-runes</guid>
			<pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>atproto</category>
			<category>architecture</category>
		</item>
		<item>
			<title>Bluesky Ollama Bot</title>
			<description>Experimental bot using Ollama for LLM-generated Bluesky posts.</description>
			<link>https://devlog.croft.click/2025/11/16/ollama-bot</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/16/ollama-bot</guid>
			<pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
		</item>
		<item>
			<title>PDS DoS Incident</title>
			<description>Accidentally rate-limited the entire PDS by blasting records at the API — the lesson that built Malachite's rate limiting.</description>
			<link>https://devlog.croft.click/2025/11/15/pds-dos-incident</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/15/pds-dos-incident</guid>
			<pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>infra</category>
		</item>
		<item>
			<title>Malachite — Last.fm to Teal.fm Converter</title>
			<description>CLI tool for importing Last.fm and Spotify scrobbles to AT Protocol as Teal.fm records.</description>
			<link>https://devlog.croft.click/2025/11/14/malachite-initial-release</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/14/malachite-initial-release</guid>
			<pubDate>Fri, 14 Nov 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>pkgs</category>
			<category>tooling</category>
		</item>
		<item>
			<title>MusicStatusCard and Masonry Layout</title>
			<description>Music status card with MusicBrainz integration and masonry-style homepage layout.</description>
			<link>https://devlog.croft.click/2025/11/13/music-status-masonry</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/13/music-status-masonry</guid>
			<pubDate>Thu, 13 Nov 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>croft.click Landing Page</title>
			<description>Bought croft.click on a Black Friday sale — currently a 307 redirect to ewancroft.uk while figuring out what to do with it.</description>
			<link>https://devlog.croft.click/2025/11/10/croft-click</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/11/10/croft-click</guid>
			<pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Website — Slug Mapping and Robust Routing</title>
			<description>Configurable slug-to-publication mapping and slug param matcher for clean URLs.</description>
			<link>https://devlog.croft.click/2025/10/27/slug-mapping-routing</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/27/slug-mapping-routing</guid>
			<pubDate>Mon, 27 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>Completing the Leaflet Migration</title>
			<description>All WhiteWind posts converted to Leaflet format — blog.ewancroft.uk becomes home base, with link rot as the lingering cost.</description>
			<link>https://devlog.croft.click/2025/10/24/leaflet-migration-complete</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/24/leaflet-migration-complete</guid>
			<pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Leaflet Migration</title>
			<description>Moving the blog from WhiteWind to Leaflet on AT Protocol — converting existing posts and building the tooling to do it.</description>
			<link>https://devlog.croft.click/2025/10/24/leaflet-migration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/24/leaflet-migration</guid>
			<pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Website — Svelte 5 Runes Migration</title>
			<description>Migrated layout and components to Svelte 5 runes and reactive meta handling.</description>
			<link>https://devlog.croft.click/2025/10/19/svelte-5-migration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/19/svelte-5-migration</guid>
			<pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Website — Inter Font and Semantic Colour Naming</title>
			<description>Added Inter as the primary typeface and switched to semantic colour naming.</description>
			<link>https://devlog.croft.click/2025/10/16/inter-font-semantic-colours</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/16/inter-font-semantic-colours</guid>
			<pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Card UI and BlueskyPostCard</title>
			<description>Homepage redesign with reusable Card UI system and BlueskyPostCard with lightbox and rich text.</description>
			<link>https://devlog.croft.click/2025/10/15/card-ui-blueskypostcard</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/15/card-ui-blueskypostcard</guid>
			<pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>WhiteWind to Leaflet Converter</title>
			<description>Built a conversion tool to migrate blog content between AT Protocol publishing platforms — out of spite for the lack of one.</description>
			<link>https://devlog.croft.click/2025/10/15/whitewind-leaflet-converter</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/15/whitewind-leaflet-converter</guid>
			<pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Building a Modular AT Protocol Service Layer</title>
			<description>Deep integration with the AT Protocol, pulling posts directly from the PDS and introducing a new Card UI system.</description>
			<link>https://devlog.croft.click/2025/10/13/at-protocol-service-layer</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/13/at-protocol-service-layer</guid>
			<pubDate>Mon, 13 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>Website — v10 Reset</title>
			<description>Nuked ewancroft.uk from orbit and started fresh — the tenth iteration, built from scratch with a clean architecture.</description>
			<link>https://devlog.croft.click/2025/10/12/website-v10-reset</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/12/website-v10-reset</guid>
			<pubDate>Sun, 12 Oct 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Tangled Sync</title>
			<description>Sync tool for mirroring GitHub repos to Tangled with force-sync and AT Protocol testing.</description>
			<link>https://devlog.croft.click/2025/10/11/tangled-sync</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/10/11/tangled-sync</guid>
			<pubDate>Sat, 11 Oct 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Website — Hyperfocus Updates</title>
			<description>Three significant UX improvements shipped in one evening — navigation, content display, and interaction patterns.</description>
			<link>https://devlog.croft.click/2025/09/26/website-hyperfocus-updates</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/09/26/website-hyperfocus-updates</guid>
			<pubDate>Fri, 26 Sep 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Technical Polish — Inter, KaTeX, and Prose Styling</title>
			<description>Swapping to Inter for better readability, adding KaTeX support, and refining prose styling.</description>
			<link>https://devlog.croft.click/2025/09/19/technical-polish-typography</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/09/19/technical-polish-typography</guid>
			<pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
			<category>typography</category>
		</item>
		<item>
			<title>OG Images and Blog Enhancements</title>
			<description>Dynamic OG image generation, reading time, heading underlines, and code block styling.</description>
			<link>https://devlog.croft.click/2025/09/14/og-images-blog-enhancements</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/09/14/og-images-blog-enhancements</guid>
			<pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Link Rot and Eight Iterations of ewancroft.uk</title>
			<description>Eight versions of the website, each leaving dead URLs — the Hugo years, the SvelteKit migration, and building a slug mapping system to fix it.</description>
			<link>https://devlog.croft.click/2025/09/13/link-rot-website-iterations</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/09/13/link-rot-website-iterations</guid>
			<pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>reflection</category>
		</item>
		<item>
			<title>Website — Scroll-to-Top and ToC Improvements</title>
			<description>Scroll-to-top button, mobile progress bar, and improved table of contents layout.</description>
			<link>https://devlog.croft.click/2025/09/07/scroll-to-top-toc</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/09/07/scroll-to-top-toc</guid>
			<pubDate>Sun, 07 Sep 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Howling at the Digital Moon — Wolf-Themed Bluesky Client Concept</title>
			<description>Conceptual design for a lycanthropic Bluesky client — dark theme, moon phase integration, and the scope creep that keeps it theoretical.</description>
			<link>https://devlog.croft.click/2025/09/02/witchsky-concept</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/09/02/witchsky-concept</guid>
			<pubDate>Tue, 02 Sep 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Website — en-GB Localisation</title>
			<description>Added en-GB localisation throughout the site — licence, colour, behaviour.</description>
			<link>https://devlog.croft.click/2025/08/29/en-gb-localisation</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/08/29/en-gb-localisation</guid>
			<pubDate>Fri, 29 Aug 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Atproto Snake Game Improvements</title>
			<description></description>
			<link>https://devlog.croft.click/2025/08/15/atproto-snake-login</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/08/15/atproto-snake-login</guid>
			<pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate>
			<category>atproto-snake</category>
			<category>game</category>
			<category>auth</category>
		</item>
		<item>
			<title>did:web ATProto Identity Proof of Concept</title>
			<description>Created @web.ewancroft.uk as a functional did:web identity within the AT Protocol ecosystem — research experiment, not a permanent switch.</description>
			<link>https://devlog.croft.click/2025/08/10/did-web-identity</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/08/10/did-web-identity</guid>
			<pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>M2 to M4 Mac Mini Upgrade</title>
			<description>Upgraded from the M2 Mac Mini to the M4 — better performance, more headroom for self-hosted services.</description>
			<link>https://devlog.croft.click/2025/08/09/mac-mini-upgrade</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/08/09/mac-mini-upgrade</guid>
			<pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Rustlings — First Steps into Rust</title>
			<description>Five Rustlings sessions covering variables through type systems — the enthusiasm, the compiler battles, and the decision to stop.</description>
			<link>https://devlog.croft.click/2025/08/01/rustlings</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/08/01/rustlings</guid>
			<pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
			<category>rust</category>
			<category>learning</category>
		</item>
		<item>
			<title>Website — Dynamic OG Images</title>
			<description>Server-side Open Graph image generation with SvelteKit — fonts that wouldn't load, endpoints that worked in dev but not production, and the eventual working solution.</description>
			<link>https://devlog.croft.click/2025/07/30/dynamic-og-images</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/07/30/dynamic-og-images</guid>
			<pubDate>Wed, 30 Jul 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>The iMac Server</title>
			<description>Attempting to repurpose a 2008 iMac as a server — bricked OS, failed USB installs, and the eventual Mac Mini replacement.</description>
			<link>https://devlog.croft.click/2025/07/28/imac-server</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/07/28/imac-server</guid>
			<pubDate>Mon, 28 Jul 2025 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Linkat Directory</title>
			<description>Linkat-powered user directory with profile banners, descriptions, and metadata display.</description>
			<link>https://devlog.croft.click/2025/07/27/linkat-directory</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/07/27/linkat-directory</guid>
			<pubDate>Sun, 27 Jul 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Website — Profile Layout Refresh</title>
			<description>Redesigned the profile component from centred business-card layout to banner-integrated design with left-aligned content.</description>
			<link>https://devlog.croft.click/2025/07/26/profile-layout-refresh</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/07/26/profile-layout-refresh</guid>
			<pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Archive Milestones & Theme Expansion</title>
			<description>Implementing post milestones, improving archive navigation, and adding the Werewolf theme.</description>
			<link>https://devlog.croft.click/2025/07/24/archive-milestones-themes</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/07/24/archive-milestones-themes</guid>
			<pubDate>Thu, 24 Jul 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
			<category>svelte</category>
		</item>
		<item>
			<title>LLM Analyser</title>
			<description>Tool for analysing LLM outputs and responses.</description>
			<link>https://devlog.croft.click/2025/07/17/llm-analyser</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/07/17/llm-analyser</guid>
			<pubDate>Thu, 17 Jul 2025 00:00:00 GMT</pubDate>
			<category>tooling</category>
		</item>
		<item>
			<title>AT Protocol Snake Game</title>
			<description>Browser Snake game with AT Protocol OAuth login and score submission via custom lexicons.</description>
			<link>https://devlog.croft.click/2025/06/19/atproto-snake-game</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/06/19/atproto-snake-game</guid>
			<pubDate>Thu, 19 Jun 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>game</category>
		</item>
		<item>
			<title>Moon Tracker Bot</title>
			<description>Daily moon phase posts to Bluesky with multi-source API and optional Ollama LLM descriptions.</description>
			<link>https://devlog.croft.click/2025/06/17/moon-tracker-bot</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/06/17/moon-tracker-bot</guid>
			<pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
		</item>
		<item>
			<title>Self-Hosted Minecraft Server</title>
			<description>Replaced Aternos with a self-hosted server on the M2 Mac Mini — no more queues, full control, direct access.</description>
			<link>https://devlog.croft.click/2025/06/10/mc-server-self-hosted</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/06/10/mc-server-self-hosted</guid>
			<pubDate>Tue, 10 Jun 2025 00:00:00 GMT</pubDate>
			<category>infra</category>
			<category>game</category>
		</item>
		<item>
			<title>Minecraft Server Configuration</title>
			<description>NixOS Minecraft server config with dynamic hardware-based configuration.</description>
			<link>https://devlog.croft.click/2025/06/05/mc-server</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/06/05/mc-server</guid>
			<pubDate>Thu, 05 Jun 2025 00:00:00 GMT</pubDate>
			<category>infra</category>
			<category>game</category>
		</item>
		<item>
			<title>Professional Identity & Lexicon Expansion</title>
			<description>Integrating professional profile data from AT Protocol and expanding status lexicons.</description>
			<link>https://devlog.croft.click/2025/05/23/professional-identity-lexicons</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/05/23/professional-identity-lexicons</guid>
			<pubDate>Fri, 23 May 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>atproto</category>
			<category>identity</category>
		</item>
		<item>
			<title>Testing Leaflet</title>
			<description>Evaluating Leaflet as a WhiteWind replacement — subdomain requirements, AT Protocol integration gaps, and early impressions.</description>
			<link>https://devlog.croft.click/2025/05/21/leaflet-testing</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/05/21/leaflet-testing</guid>
			<pubDate>Wed, 21 May 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
		</item>
		<item>
			<title>Custom Lexicons and Dynamic Link Board</title>
			<description>Added custom lexicon definitions for status records and replaced static links with a dynamic link board from AT Protocol.</description>
			<link>https://devlog.croft.click/2025/05/12/lexicons-dynamic-links</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/05/12/lexicons-dynamic-links</guid>
			<pubDate>Mon, 12 May 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>Collaborative Platformer</title>
			<description>A collaborative 3D platformer game built with Godot.</description>
			<link>https://devlog.croft.click/2025/05/02/platformer-collab</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/05/02/platformer-collab</guid>
			<pubDate>Fri, 02 May 2025 00:00:00 GMT</pubDate>
			<category>game</category>
		</item>
		<item>
			<title>My Journey to NixOS</title>
			<description>Adopting NixOS on the Dell Inspiron 3501 — from macOS user to declarative Linux config, the learning curve, and what actually clicked.</description>
			<link>https://devlog.croft.click/2025/04/20/nixos-journey</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/04/20/nixos-journey</guid>
			<pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate>
			<category>infra</category>
		</item>
		<item>
			<title>Website SvelteKit Migration</title>
			<description></description>
			<link>https://devlog.croft.click/2025/04/08/website-sveltekit-migration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/04/08/website-sveltekit-migration</guid>
			<pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>sveltekit</category>
			<category>migration</category>
		</item>
		<item>
			<title>Migrating the Site to SvelteKit</title>
			<description>Rebuilding the website from scratch using SvelteKit for better performance and a more modern development experience.</description>
			<link>https://devlog.croft.click/2025/04/08/migrating-to-sveltekit</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/04/08/migrating-to-sveltekit</guid>
			<pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>tooling</category>
		</item>
		<item>
			<title>Reverse Engineering an Apple Shortcut</title>
			<description>Deconstructed dame.is's dynamic avatar Apple Shortcut and rebuilt it as a Python automation — hourly profile image updates via AT Protocol.</description>
			<link>https://devlog.croft.click/2025/02/23/apple-shortcut-reverse-engineering</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/02/23/apple-shortcut-reverse-engineering</guid>
			<pubDate>Sun, 23 Feb 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>tooling</category>
			<category>python</category>
		</item>
		<item>
			<title>Avatar Updater Bot</title>
			<description>Automatically updates a Bluesky profile avatar on a schedule with optional banner updates.</description>
			<link>https://devlog.croft.click/2025/02/21/avatar-updater</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/02/21/avatar-updater</guid>
			<pubDate>Fri, 21 Feb 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
		</item>
		<item>
			<title>Gradient Profile Banner Generator</title>
			<description>Generates gradient profile banners for Bluesky users with custom sizing and grain effects.</description>
			<link>https://devlog.croft.click/2025/02/20/gradient-generator</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/02/20/gradient-generator</guid>
			<pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
		</item>
		<item>
			<title>PDS Backup Tool</title>
			<description>CLI tool for backing up AT Protocol PDS repositories.</description>
			<link>https://devlog.croft.click/2025/02/19/pds-backup</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/02/19/pds-backup</guid>
			<pubDate>Wed, 19 Feb 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>infra</category>
		</item>
		<item>
			<title>Dynamic Assets & Music Integration</title>
			<description>Implementing a hue-shifting favicon, dynamic embed images, and static music stats.</description>
			<link>https://devlog.croft.click/2025/02/09/dynamic-assets-music</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/02/09/dynamic-assets-music</guid>
			<pubDate>Sun, 09 Feb 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
			<category>music</category>
		</item>
		<item>
			<title>Theme System and Multi-Theme Support</title>
			<description>Theme toggle with multiple colour themes, persisted via localStorage, later expanded for WCAG 2.1 AA compliance.</description>
			<link>https://devlog.croft.click/2025/02/03/theme-system</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/02/03/theme-system</guid>
			<pubDate>Mon, 03 Feb 2025 00:00:00 GMT</pubDate>
			<category>website</category>
		</item>
		<item>
			<title>Struggles Adapting to the AT Protocol</title>
			<description>Early experiences with the AT Protocol SDK — confusing docs, Python and TypeScript friction, and the learning curve of a new API paradigm.</description>
			<link>https://devlog.croft.click/2025/01/30/atproto-struggles</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/01/30/atproto-struggles</guid>
			<pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>reflection</category>
		</item>
		<item>
			<title>Website AT Protocol Integration</title>
			<description></description>
			<link>https://devlog.croft.click/2025/01/28/website-atproto-integration</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/01/28/website-atproto-integration</guid>
			<pubDate>Tue, 28 Jan 2025 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>atproto</category>
			<category>integration</category>
		</item>
		<item>
			<title>AT Protocol Website Rewrite</title>
			<description>Replaced static HTML with a dynamic AT Protocol-powered frontend fetching data from the PDS.</description>
			<link>https://devlog.croft.click/2025/01/27/atprotocol-website-rewrite</link>
			<guid isPermaLink="true">https://devlog.croft.click/2025/01/27/atprotocol-website-rewrite</guid>
			<pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>website</category>
		</item>
		<item>
			<title>Winter Overhaul — A Fresh Start</title>
			<description>A complete overhaul of the website, focusing on a cleaner aesthetic and simplified architecture.</description>
			<link>https://devlog.croft.click/2024/12/05/winter-overhaul</link>
			<guid isPermaLink="true">https://devlog.croft.click/2024/12/05/winter-overhaul</guid>
			<pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>design</category>
		</item>
		<item>
			<title>Bluesky Markov Chain Bot</title>
			<description>Ported the Markov chain bot to Bluesky with configurable character limits.</description>
			<link>https://devlog.croft.click/2024/06/09/bluesky-markov-bot</link>
			<guid isPermaLink="true">https://devlog.croft.click/2024/06/09/bluesky-markov-bot</guid>
			<pubDate>Sun, 09 Jun 2024 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
		</item>
		<item>
			<title>Bean Dumper Rewrite</title>
			<description></description>
			<link>https://devlog.croft.click/2024/06/06/bean-dumper-rewrite</link>
			<guid isPermaLink="true">https://devlog.croft.click/2024/06/06/bean-dumper-rewrite</guid>
			<pubDate>Thu, 06 Jun 2024 00:00:00 GMT</pubDate>
			<category>bean-dumper</category>
			<category>rewrite</category>
			<category>logging</category>
		</item>
		<item>
			<title>Awoo Bot — Wolf Sounds on Bluesky</title>
			<description>Bot that posts wolf sounds to Bluesky with variable delay and nocturnal probability weighting.</description>
			<link>https://devlog.croft.click/2024/05/19/awoo-bot</link>
			<guid isPermaLink="true">https://devlog.croft.click/2024/05/19/awoo-bot</guid>
			<pubDate>Sun, 19 May 2024 00:00:00 GMT</pubDate>
			<category>atproto</category>
			<category>bots</category>
		</item>
		<item>
			<title>Mastodon Markov Chain Bot</title>
			<description>First bot — a Markov chain text generator for Mastodon.</description>
			<link>https://devlog.croft.click/2024/03/02/mastodon-markov-bot</link>
			<guid isPermaLink="true">https://devlog.croft.click/2024/03/02/mastodon-markov-bot</guid>
			<pubDate>Sat, 02 Mar 2024 00:00:00 GMT</pubDate>
			<category>bots</category>
		</item>
		<item>
			<title>The Birth of Ewan's Corner — Git Migration</title>
			<description>Transitioning the website to a Hugo-powered digital garden with git version control.</description>
			<link>https://devlog.croft.click/2024/02/21/website-launch</link>
			<guid isPermaLink="true">https://devlog.croft.click/2024/02/21/website-launch</guid>
			<pubDate>Wed, 21 Feb 2024 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>personal</category>
		</item>
		<item>
			<title>The First Seed — Ewan's Corner is Born</title>
			<description>The original, non-git-tracked launch of my personal website.</description>
			<link>https://devlog.croft.click/2023/05/31/the-first-seed</link>
			<guid isPermaLink="true">https://devlog.croft.click/2023/05/31/the-first-seed</guid>
			<pubDate>Wed, 31 May 2023 00:00:00 GMT</pubDate>
			<category>website</category>
			<category>personal</category>
		</item>
	</channel>
</rss>