Tag: tooling

50 posts

Bismuth Web 0.2.0

Added publication fetching, expanded conversion options, and rebuilt parts of the converter UI.


E
ewan's devlog
devlog.croft.click
May 9, 2026

devlog: fix OG metatags

OG image URLs were relative — crawlers need absolute URLs. Index page was also missing an OG image entirely.


E
ewan's devlog
devlog.croft.click
May 9, 2026

Bismuth: fetch subcommand flag fixes

Added --frontmatter and --output flags to the fetch subcommand, and bumped to 0.2.4.


E
ewan's devlog
devlog.croft.click
May 9, 2026

Performance audit and fixes across all three sites

Docsite client bundle dropped from 1.3MB to 12KB, devlog layout data optimised, website duplicate fetches eliminated


E
ewan's devlog
devlog.croft.click
May 9, 2026

devlog: Dynamic OG image generation with @ewanc26/og

Each devlog post now generates its own OG image on demand using @ewanc26/og — warm amber on dark, with noise texture.


E
ewan's devlog
devlog.croft.click
May 8, 2026

Timeline Scroll Reveal Fix

Every devlog entry was invisible on load — $state on an IntersectionObserver variable caused the effect to disconnect it before it could fire.


E
ewan's devlog
devlog.croft.click
May 8, 2026

pkgs: Remove Umami analytics from all packages

Umami analytics retired — all Umami script tags removed from bismuth-web, malachite-web, jasper-web, opal-web, and croft-click.


E
ewan's devlog
devlog.croft.click
May 8, 2026

Devlog Modularisation

Split the monolithic layout.css and inline page logic into focused modules and components.


E
ewan's devlog
devlog.croft.click
May 8, 2026

The Great Astro Rewrite

Porting the entire site from SvelteKit to Astro for ultimate static performance and a terminal-inspired layout.


E
ewan's devlog
devlog.croft.click
May 2, 2026

Opal — Cross-Platform Bluesky Migration

Convert Twitter, Mastodon, Threads, and Nostr posts to Bluesky with thread splitting and TID-based rkeys.


E
ewan's devlog
devlog.croft.click
May 1, 2026

Opal

Convert microblog posts from Twitter, Mastodon, Threads, and Nostr to AT Protocol Bluesky posts.

Apr 30, 2026

croft.click Landing Page and Shared Landing UI

Landing page at croft.click and a shared @ewanc26/landing-ui package for all web packages.


E
ewan's devlog
devlog.croft.click
Apr 26, 2026

Bismuth: On Refraction and Conversion

Apr 23, 2026

Bismuth — Document to Markdown Converter

Converts site.standard.document records to Markdown with math and code highlighting.


E
ewan's devlog
devlog.croft.click
Apr 22, 2026

Jasper

Convert Instagram data exports into posts, stories, and videos on Grain or Spark while preserving original timestamps.

Apr 15, 2026

Jasper — Instagram to Grain/Spark Converter

Full OAuth flow for importing Instagram posts to AT Protocol as Grain/Spark records.


E
ewan's devlog
devlog.croft.click
Apr 14, 2026

Four Days with Letta Code

Started using Letta Code — a persistent coding agent with memory. 80 commits across 15 repositories in four days.


E
ewan's devlog
devlog.croft.click
Apr 11, 2026

Sifa Professional Profile Scripts

Scripts for populating and maintaining the Sifa professional profile on AT Protocol.


E
ewan's devlog
devlog.croft.click
Apr 11, 2026

Pre-commit Configs and Nix Flakes Across All Projects

Added pre-commit hooks and Nix flakes to all 30+ projects for consistent dev environments.


E
ewan's devlog
devlog.croft.click
Apr 3, 2026

@ewanc26/wafrn-theme

A WAFRN theme using the pds-landing Catppuccin terminal aesthetic — dark forest-green palette, JetBrains Mono, soft rounded cards.

Mar 23, 2026

@ewanc26/bismuth

Convert richtext-block documents from the Standard.site ecosystem (Leaflet, Pckt, Offprint) to Markdown — available as both a CLI tool and a TypeScript library.

Mar 23, 2026

docsite

