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
Ryan @rschristian.dev · 28m
Where's the whimsy and fun in not rolling the dice on every `npm install`?!
110
Ryan @rschristian.dev · 35m
The three week timer begins
120
Reposted by Ryan
Jovi 🐨 @jovidecroock.com · 7h
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 · 7h
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.
57818
Ryan @rschristian.dev · 29/09/2026
Would’ve done it for tree fiddy and a “Thanks!” comment on a fixed issue tbh
020
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
PRs very welcome to correct that if you’re willing, there’s a “Edit this page” link on the top of the blog post that’ll take you straight to the file in question on GitHub
120
Ryan @rschristian.dev · 28/09/2026
Knowing you were building a reader, I did actually think of you & your app and went to check the logs specifically to see if it was you. Geolocation points to China so unfortunately I think you’re in the clear. We do have the appropriate <link> tags on all pages, I think this is just a bad guess.
110
Ryan @rschristian.dev · 28/09/2026
That is a resource that has never existed at any point in the past and I see no references to anywhere. I'm sure it's just a buggy app, as most of these non-malicious requests are, but it's still kinda funny. It's like a river of faulty assumptions from other devs, just as they see mine.
140
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
Ryan @rschristian.dev · 26/09/2026
`git fetch origin pull/1/head:local-branch-name` This will do the trick too, just gotta push to their fork then: `git push git@github.... local-branch:remote-branch`
000
Ryan @rschristian.dev · 25/09/2026
Could, but you know, Apple isn’t logical. Fun recent post on it (if you haven’t seen it), talking about how installing is both an extra layer of privilege and not, at the same time according to Apple: bsky.app/profile/adac...
010
Ryan @rschristian.dev · 23/09/2026
I wouldn't dispute that they were more recognizable for a second, they absolutely were!
010
Ryan @rschristian.dev · 23/09/2026
Unfortunately, for what I was seeing, it was quite far past the point of being usable. There's a baseline level of aesthetics needed and the rough pixelation was pretty bad, even with a (mild) CSS blur, as I also thought to give that a shot. Looking far better now though!
100
Ryan @rschristian.dev · 23/09/2026
Gave it a bit of a test, seems the cost is that most images come out pretty jagged and rough? blurhash loses _a ton_ of info in most cases but it's rarely jarring.
210
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 · 11/09/2026
*sigh* A whole bunch of the maintainers in that community are dickheads just on a personal level, refusing to take down that quote for days (which sucks as an endorsement anyhow, an editor is supposed to be productive, looking cool very much secondary) is so dumb.
011
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
Ryan @rschristian.dev · 07/09/2026
I scored 218 points on Keyrain! Can you beat this? keyrain.meijer.works/run/AgAAANoA... That goes from chill to panic real quick
keyrain.meijer.works
218 points on Keyrain — Can you beat this?
218 points in 01:58, reaching level 6, 99% accuracy. See a letter. Hit its key. Beat this run on Keyrain.
111
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
Ryan @rschristian.dev · 06/09/2026
I need to upgrade immediately then as I too have been seeing extra FOUC lately. Glad they eventually fixed whatever it was
030
Ryan @rschristian.dev · 06/09/2026
Always a pleasure to know what's on your mind
010
Ryan @rschristian.dev · 31/08/2026
Evergreen post: bsky.app/profile/cass...
010
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
Ryan @rschristian.dev · 30/08/2026
So, IMO, sing praises of the people doing work and their ideas instead of where they're implementing them, it matters far less (and usually not at all). Frameworks don't need more users on the pile as much as they need contributors and maintainers to feel fulfilled and excited to try new ideas.
130
Ryan @rschristian.dev · 30/08/2026
I get that, but I think it's the contributors that deserve the recognition and appreciation, not the library. "Preact" itself isn't doing anything and "marketing it" usually devolves into trying to convince other people to use it / comparing against other FWs which isn't super beneficial or healthy.
130
Ryan @rschristian.dev · 30/08/2026
As for marketing... maybe, but the world could probably do with fewer folks shilling their tools in the town square and we don't want to end up like a certain tool in the space that became infamous for its reply guys. Also, we all do this in our free time and marketing is way less fun than code.
230
Ryan @rschristian.dev · 30/08/2026
Arguably a bit neater as Jacob built and/or did first implementation of a bunch of this stuff without being on the team itself (but we've all known him/of him for years ofc). If you know what you're doing, we're pretty open to larger re-thinking sorts of PRs!
230
Ryan @rschristian.dev · 30/08/2026
Felt gimmicky to me, in large part as TS annotations, in libraries you're unfamiliar with, are rarely useful on their own. Like great, I can see a function takes a param type of `OpaqueComplexObject`, but that's not super helpful as a potential user without full "Go to definition" support.
010
Ryan @rschristian.dev · 27/08/2026
It’s closer to 90%, with 100% being a re-implementation and void of any benefits. I wouldn’t say we’re all that limited though, our design is far more flexible and open to extension (like signals), we can do all sorts of things where/when we think it’s worthwhile
010
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
Ryan @rschristian.dev · 25/08/2026
Now I fully agree re:bundle size, that’s only gone the wrong way (and fast) over the past years, and perf has been danced around at best. But there has been some architectural movement I’d say.
010
Ryan @rschristian.dev · 25/08/2026
I’d say messaging + interest, as I think a lot of what’s been done holds less interest outside the core team than anticipated, but RSCs, Activity, use (for the average user), useDeferred/useOptimistic, and ViewTransition, off the top of my head, show some movement & vision for improvement.
110
Ryan @rschristian.dev · 25/08/2026
I don’t know if it’s fair to claim it’s stagnating, React has made a lot of changes over the last few years and created lots of opportunities for large architectural changes in apps IME, most of that hasn’t landed with the average user but it wasn’t for a lack of trying.
100
Reposted by Ryan
Eric Alper @thatericalper.com · 24/08/2026
13912
Ryan @rschristian.dev · 20/08/2026
Types are still there, they just get out of my way and I am not forced to insert build steps if I don’t want them. The TS lang server is where the value resides and it is perfectly capable of consuming standard JSDoc type comments.
150
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
Interesting. Usually I'd just copy the types over when needed, though I try to prefer shipping source modules when possible. I can't recall (intentionally) using `tsc` to generate files in 5 or 6 years at this point, I've found it's never very good at producing files, any files.
040
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 · 15/08/2026
We added some similar-ish rules to the Preact org a while back, haven't really seen any decrease in junk PRs (not that we were/are getting a ton to be fair) but it definitely has been helpful as instant-close justification I've found. I spend less time thinking about wording and how to reply.
Screenshot of the Preact org's Code of Conduct, containing the following text:

We recognize that LLM's have become an integral tool for many users, however when using LLMs to help write issues or pull requests, disclose this. Transparency preserves the collaborative integrity that makes open-source communities work. It's the difference between "I used AI to help structure this bug report" (honest, helpful) and silently passing off generated content as your own analysis (deceptive, counterproductive). We as maintainers want to engage with humans rather than LLM-generated messages, put time in your issue report and that will be reflected back.

Examples of unacceptable behavior by participants include:

  - The use of sexualized language or imagery and unwelcome sexual attention or advances
  - Trolling, insulting/derogatory comments, and personal or political attacks
  - Public or private harassment
  - Publishing others' private information, such as a physical or electronic address, without explicit permission
  - Other conduct which could reasonably be considered inappropriate in a professional setting
  - Writing an issue, pull request or comments through an LLM without disclosing this
120
Ryan @rschristian.dev · 14/08/2026
Soon the alerts shall only go out in Welsh, they're hopeful that will bring back the language where the signage, announcements, and schooling has failed to do so.
000
Ryan @rschristian.dev · 14/08/2026
Maybe I am, dunno, but it’s been miserable lately and I’ve had to actively avoid sites until I was willing to patch their CSS to work around the issue.
000
Ryan @rschristian.dev · 14/08/2026
I’m not on anything niche, plain Windows 10 w/ a 3070ti & up-to-date graphics drivers. I’ve had similar issues on my work-issued Mac m4 pro too, so I don’t think I’m an outlier.
100
Ryan @rschristian.dev · 14/08/2026
Tailwind use (which is also guaranteed with AI garbage sites) at least makes it easy to override I suppose.
Screenshot of the following code:

```
function styleImprovements() {
    const css = `
        .backdrop-blur,
        .backdrop-blur-sm,
        .backdrop-blur-md,
        .panel {
          --tw-backdrop-blur: 0 !important;
        }
    `;
    const style = document.createElement('style');
    style.appendChild(document.createTextNode(css));
    document.querySelector('body').appendChild(style);
}
```
020
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