Added publication fetching, expanded conversion options, and rebuilt parts of the converter UI.
OG image URLs were relative — crawlers need absolute URLs. Index page was also missing an OG image entirely.
Added --frontmatter and --output flags to the fetch subcommand, and bumped to 0.2.4.
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.
Every devlog entry was invisible on load — $state on an IntersectionObserver variable caused the effect to disconnect it before it could fire.
Umami analytics retired — all Umami script tags removed from bismuth-web, malachite-web, jasper-web, opal-web, and croft-click.
Split the monolithic layout.css and inline page logic into focused modules and components.
Porting the entire site from SvelteKit to Astro for ultimate static performance and a terminal-inspired layout.
Convert Twitter, Mastodon, Threads, and Nostr posts to Bluesky with thread splitting and TID-based rkeys.
Convert microblog posts from Twitter, Mastodon, Threads, and Nostr to AT Protocol Bluesky posts.
Landing page at croft.click and a shared @ewanc26/landing-ui package for all web packages.
Converts site.standard.document records to Markdown with math and code highlighting.
Convert Instagram data exports into posts, stories, and videos on Grain or Spark while preserving original timestamps.
Full OAuth flow for importing Instagram posts to AT Protocol as Grain/Spark records.
Started using Letta Code — a persistent coding agent with memory. 80 commits across 15 repositories in four days.
Scripts for populating and maintaining the Sifa professional profile on AT Protocol.
Added pre-commit hooks and Nix flakes to all 30+ projects for consistent dev environments.
A WAFRN theme using the pds-landing Catppuccin terminal aesthetic — dark forest-green palette, JetBrains Mono, soft rounded cards.
Convert richtext-block documents from the Standard.site ecosystem (Leaflet, Pckt, Offprint) to Markdown — available as both a CLI tool and a TypeScript library.
Source code for docs.ewancroft.uk — a documentation site for ewan's projects, built with SvelteKit and published via Sequoia.
SvelteKit component library for displaying Ko-fi supporters and GitHub Sponsors, backed by an ATProto PDS.
Ewan's personal package monorepo — language-agnostic workspace with TypeScript, Rust, and Python packages.
Ewan's personal package monorepo — the canonical home for @ewanc26/tid, @ewanc26/atproto, @ewanc26/ui, and @ewanc26/utils.
Rust CLI tools for managing nixos/nix-darwin configurations — now part of the @ewanc26/pkgs monorepo.
SvelteKit template with Resend-backed contact form and dark mode.
Zero-dependency, spec-compliant AT Protocol TID generation for Node.js and browsers.
A server-side AT Protocol link shortener powered by your Linkat board. No database required.
Automatically update your Bluesky avatar (and banner) every hour based on the time of day.
Generate 24 sky-gradient images (one per hour) for use as Bluesky avatars or banners.
A Dockerised Tangled knot server with optional Cloudflare Tunnel routing.
An alternate SvelteKit frontend for Linkat showing a curated directory of AT Protocol user profiles. Unmaintained.
Import your Last.fm and Spotify listening history to the AT Protocol network using the fm.teal.alpha.feed.play lexicon.
A Bash script for automated, resumable PDS backups via rsync over SSH with change detection and cron scheduling.
CLI tool for syncing GitHub repositories to Tangled with ATProto record publishing — now part of the @ewanc26/pkgs monorepo.
Python tool for analysing .docx files and generating essays using a local Ollama model — now part of the @ewanc26/pkgs monorepo.
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.
Centralised project documentation at docs.ewancroft.uk, published to AT Protocol via Sequoia.
Renamed lastfm-importer to malachite, added Spotify support, interactive mode, and improved rate limiting.
Shortlink service resolving AT Protocol handles and DIDs with QR codes and domain-aware shortcodes.
CLI tool for importing Last.fm and Spotify scrobbles to AT Protocol as Teal.fm records.