Source code for docs.ewancroft.uk — a documentation site for ewan's projects, built with SvelteKit and published via Sequoia.

Mar 20, 2026

@ewanc26/supporters

SvelteKit component library for displaying Ko-fi supporters and GitHub Sponsors, backed by an ATProto PDS.

Mar 8, 2026

@ewanc26/pkgs

Ewan's personal package monorepo — language-agnostic workspace with TypeScript, Rust, and Python packages.

Mar 23, 2026

@ewanc26/pkgs

Ewan's personal package monorepo — the canonical home for @ewanc26/tid, @ewanc26/atproto, @ewanc26/ui, and @ewanc26/utils.

Mar 6, 2026

nix-config-tools

Rust CLI tools for managing nixos/nix-darwin configurations — now part of the @ewanc26/pkgs monorepo.

Mar 6, 2026

There Is Nuance, Nae a Binary

Mar 6, 2026

Website Comm Template

SvelteKit template with Resend-backed contact form and dark mode.


E
ewan's devlog
devlog.croft.click
Mar 5, 2026

@ewanc26/tid

Zero-dependency, spec-compliant AT Protocol TID generation for Node.js and browsers.

Mar 3, 2026

atproto-shortlink

A server-side AT Protocol link shortener powered by your Linkat board. No database required.

Apr 10, 2026

bluesky-avatar-updater

Automatically update your Bluesky avatar (and banner) every hour based on the time of day.

Apr 10, 2026

bluesky-gradient

Generate 24 sky-gradient images (one per hour) for use as Bluesky avatars or banners.

Apr 10, 2026

knotted-docker

A Dockerised Tangled knot server with optional Cloudflare Tunnel routing.

Apr 10, 2026

linkat-directory

An alternate SvelteKit frontend for Linkat showing a curated directory of AT Protocol user profiles. Unmaintained.

Apr 10, 2026

Malachite

Import your Last.fm and Spotify listening history to the AT Protocol network using the fm.teal.alpha.feed.play lexicon.

Mar 14, 2026

pds-backup

A Bash script for automated, resumable PDS backups via rsync over SSH with change detection and cron scheduling.

Apr 10, 2026

@ewanc26/tangled-sync

CLI tool for syncing GitHub repositories to Tangled with ATProto record publishing — now part of the @ewanc26/pkgs monorepo.

Apr 10, 2026

llm-analyser

Python tool for analysing .docx files and generating essays using a local Ollama model — now part of the @ewanc26/pkgs monorepo.

Feb 23, 2026

@ewanc26/svelte-standard-site

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.

Feb 23, 2026

Docsite Launch

Centralised project documentation at docs.ewancroft.uk, published to AT Protocol via Sequoia.


E
ewan's devlog
devlog.croft.click
Feb 23, 2026

Malachite Rename and Feature Expansion

Renamed lastfm-importer to malachite, added Spotify support, interactive mode, and improved rate limiting.


E
ewan's devlog
devlog.croft.click
Jan 13, 2026

Standard.site and Why Coordination Matters More Than You Think

Interoperability! …and more?

Jan 5, 2026

Joining Jollywhoppers: On Collaboration, Minecraft Mods, and Finding Your People

Dec 28, 2025

Welcome to Macintosh: Documenting a Hidden Easter Egg

"Hidden", more like. It's an open secret.

Dec 17, 2025

Giving Up on Rust: A Post-Mortem

I should not be sorry.

Dec 7, 2025

The Yew Has Wilted, and I Can't Water It

Anxiety is killing me.

Dec 1, 2025

Shortlink Service for AT Protocol

Shortlink service resolving AT Protocol handles and DIDs with QR codes and domain-aware shortcodes.


E
ewan's devlog
devlog.croft.click
Nov 24, 2025

I Accidentally Did a DoS Attack On My PDS

How not to make a first impression.

Nov 14, 2025

Malachite — Last.fm to Teal.fm Converter

CLI tool for importing Last.fm and Spotify scrobbles to AT Protocol as Teal.fm records.


E
ewan's devlog
devlog.croft.click
Nov 13, 2025

croft.click and the Paralysis of Possibility

...I guess I could ask my dad if he wants a redirect link to his business?

Nov 10, 2025