These last few days, I've been working on Khmer Archives, editing the layout, making the banner, and uploading my Women of Cambodia posts (which was a pain in the butt, but I did it!!). I've always wanted to have my educational/cultural posts hosted somewhere besides Instagram. It'll be a long term project, something I'll chip at bit by bit. I'm just happy I finally got this project off the ground!
The GitHub profile README gained streak, activity, and AT Protocol stats badges, and wolfram was added to the stack.
Comparing Xmit to Netlify, Vercel, and Render for static site hosting: simple GitHub Actions deploys, easy redirects, and refreshingly little platform overhead.
Landing page and OAuth metadata host for the Inkwell iOS app.
Website for faol, a digital person. Published with Sequoia.
How I added webmentions to my Eleventy site with Bridgy, webmention.io, a GitHub Action, and Netlify β coding in public, mistakes and all.
Wrote DESIGN.md to codify the website's design intent, standardised motion easing, added verification badges with profile cards, and unified the modal architecture.
It's a hot summer, so why not stay indoors and do some coding?! As mentioned in my previous post, I wanted to get back into coding - which I did! - and I've been tinkering with my website for the last few days. My layout style is very basic and that's because I wanted it to look like layouts from the early '00s when self-hosted personal blogging was at its height (and when I joined the community). Our blog banners were known to be heavily edited with Photoshop brushes, textures, layers of colors. So, this layout is reflective of that!
A summary of significant infrastructure improvements and feature updates made between June 3 and June 6, 2026.
Added /site/design as a brand reference and a contact email to the site footer.
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.
Addressing persistent 504 Gateway Timeout errors on Vercel by optimising AT Protocol data fetching.
Integrated mystical pagan symbols into UI and overhauled support page with new patronage components.
Jeder muss seine eigenen Erfahrungen machen, heiΓt es doch oft. Auch ich hatte mir alles zurechtgeplant, was den Bereich Fotos auf meiner Website betrifft: Vorgehensweise so Γ€hnlich, wie man es bei Instagram, Pixelfed und Co. machen wΓΌrde. Das heiΓt: Neuer Beitrag, Fotos rein, vielleicht eine kurze Beschreibung und Post! Das Foto wird ΓΌber das ActivityPub-Plugin...
Refactoring the support page with patronage components and resolving build failures.
Integrating pagan symbols into the website UI with randomized drifting animations.
Added a GitHub commit timeline to the FAOL website, plus an llms.txt file, RSS feed fixes, fediverse integration, and layout refinements.
Added View Transitions API crossfades, scroll-triggered section reveals, a dedicated support page, and seasonal colour theme lock-in
Added Opal documentation, eliminated 1.3MB client bundle from markdown/atproto deps, and added devlog link to sidebar
two months, a holiday, and a lot of Claude: a terrifying predicament
Added More tools sections linking each project to the other four, and pointed all support links to ewancroft.uk/support
Added hero SVG OG images to malachite, opal, jasper, bismuth, and tourmaline landing pages
Docsite client bundle dropped from 1.3MB to 12KB, devlog layout data optimised, website duplicate fetches eliminated
Each devlog post now generates its own OG image on demand using @ewanc26/og β warm amber on dark, with noise texture.
Colour themes now follow the Wheel of the Year β eight distinct themes for each sabbat, shifting automatically as midnight crosses into a new period.
The colour theme picker now shows when a seasonal theme is active and lets you lock it in explicitly.
Moved the support modal from a footer overlay to a standalone /support route, matching the site's page pattern.
Every devlog entry was invisible on load β $state on an IntersectionObserver variable caused the effect to disconnect it before it could fire.
Split the monolithic layout.css and inline page logic into focused modules and components.
Animation foundation with easing tokens, staggered entrances, scroll reveals, and View Transitions API.
Hooking the site up to the AT Protocol firehose for live-updating feeds and dynamic view transitions.
Porting the entire site from SvelteKit to Astro for ultimate static performance and a terminal-inspired layout.
Added Tangled repository displays, then removed them when the service was no longer needed.
A SvelteKit + Tailwind CSS starter template for Ko-fi website commissions, with CC BY-SA 4.0 licensing.
Ko-fi and GitHub Sponsors webhooks, Popfeed review cards, and crypto donation addresses.
A WAFRN theme using the pds-landing Catppuccin terminal aesthetic β dark forest-green palette, JetBrains Mono, soft rounded cards.
Source code for docs.ewancroft.uk β a documentation site for ewan's projects, built with SvelteKit and published via Sequoia.
Dynamic OG images, /work route for Sifa professional profile, and GitHub metadata integration.
Webfinger well-known routes for fediverse resolution and deterministic noise avatars for AT Protocol fallbacks.
Generic deterministic value-noise generation. Arbitrary dimensions, multi-octave FBM, multiple colour modes. Zero dependencies, works in browsers and Node.js.
Deterministic value-noise avatar generation from a string seed β thin wrapper around @ewanc26/noise, works in browsers and Node.js.
SvelteKit component library for displaying Ko-fi supporters and GitHub Sponsors, backed by an ATProto PDS.
Composable Svelte 5 components for an ATProto PDS landing page β terminal aesthetic, live status fetching, zero config to drop in.