Tag: typescript

48 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

Optimizing Your Next.js Site's Fast Origin Transfer and ISR Reads

Next.js Link prefetching quietly burned through 15 GB of bandwidth on my Vercel-hosted blog. Here's how I fixed it.


M
Mike Bifulco
mikebifulco.com
Feb 8, 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

The results of my PostHog AB Test are in!

I dive into the data from my PostHog AB Test and show you how to interpret the results.


M
Mike Bifulco
mikebifulco.com
Sep 29, 2024

How I found a missing change on my next.js site with PostHog

I tackle a significant drop in my newsletter subscribers. Join me as I dive into the data using PostHog, identify and fix critical errors, and ultimately switch from ConvertKit to Resend.


M
Mike Bifulco
mikebifulco.com
Sep 1, 2024

Fixing the sign-up problem on my site using PostHog Product analytics

In part two of my product analytics journey, I tackle a subscriber drop, dive into PostHog data, fix key errors, and switch from ConvertKit to the developer-friendly Resend.


M
Mike Bifulco
mikebifulco.com
Aug 12, 2024

Product Analytics for engineers: Debugging a conversion problem on my next.js site

This video dives into the process I used to diagnose and debug a conversion problem on my personal website using Posthog, a powerful product analytics tool.


M
Mike Bifulco
mikebifulco.com
Aug 4, 2024

Seed your Supabase database with this simple pattern

Learn how to seed your Supabase database with this simple pattern.


M
Mike Bifulco
mikebifulco.com
Jul 23, 2024

Struggling with TypeScript: why not?

One of your biggest skills as a person-on-the-internet is your ability to research and learn new things.


M
Mike Bifulco
mikebifulco.com
Jul 9, 2024

Add Structured Data to your Next.js site with JSON-LD for better SEO

Structured Data can be added to your site tell Google and other search engines what type of content is on each page using a metadata format called JSON-LD.


M
Mike Bifulco
mikebifulco.com
Apr 25, 2024

Rebuilding an open source content-rich site with Astro, TypeScript, and React

A YouTube live coding stream, learning to build content-driven sites with the Astro Web Framework.


M
Mike Bifulco
mikebifulco.com
Mar 22, 2024

The first year of being a technical startup cofounder

Reflecting on my first year as CTO of Craftwork, and the many things I've learned along the way.


M
Mike Bifulco
mikebifulco.com
Mar 5, 2024

Building a dynamic form with Svelte and Typescript


M
Matteo Gassend
matteogassend.com
Feb 22, 2024