Sign in

Ryan

@rschristian.dev
1.1K followers 95 following 1.1K posts

Implicit "It depends" l Open Sourced Shenanigans github.com/rschristian l @preactjs.com stuffs

PostsRepliesMedia
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 6h
Thank you everyone for the feedback, pull requests and issues we've gotten over the years, it has enabled this release! preactjs.com/blog/preact-...
preactjs.com
Preact 11 – Preact
The wait is finally over: Preact 11 is here!
061
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 6h
Preact 11 is out 🎉 We’ve been hard at work at making our diffing use modern features like moveBefore , leveraging ESM for tree-shaking Preact Compat and ensuring you have a great experience with resumed hydration.
47017
Reposted by Ryan
jviide.iki.fi @jviide.iki.fi · 29/09/2026
I didn't want to be the one to say it, but someone has to. Preact 11 will kill all of us.
2545
Reposted by Ryan
Álvaro Montoro @alvaromontoro.com · 29/09/2026
The W3C released a new HTML element out of nowhere. It was the element of <surprise>.
27215
Ryan @rschristian.dev · 28/09/2026
Looking at 404 records always fascinates me; often it's a good reminder about outdated links somewhere, but just as often, you see things that make you go "Huh? What? Why?" To the person requesting `/blog/rss.xml` thousands of times over the past month, I shall add a duplicate output just for you.
110
Reposted by Ryan
François Best @francoisbest.com · 25/09/2026
Haven't been active much here, sorry, AI-in-OSS burnout is real. How do you care when nobody else does? When nobody engages? When all the human connection is gone? When all you read is AI slop? I want to go back to coding for fun. Because whatever this is, it's very much _not_ fun.
1611111
Reposted by Ryan
LaurieWired @lauriewired.bsky.social · 22/09/2026
You know what’s harder than performance optimization? …Deoptimization. It’s a pretty fun concept you use every day without realizing it. The *only* reason modern dynamic languages can “fly so close to the sun” is because they have a safety-net when they over optimize.
1737
Ryan @rschristian.dev · 15/09/2026
I love getting spam PRs only to navigate to their profile to see the user has also submitted hundreds of other PRs to hundreds of repos in ~5 minutes and GitHub doesn’t for a second slow them down. Bot detection 25 years ago was better than what GitHub can scrape together today, it’s astounding.
1212
Ryan @rschristian.dev · 09/09/2026
It somehow gets even worse the deeper you go
020
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 08/09/2026
Preact 11 will be tree-shakeable, you pay what you use of preact/compat. Soon you won't pay for createElement when using the jsx method. We're continuously trying to give the smallest bundle size, and 600 bytes saved might not seem like a lot but... to us it is
Side-by-side BundleJS comparison showing preact/compat before and after becoming tree-shakeable. The current version bundles render at 7.06 kB gzip with a 1.56 MB publish size, while the release candidate bundles the same import at 6.49 kB gzip with a 601 kB publish size.
1603
Reposted by Ryan
Gergely Orosz @gergely.pragmaticengineer.com · 06/09/2026
What’s the problem w using LLMs to write stuff you want other people to read -emails, articles, posts- and why are people (like me!) so incredibly hostile that they will block you/mute you/block your domain, to never read anything from you again? Bryan spells it out. Read it:
1120029
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 05/09/2026
Preact 11 has been long in the making and I'm really proud of what came out the other end. It has quite some history as we first started working on a backing-node (fiber-like) structure for Preact but reversed.
2408
Reposted by Ryan
Konnor Rogers @konnorrogers.com · 30/08/2026
Well, its as ready as it will ever be. Still a lot of stuff I want to do, examples I want to make, but I think its time to share it. Over the past few months I've been working on Downflow. A library for adding small amounts of reactivity to your DOM. konnorrogers.github.io/downflow/
konnorrogers.github.io
Downflow
Let your state flow
7649
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 26/08/2026
Preact 11.0.0-rc.1 is here ⚛️ preact/compat code is now tree-shakeable, with representative single-export bundles shrinking by up to ~28%. Plus: more size wins, better HTML attribute types and maintenance fixes. This will most likely be the last rc - feedback is appreciated
preactjs.com
Upgrading from Preact 10.x – Preact Guide v11
Upgrade your Preact 10.x application to Preact 11
3459
Reposted by Ryan
Eric Alper @thatericalper.com · 24/08/2026
13912
Reposted by Ryan
Jake Lazaroff @jakelazaroff.com · 20/08/2026
pretty wild how liberating it is to write code that just works in the browser without a build step
1337
Ryan @rschristian.dev · 20/08/2026
It's still incredibly pleasing to run through old projects converting TS into JS + JSDoc. I made the decision to cut out TS (excluding `.d.ts` files, they get a pass) from all my personal projects years ago and I'm still very much convinced that's the right move. TS as an authoring format ain't it.
3312
Ryan @rschristian.dev · 14/08/2026
Firefox, even with hardware acceleration, chokes so hard the second any site adds a few filters or blur effects to their CSS. I shouldn't be dropping to 10 fps scrolling a static site. Thank god for Tampermonkey as much of the web these days (largely from AI garbage) abuses these styles to no end.
240
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 13/08/2026
Now that we fully leverage ESM for Preact 11, tree-shaking compat is actually possible! github.com/preactjs/pre...
github.com
Tree-shake feature-specific compat hooks by JoviDeCroock · Pull Request #5203 · preactjs/preact
NoteThe idea was created by Jovi and this PR was authored by GPT5.6-sol Resolves #1529 Description We need tree-shaking in preact/compat. A lot of the options hooks are exclusive to a given featur...
0263
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 10/08/2026
Released the first release candidate of Preact 11 and I'm pretty proud that all of the packages combined actually shrunk by 100 bytes while adding A LOT of features!
A screenshot of bundle-js where we export preact, preact/hooks and preact/compat on the release candidate tag. It evaluates to 9.25kb gzip
3565
Ryan @rschristian.dev · 03/08/2026
Damn, can't use new codepen without logging in? I mostly used it as a quick & handy REPL, guess I'm switching to jsfiddle
250
Ryan @rschristian.dev · 01/08/2026
Yes FedEx, I’m sure you really did attempt to deliver that package. The complete black screenshot of “my front door” and submitting that update from ~20 blocks away really sells it.
130
Ryan @rschristian.dev · 22/07/2026
The recent-ish changes Bluesky made to animations across the iOS app are a great example of how you can take a fine app & make it feel sluggish, slow, and frustrating in the pursuit of “flare”. It’s constantly showing me down as I wait for menus to shift in & off the screen.
020
Reposted by Ryan
Steven Beshensky @sbesh.bsky.social · 18/07/2026
Huuuuuge framework site update framework.sbesh.com the new site is live along with framework v0.11 and UI v0.3. shout out to @preactjs.com for being absolutely great to build on. Special thanks go out to @infrequently.org for helping me sort out some framework loading performance issues.
framework.sbesh.com
hono-preacthono-preact
One framework from the edge to the browser: Hono on the server, Preact on the client, and a single typed connection for routing, data, mutations, and realtime.
0101
Reposted by Ryan
Momo @heyheymomo.bsky.social · 16/07/2026
Rise and grind
4 panel momo comic:

