Tag: typescript

41 posts

Created faol-website — digital person blog template

New SvelteKit + Sequoia website for faol with blog under /notes, timeline, tag filtering, TOC, and RSS


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

Website: view transitions, scroll animations, support page

Added View Transitions API crossfades, scroll-triggered section reveals, a dedicated support page, and seasonal colour theme lock-in


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

Docsite: Opal docs, client bundle perf, devlog sidebar

Added Opal documentation, eliminated 1.3MB client bundle from markdown/atproto deps, and added devlog link to sidebar


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

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

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

RSC Server Functions and Libraries

How portable is "use server" anyway?

Apr 22, 2026

On being a cover band (& more)

Dev Log 48: 2026-04-11

Apr 12, 2026

Don't pass className to your components

Why className and style props make your life harder, not easier


B
Ben Bachem
benbachem.de
Apr 6, 2026

Whither GPU? - Demystifying Matrices

Building intuition for matrix transforms by building a rotating cube with Canvas2D APIs.


Afloat Boats icon
Afloat Boats
afloat.boats
Mar 27, 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/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
Software as Fan-Art

Software as Fan-Art

Dev Log 46: 2026-03-07

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

@ewanc26/utils

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

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/tid

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

Mar 3, 2026

bluesky-awoo-bot

A simple Bluesky bot that posts random wolf noises at random intervals. Unmaintained.

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

Prefer explicit discriminators over "x" in y in TypeScript

A look at why the "x" in y syntax in TypeScript can lead to dead code.


B
Ben Bachem
benbachem.de
Feb 14, 2026

Day 0.0.0 - Hello, World!

Day 0.0.0 of building my exit strategy of my corporate 9-5 whilst working as a senior software engineer.

Jan 20, 2026

Giving Up on Rust: A Post-Mortem

I should not be sorry.

Dec 7, 2025

I Accidentally Did a DoS Attack On My PDS

How not to make a first impression.

Nov 14, 2025

Building a dynamic form with Svelte and Typescript


M
Matteo Gassend
matteogassend.com
Feb 22, 2024

end-to-end encryption with sveltekit


M
Matteo Gassend
matteogassend.com
Sep 24, 2023

Publishing articles to multiple platforms with decorators and interfaces


M
Matteo Gassend
matteogassend.com
Sep 17, 2023

Appwrite Hackaton: MoviePlay


M
Matteo Gassend
matteogassend.com
Jun 9, 2023