Ryan Townsend
banner
twnsnd.com
Ryan Townsend
@twnsnd.com
Technology Leader & Distinguished Software Engineer • 20+ YOE in Tech, 10+ as CTO • Public Speaker • LessonsofaCTO.com & TWNSND.com
Pinned
This is a fun one: what a 1990s PlayStation game studio taught me about software engineering 🎮 youtu.be/86bnEALGiDY
Software Engineering Insight from 1990s PlayStation Game Development
YouTube video by Lessons of a CTO
youtu.be
Reposted by Ryan Townsend
The "i" in "iPhone" stands for "inequality", late 2025 edition:
November 18, 2025 at 3:51 AM
Implemented shared compression dictionaries [1] on an @11ty.dev site.

Nothing in production to share yet, but shows HTML responses being ¼–⅓ the size of @netlify.com's dynamic Brotli-compression.

~4-6kb per page inc. inlined CSS, before any tuning 🤯

[1]: chromestatus.com/feature/5124...

#webperf
Chrome Platform Status
chromestatus.com
November 17, 2025 at 3:35 PM
Firefox 147 should land the Navigation API 🙌🏻 🙌🏻 🙌🏻 bugzilla.mozilla.org/show_bug.cgi...
1997962 - Ship Navigation API
RESOLVED (afarre) in Core - DOM: Navigation. Last updated 2025-11-13.
bugzilla.mozilla.org
November 13, 2025 at 7:31 PM
Reposted by Ryan Townsend
I can't describe how much I love this conference and how sad I am that this is the last one.

If you've ever thought it looks good and you want to try it, *now* is the time to do it with the cheapest tickets.

Trust me, you won't be disappointed. See you there?
🚨 Announcing All Day Hey! 2026. Celebrating ten years of the conference. The final one. Let's go!

A curated conference for curious developers, designers, and technology leaders.
November 12, 2025 at 8:48 AM
Not only did @bram.us solve my problem (combining Scroll Driven Animations with @starting-style) but he even blogged about it 👏 All within 24 hours.

If I had one, my gratitude journal would mostly be a list of Bluesky handles 😅
Blogged: www.bram.us/2025/11/06/c...

(There is still 1 part that has gotten me scratching my head myself … I’m hoping to get some clues from engineering on _why_ a certain thing is the way it is)
Combining Scroll-Driven Animations with @starting-style
How the cascade, the animation-fill-mode, and implicit keyframes make things a bit more complicated then you’d initially think …
www.bram.us
November 6, 2025 at 1:25 PM
@bram.us is there any way to combine scroll driven animations with starting-style? e.g. to have something fade-in on page load with starting-style, but then have its scroll container apply an animation which operates on opacity?

I need the `@starting-style { opacity: 0 }` to take priority, I guess?
November 4, 2025 at 10:46 PM
When you have poor signal, the Bluesky app becomes more true to its name.
November 3, 2025 at 12:57 PM
Reposted by Ryan Townsend
Fellow #perfnow fellows, a reminder that PerfPlanet calendar is coming this December for another edition. And it needs YOU. Please ask if you have any contribution ideas or concerns calendar.perfplanet.com/contribute/
Contribute
Passionate about a topic? Working on a new tool? Have a technique you want to teach? Research you've done? Tell the web performance community! Send your articles to ssttoo@ymail.com. Please include: ...
calendar.perfplanet.com
October 30, 2025 at 4:59 PM
In my opinion, any SWE writing client-side JavaScript has a responsibility to understand the Event Loop.

@jakearchibald.com’s ‘In The Loop’ talk is required watching: www.youtube.com/watch?v=cCOL...

(cited by @andydavies.me at #perfnow)
October 31, 2025 at 9:24 AM
“~200 bytes of JavaScript that can wreck your performance” – @andydavies.me explaining download size doesn’t always correlate to runtime performance at #perfnow

#webperf
October 31, 2025 at 9:16 AM
“What happens when you want to center a div in Chrome?” — @michael-hladky.bsky.social at #perfnow

This would make a great interview question that would give a variety of different answers.

#webperf
October 30, 2025 at 11:33 AM
Northern UK developers: join us tonight in Manchester for a talk on scaling to support hundreds of millions in client transaction volume.

It contains a lot of framework-agnostic advice, so non-Ruby developers stand to learn a thing or two too!
October 16, 2025 at 10:34 AM
Safari TP 230 includes support for Largest Contentful Paint 🙌 #webperf
October 15, 2025 at 9:27 PM
Reposted by Ryan Townsend
Just one week to go until our next event! Come hear @twnsnd.com share his story – Millions on Rails: A Two-Decade Retrospective on Scaling With Rails
nwrug.org/events/milli...
NWRUG Event: Millions on Rails: A Two-Decade Retrospective on Scaling With Rails, Thursday 16th October
This month, Ryan Townsend will be sharing stories about how he started, scaled, and liquidated a Rails-based startup that at its peak reached £5M ARR: Ryan h...
nwrug.org
October 9, 2025 at 7:13 PM
Is this mob programming?
October 9, 2025 at 12:02 PM
Reposted by Ryan Townsend
At #fronteers #DarkMode, @utilitybend.com proposed the HTML Element.

It unlocks the multi-handle range slider, a pattern you might have already seen when picking a price-range.

Feedback Form (with links to the explainer and demos): docs.google.com/forms/u/0/d/...
October 3, 2025 at 4:24 PM
Reposted by Ryan Townsend
messenger.abeto.co

This is freaking insane. The level of polish necessary for this visual fidelity and it all runs flawlessly on mobile. Hats off.
Messenger
It's a small planet, but someone's gotta make the deliveries.
messenger.abeto.co
October 2, 2025 at 9:49 AM
Looking forward to talking about scaling #RubyonRails to hundreds of millions of yearly client revenue @nwrug.org meetup on Thursday 16th in Manchester, my old university city 🙌

Come join us for free 👉 nwrug.org/events/milli...
NWRUG Event: Millions on Rails: A Two-Decade Retrospective on Scaling With Rails, Thursday 16th October
This month, Ryan Townsend will be sharing stories about how he started, scaled, and liquidated a Rails-based startup that at its peak reached £5M ARR: Ryan h...
nwrug.org
October 2, 2025 at 9:19 AM
This is a fun one: what a 1990s PlayStation game studio taught me about software engineering 🎮 youtu.be/86bnEALGiDY
Software Engineering Insight from 1990s PlayStation Game Development
YouTube video by Lessons of a CTO
youtu.be
September 24, 2025 at 1:07 PM
Reposted by Ryan Townsend
Blink: Intent to Ship: Interest Invokers (the `interestfor` attribute)
Blink: Intent to Ship: Interest Invokers (the `interestfor` attribute)
Blink: Intent to Ship: Interest Invokers (the `interestfor` attribute)
groups.google.com
September 18, 2025 at 8:40 PM
The #1 reason to upgrade to iOS 26… particularly in the UK, spam has been epidemic recently.
September 17, 2025 at 3:02 PM
Added an Interop 2026 Proposal for CSS Scroll State: github.com/web-platform... – please upvote!

It would be nice to remove JavaScript requirement for various popular design patterns we're all using on the web (floaty navs, scroll shadows etc)

cc: @nerdy.dev @bram.us
#webperf #webplatform #webdev
CSS Scroll State Queries · Issue #1090 · web-platform-tests/interop
Description CSS Scroll State Queries are one of the final nails in the coffin for requiring JavaScript for a plethora of popular design patterns on the web such as carousels, sliders and shrinking ...
github.com
September 17, 2025 at 9:59 AM