Tag: pkgs

50 posts

pkgs Workspace and Lexicon Updates

Build configuration updates for pnpm-workspace.yaml and centralization of lexicon and domain constants.


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

Malachite v0.4.4 — Apple Music & YouTube Music Support

Adding import support for Apple Music and YouTube Music, and updating branding.


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

Toolkit Unification — Sign-out, TIDs, and Usage Analytics

Unifying TID generation, adding sign-out functionality, and implementing toolkit usage analytics.


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

AI Discoverability — AGENTS.md and llms.txt

Adding AGENTS.md and llms.txt files across repositories to improve AI discoverability and documentation.


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

Tourmaline Polish — PDS Rate Limiting & Component Reactivity

Implementing PDS rate limiting, fixing routing issues, and refining component reactivity for Tourmaline.


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

Tourmaline v0.5.0 — Advanced Analytics & Layout Refinements

Porting analytics, upgrading CTA copy, and refining mobile responsive layouts for Tourmaline.


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

Landing-ui polish: shared layout, cross-references, icon cleanup, support consolidation

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


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

Removed analytics references and duplicate links across landing-ui projects

Replaced analytics taglines, removed duplicate footers from LandingPage and all about pages, deduplicated Tourmaline header navLinks


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

Tourmaline folded into pkgs monorepo, landing-ui improvements

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


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

Tourmaline: analysis moves to web worker

Moved the entire analysis pipeline from server-side POST to a browser web worker, fixing Vercel body size limits for large scrobble histories


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

Opal: web OAuth import, thread splitting, TID rkeys

Added web OAuth import flow, post threading for long content, and TID-based record keys to the Twitter/Mastodon/Threads to Bluesky converter


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

Tourmaline v0.4.0 — tabs, sessions, story recap, date ranges, phases

Profile redesign with tabbed layout, listening sessions, on this day, story-mode recap, date range filtering, and listening evolution phases


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

pkgs: hero SVGs, bismuth flags, croft-click devlog

Added OG hero SVGs to all five project landing pages, bismuth fetch flags, and devlog project to croft-click


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

Tourmaline wrapped insights

Minutes listened, music evolution, remarkable days, discovery, and yearly wrapped card with scroll-reveal animations


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

colorTheme: Wheel of the Year seasonal themes

Replaced astronomical season detection with traditional Wheel of the Year sabbat dates, added midnight auto-update and reset-to-seasonal


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

Tourmaline new profile cards

Listening clock, listening stats, and service origins


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

Tourmaline personality card redesign

Added genre bars, mood indicators, stat badges, and dynamic SVG layout to the personality card


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

Tourmaline analysis algorithm improvements

Era analysis, time-of-day mood weighting, genre blending, Gini-based loyalty, full-artist genre profile


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

Tourmaline share page fixes

Fixed personality card SVG clipping and switched to aturi.to for post links


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

Cross-references and unified support links

Added More tools sections linking each project to the other four, and pointed all support links to ewancroft.uk/support


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

Replaced inline symbolic characters with Lucide icons

Swapped unicode symbols for Lucide icon components across malachite, opal, jasper, bismuth, tourmaline, landing-ui, and croft-click


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

OG hero images across all five projects

Added hero SVG OG images to malachite, opal, jasper, bismuth, and tourmaline landing pages


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

tourmaline v0.1.0 — AT Protocol scrobble analyser with share-to-Bluesky

First release of tourmaline — personality archetypes, genre profiles, mood mapping, and share-to-Bluesky for Teal.fm scrobbles.


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

Website: Wheel of the Year seasonal themes with auto-midnight updates

Colour themes now follow the Wheel of the Year — eight distinct themes for each sabbat, shifting automatically as midnight crosses into a new period.


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

Website: Seasonal Theme Reset

The colour theme picker now shows when a seasonal theme is active and lets you lock it in explicitly.


E
ewan's devlog
devlog.croft.click
May 8, 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

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 — 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

GitHub Metadata Package

Package for fetching and displaying GitHub repository metadata.


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

Supporters, Popfeed, and Donation Addresses

Ko-fi and GitHub Sponsors webhooks, Popfeed review cards, and crypto donation addresses.


E
ewan's devlog
devlog.croft.click
Mar 23, 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

@ewanc26/noise

Generic deterministic value-noise generation. Arbitrary dimensions, multi-octave FBM, multiple colour modes. Zero dependencies, works in browsers and Node.js.

Mar 12, 2026

@ewanc26/noise-avatar

Deterministic value-noise avatar generation from a string seed — thin wrapper around @ewanc26/noise, works in browsers and Node.js.

Mar 8, 2026

@ewanc26/supporters

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

Mar 8, 2026

@ewanc26/pds-landing

Composable Svelte 5 components for an ATProto PDS landing page — terminal aesthetic, live status fetching, zero config to drop in.

Mar 7, 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

@ewanc26/ui

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.

Mar 5, 2026

@ewanc26/atproto

AT Protocol service layer extracted from ewancroft.uk — profile fetching, Standard.site documents, Bluesky posts, music/mood status, Tangled repos, and a built-in in-memory cache.

Mar 5, 2026

@ewanc26/utils

Shared utility functions extracted from ewancroft.uk — date formatting, number formatting, URL helpers, validators, RSS generation, and locale detection.

Mar 5, 2026

Pkgs Monorepo — Workspace Migration

Migrated to pnpm workspaces, published @ewanc26/tid to npm, and consolidated packages.


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

@ewanc26/tid

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

Mar 3, 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

@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