Addressing persistent 504 Gateway Timeout errors on Vercel by optimising AT Protocol data fetching.
A summary of significant infrastructure improvements and feature updates made between June 3 and June 6, 2026.
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.
Added /site/design as a brand reference and a contact email to the site footer.
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 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.
Svelte UI component library extracted from ewancroft.uk — pluggable layout, card, SEO, and UI primitive components alongside Svelte stores and a multi-theme config system.
Based off Ellane W's based off Scott Nesbit's Eight questions for Donald Brown
A server-side AT Protocol link shortener powered by your Linkat board. No database required.
Classic Snake with AT Protocol OAuth login and high score saving to your PDS.
Generate 24 sky-gradient images (one per hour) for use as Bluesky avatars or banners.
An alternate SvelteKit frontend for Linkat showing a curated directory of AT Protocol user profiles. Unmaintained.
A Python script that converts a string of text into a pixel art image with per-character colours. Unmaintained.
Source code for ewancroft.uk — a personal site powered by AT Protocol, built with SvelteKit 5 and Tailwind CSS 4.
SvelteKit library for reading and writing AT Protocol longform content via site.standard.* and pub.leaflet.* records — with a complete design system, federated comments, publishing tools, and content verification.