Devon Govett's Avatar

Devon Govett

@devongovett.bsky.social

I write javascript

3,925 Followers  |  75 Following  |  369 Posts  |  Joined: 24.04.2023  |  1.9063

Latest posts by devongovett.bsky.social on Bluesky

Ok, I didn't know that. Thanks for the response!

btw, I've spent all day playing with Parcel and RSC, and I think it's amazing

Many projects, SPAs and even server node apps, could adopt RSC incrementally thanks to Parcel

01.08.2025 23:40 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Yeah pnpm is a bit strict about dependencies so you have to install @parcel/runtime-rsc into your project.

01.08.2025 23:33 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Yeah that's exactly what it does. If you actually disable it focus will be lost and screen readers will lose their place / no longer hear updates about what's happening. So you either want focus to remain on the button or move somewhere else that's relevant.

01.08.2025 19:25 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

Yeah we've been blocked on having to still support old react versions, but maybe we could add it as a feature that only works in newer versions somehow.

01.08.2025 19:24 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Button Documentation for Button in the React Aria package.

There are some important considerations to how you set up the DOM structure and hide the text with css too. Detailed info in our docs: react-spectrum.adobe.com/react-aria/B...

01.08.2025 19:08 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Getting the accessibility right for pending buttons is actually kinda complicated too, which is why we have built in support for it in React Aria. Just swapping between text/spinner won’t usually be announced by a screen reader, and you want the button to remain focusable (not disabled).

01.08.2025 19:07 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

Yeah there’s still a lot of web dev stuff on Twitter. Pretty much the only reason I’m still on there. It’s often more like self promotion than actual discussion but it does seem more active.

27.07.2025 22:46 β€” πŸ‘ 18    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

currently no

27.07.2025 19:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

btw, all the diagrams in this article are rendered using graphviz in a React Server Component to generate SVG at build time. Super convenient.

27.07.2025 18:59 β€” πŸ‘ 42    πŸ” 2    πŸ’¬ 1    πŸ“Œ 1

Yeah I don’t want to throw anyone under the bus, especially since most of the other implementations aren’t official / complete yet. Next.js works basically like Parcel though. The others may be blocked on supporting a unified module graph.

27.07.2025 15:38 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
How Parcel bundles React Server Components Parcel v2.14.0 added support for React Server Components. This post is a deep dive into the internals: how RSCs integrate with a bundler, what directives like "use client" actually do, how code splitt...

Wrote an article about how React Server Components integrate with a bundler. It's a deep dive into how code splitting works, how RSCs eliminate network waterfalls, how environment directives like "use client" work, CSS loading, etc. Check it out! devongovett.me/blog/parcel-...

26.07.2025 23:40 β€” πŸ‘ 116    πŸ” 19    πŸ’¬ 5    πŸ“Œ 1

I think you should be able to just do `styled(RACComponent)`. And then you can use the data attributes to style it based on the state

24.07.2025 17:23 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

yes, by default it triggers one "page" before coming into view (the video is really slowed down here so you can actually see the spinners). That can also be customized via the scrollOffset prop.

23.07.2025 21:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

All React Aria Components now pass through global DOM events and attributes. This improves React Aria's interoperability with other libraries.

For example, you can now use a React Aria button with a Radix Dropdown.

Hopefully this helps make incrementally adopting React Aria much easier!

23.07.2025 17:18 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Our infinite scroll API is pretty cool. You render a special item at the end of your list that triggers its onLoadMore callback when scrolled into view.

This enables a list to have multiple sections from different APIs, or a tree to infinite scroll within each branch.

23.07.2025 17:17 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
July 22, 2025 Release Happy summer! This release adds support for async loading and infinite scrolling, improves form integration and drag and drop interactions, and adds support for additional DOM events and attributes.

New React Aria release!

πŸ“œ Infinite scroll in ListBox, GridList, Table, & Tree
βš›οΈ React 19 actions form reset
🐲 Virtualized Tree drag and drop
🀝 Opened API to DOM events – works better with other libraries
πŸ“† DatePicker autocomplete
πŸš€ And TONS more!

react-spectrum.adobe.com/releases/202...

23.07.2025 17:15 β€” πŸ‘ 38    πŸ” 4    πŸ’¬ 2    πŸ“Œ 0
Preview
parcel/packages/utils/rsc/src/server.tsx at v2 Β· parcel-bundler/parcel The zero configuration build tool for the web. πŸ“¦πŸš€. Contribute to parcel-bundler/parcel development by creating an account on GitHub.

like this github.com/parcel-bundl...

17.07.2025 05:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I would do pre-rendering in the "react-server" environment since it's running in node not in the browser. Just like the express server. Then import only "react-dom/server.edge" and "react-server-dom-parcel/client.edge" with {env: "react-client"}. Then you only need two environments.

17.07.2025 05:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Hmm if you’re requesting it in the β€œreact-client” environment you’re gonna get a browser polyfill since node builtins don’t exist there. During SSR, the same bundles that run in the browser will be run in Node (important for client references to work correctly). There’s no SSR-specific environment.

17.07.2025 05:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Very happy that Parcel helped enable this! 🀩

17.07.2025 01:53 β€” πŸ‘ 39    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Preview
Untitled UI React β€” React Component Library Untitled UI React is the world’s largest collection of open-source React components built with Tailwind CSS and React Aria. Just copy, paste, and build.

Absolutely MASSIVE collection of beautifully designed and expertly crafted components built with React Aria. 🀩

Everything from base components to entire marketing sections and dashboards. Comes with a matching Figma UI kit, CLI, themes, icons, and more.

Incredible.

www.untitledui.com/react

15.07.2025 17:46 β€” πŸ‘ 29    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Not yet, I need to add one. Stay tuned here for now

14.07.2025 22:15 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Started writing an article about RSCs from a bundler integration perspective. Might end up being multiple parts though. I realized I needed to explain how code splitting works without RSCs first. Already getting kinda long…

14.07.2025 04:06 β€” πŸ‘ 35    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

I think people are also hesitant to add Babel back into their build after just managing to remove it in many cases. I know the compiler isn’t really a Babel transform internally but it does add an extra parse/generate step, which can be non-trivial for large apps.

13.07.2025 16:11 β€” πŸ‘ 38    πŸ” 0    πŸ’¬ 4    πŸ“Œ 0

Yeah TS definitely has a very different use case than most apps. No worries, I was just curious.

07.07.2025 22:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Definitely agree, but I don't think this is one of those cases. This affects many real-world apps (whether it's a good idea to rely on or not), and that's why webpack/parcel currently wrap modules in many cases. The esbuild/rollup issues also have lots of upvotes/comments.

07.07.2025 21:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Curious if you tried destructuring imports and using module-local variables. Most exported values are not re-assigned so don't need the live-binding part of ESM. Could be slightly slower initialization, but at least no repeated object access in hot paths.

07.07.2025 21:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Sure. I just think correctness should be the default, and if you want to do potentially unsafe optimizations that should be opt-in. That's already the case for many other optimizations that minifiers perform for example.

07.07.2025 16:44 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

True. An alternative could be to destructure exports that are never re-assigned at the top of the module where imported. That could have a similar benefit in many cases.

07.07.2025 16:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

There are other ways to get similar benefits. Most exports aren’t re-assigned so simply destructuring when imported could work. Priority of constituencies applies to API design and specs, not at the expense of correctness.

07.07.2025 16:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@devongovett is following 20 prominent accounts