Panel 1: momo in bed. We see the sun has risen through the bedroom window. Text reads “I wake up”

Panel 2: momo behind his table. There’s a coffee pot and a pink cup of coffee on it. Text reads “pour myself a little coffee”

Panel 3: he’s in a chair behind the table with an opened laptop and a glass of water. It says “check my little emails”

Panel 4: we see he left his house. Door still a little bit open. Text: “ignore them a little bit” as momo gleefully goes to play outside rather than answering his work duties
2077071850
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 16/07/2026
I've released what I think is one of the last betas for Preact 11 - github.com/preactjs/pre... is live. Go try it out, give feedback and read up on the migration guide at preactjs.com/guide/v11/up...
preactjs.com
Upgrading from Preact 10.x – Preact Guide v11
Upgrade your Preact 10.x application to Preact 11
1255
Reposted by Ryan
Niki @nikitonsky.mastodon.online.ap.brid.gy · 12/07/2026
Trying to figure out what’s clickable in modern UI
14670344
Reposted by Ryan
Twonks @twonks.bsky.social · 13/07/2026
Great job 👏
9099273233
Reposted by Ryan
Keith Cirkel @keithamus.social · 04/07/2026
Happy 4th July American friends! Consistent feedback from my JND game was people wanting to test their strength at specific hues; some claimed they were better at detecting reds, or blues. So I figured a special "Whats My JND 4th July Edition" could do just that! 🫡🫡🫡🇺🇸🇺🇸🇺🇸🫡🫡🫡 k9l.io/jnd-4th-july
k9l.io
What's My JND? - 4th July Edition
The 4th July edition. Old Glory Blue versus a creeping algae green. How small a colour difference can you actually see?
2126
Ryan @rschristian.dev · 03/07/2026
Edelweiss seems to have misplaced an entire plane’s worth of checked bags, not quite sure you do that but I guess I’m wearing the same clothes for the next few days. Yayyyyy…. Oh, and their terms say they’re liable for minor toiletries only if my bag doesn’t turn up. What a sense of responsibility.
030
Ryan @rschristian.dev · 29/06/2026
Really happy with OVpay today. Forgot to check out as I was switching trains (dumb traveler mistake + tight 2-minute transfer + many cancellations). Went to the website after to see not only could I update my check out point after the fact, but they didn’t even force me to make an account to do so!
110
Reposted by Ryan
sophie alpert @sophiebits.com · 25/06/2026
got frustrated recently at work about people writing using AI instead of using their brains! here's my take on it: sophiebits.com/2026/06/25/t...
sophiebits.com
There are no lossless transformations of natural-language text
1522166
Ryan @rschristian.dev · 27/06/2026
Whilst I’m a bit wary of increasing the security expectations of OSS maintainers, Jovi has been doing incredible work on this front in fleshing out happy paths amongst the many footguns and workflows without miserable amounts of friction. Really brilliant stuff that can benefit the entire ecosystem
051
Reposted by Ryan
Open Web Advocacy @open-web-advocacy.org · 25/06/2026
"Apple’s claims for WebKit’s superior speed, privacy and security don’t stand up to scrutiny. It’s time for the regulators to strike down Apple’s restrictive terms and conditions, and compel Cupertino to fix BrowserEngineKit, so we can have genuine competition on iOS." 🧵👇️ (1/7) 📖Read more:
brucelawson.co.uk
Bruce Lawson's personal site
» “Safari. Blazing fast. Incredibly Private.” – O RLY!?!?
2207
Reposted by Ryan
Smooth Dunk @smoothdunk2.bsky.social · 24/06/2026
when AI companies go bankrupt
5 panel comic

Panel 1: Red Guy with “AI” on his chest is falling backwards off a cliff. A Purple Guy is running to “save him”

Panels 2-4: Close up of Purple Guy’s hands gradually going from outstretched fingers to a closed fist

Panel 5: Red Guy falls backwards off the cliff while Purple Guy does nothing but show him his middle finger.
143145154808
Ryan @rschristian.dev · 21/06/2026
Good to be back after… 8 years 😳 Gettin’ a bit harder to lie to myself & say I’m not getting old these days. Damn you math
Picture of the Rijksmuseum in Amsterdam
130
Reposted by Ryan
e.w. niedermeyer @niedermeyer.online · 17/06/2026
this may well be the defining joke of our era theonion.com/guy-who-suck...
theonion.com
Guy Who Sucks At Being A Person Sees Huge Potential In AI
SAN MATEO, CA—After spending the past three decades of his life being totally unable and unwilling to engage in any meaningful way with the world around him, James Parker, a local guy who sucks at bei...
3087262382
Reposted by Ryan
Bramus @bram.us · 11/06/2026
YES, Dark Mode Toggles _should_ be a browser feature. I wrote about this before: brm.us/dark-mode-ov... Find the link to the Chrome Bug in the post, and hit the star next to it to "upvote" the bug. (I even have a prototype extension to provide this for you: brm.us/chrome-dark-...) #cssday
brm.us
Dark Mode Toggles Should be a Browser Feature
When implementing Dark Mode and ways to toggle it, developers currently need to duplicate code and roll their own toggle implementation. What if, instead, browsers would take care of all that?
610023
Reposted by Ryan
da share z0ne @dasharez0ne.bsky.social · 15/05/2026
FINALLY - dashare.zone ADMIN
A SKELATAN IN A DATA CENTER "EVER SINCE I WAS A CHILD I WANTED TO HAVE MY DATA COLLECTED AND STORED BY A THIRD PARTY " MORE WRITTING ABOUT THIS AT patreon.com/dasharez0ne - DASHARE.ZONE ADMIN
0994250
Ryan @rschristian.dev · 11/06/2026
So many Safari 26.x features I'd love to have access to, but I refuse to upgrade & be subjected to liquid (gl)ass. Really need actual browser choice on iOS.
380
Ryan @rschristian.dev · 27/05/2026
I must waste 20+ minutes a day fighting GitHub's file navigation in the PR review page. 9 times out of 10 I'll click a file in the tree and be brought to a completely different file, which I will then take a few moments to figure out as the code looks nothing like I'd expect. It's so frustrating.
120
Reposted by Ryan
Cassie Evans @cassiecodes.bsky.social · 26/05/2026
I'm so tired of being expected to read things that no one has bothered to write.
241393165
Ryan @rschristian.dev · 23/05/2026
It's been years and yet forward/back nav is still very busted on Bluesky, it's a gamble where I'll end up. I'm honestly confused as to how you even break client-side routing this hard -- I'll click "Home" or a post link and it sends me back 8 entries in the stack instead of pushing a new entry?
010
Ryan @rschristian.dev · 22/05/2026
Went to see a band I like last week & the exclusive ticket provider required my phone number. Oh well I thought, what can ya do? I’ve gotten no less than 8 spam calls a day every day since. It’s insane. I was already ignoring most calls but now I can never answer
141
Reposted by Ryan
antony @antony.is · 11/05/2026
There's a time and place for AI. It's never, and nowhere.
093
Reposted by Ryan
Steven Beshensky @sbesh.bsky.social · 18/05/2026
Alright, it's been forever since I've shared what I'm up to with y'all. I've been spending time on and off working on a little JS framework (because there aren't enough of those yet). github.com/sbesh91/hono... It's extremely aptly named hono-preact, because it's.... built on hono and preact.
github.com
GitHub - sbesh91/hono-preact
Contribute to sbesh91/hono-preact development by creating an account on GitHub.
272
Reposted by Ryan
Marvin Hagemeister @marvinh.dev · 17/05/2026
Speeding up the JS ecosystem OXC edition 🚀 We made both oxfmt and oxlint 50% faster on projects with >50k directories. marvinh.dev/blog/speedin...
marvinh.dev
Speeding up the JavaScript ecosystem - oxlint and oxfmt
Future versions of oxlint and oxfmt will be ~50% faster on projecs with many (>=20k) directories.
618024
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 13/05/2026
You only notice how bad npm's 2FA token reuse is once you transition 102 repositories to use provenance with GitHub environment gating... I had a 2FA code in my clipboard that worked for a solid minute
3133
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 12/05/2026
New post on supply chain security for npm packages — covering the publishing workflow I push in the projects I maintain, plus the consumer side: why pnpm is a better default than npm, its native minimumReleaseAge config, and trustPolicy: no-downgrade to catch provenance regressions automatically.
jovidecroock.com
Hardening publishing &amp; consuming
A practical look at reducing blast radius in npm publishing workflows — environment-gated OIDC publishing, limiting manual access, and what consumers can do on their end.
2167
Reposted by Ryan
Cabel Sasser @cabel.panic.com · 11/05/2026
this graduation speech moment is notable, and her amazed shock at having failed to read the room feels instructive. when you're inside the bubble, you think everybody else is. but everybody isn't.
992272966878