Joe Savona
en-js.bsky.social
Joe Savona
@en-js.bsky.social
React team at Meta
I would offer to fix it but we didn’t build that extension :-) An official React Compiler IDE is in the works, for now we recommend using the ESLint plugin in parallel w the compiler.
November 10, 2025 at 12:28 AM
Yeah the word order just clicks after a while if you’re reasonably immersed. Vocab and kanji require study even if you’re immersed.
November 9, 2025 at 5:45 PM
Customize your deck for words and phrases that you actually care about, aggressively delete cards that are boring. The time to create cards is study time.
November 9, 2025 at 5:42 PM
One thing to watch out for with these sites is that the spaces repetition they use can be absolutely awful. WaniKani is *phenomenal* for learning kanji - or would be if their SRS wasn’t garbage. You waste so much time reviewing things you don’t need. Consider using Anki for your actual reviews.
November 9, 2025 at 5:41 PM
Duplicating React Compiler’s lints is not realistic: it’s a lot of work and any community port will fall behind too. What we need is a Biome/Oxlint plugin that calls out to JS to run React Compiler. Eventually we will port the compiler to native, but we’ve got a lot more work in flight.
October 23, 2025 at 5:30 AM
I checked, @ricky.fm briefly locked it down bc of the spam the other night, but it should be open again for new issues.
October 12, 2025 at 4:35 PM
With hooks as components, if you render different components the state resets. The rules of hooks fall out of “flattening” from the component representation into a functional component - just like you have to be a bit careful when flattening async callbacks into async/await
October 12, 2025 at 12:39 AM
I really like explaining hooks as components, it makes the fact that it’s a monad clear and explains the rules of hooks:

<State initialValue={…}>
{(value, setValue) ={

}}
</State>
October 12, 2025 at 12:37 AM
If analogies were perfect they wouldn’t be analogies
October 11, 2025 at 10:50 PM
Yeah, GitHub’s spam detection is just terrible. It’s been an ongoing issue that we repeatedly raised, but no changes.

What do you mean about the repo being closed to new contributors? Anyone (except a few blocked for repeated spam) should be able to send a PR, merge rights are locked down.
October 11, 2025 at 10:48 PM
That’s awesome! So happy it worked for you :-)
October 10, 2025 at 10:06 PM
Their docs are flat out wrong about the backwards compatibility story too.
October 9, 2025 at 9:18 PM
Oh that’s brilliant. Great way to keep resolvers decoupled from GraphQL
October 9, 2025 at 5:37 PM
Should work well together!
October 9, 2025 at 5:36 PM
We have a couple rules w auto fixes, working on more.
October 9, 2025 at 5:36 PM
We now treat useMemo and useCallback as input to the compiler, which lets more cases memoize. This was changed based on feedback in the RC period.
October 9, 2025 at 5:32 PM
Going forward we’re plinking about:
* translating ESLint’s ast into Babel rather than reparsing
* exploring native wrappers (that call into JS) so that developers can continue using faster native toolchains
* long-term finding a way to get a native build of the compiler. Hopefully w static Hermes
October 9, 2025 at 5:00 PM
Finally, another issue is that ESLint and Babel use different ASTs. So we have to reparse the file.
October 9, 2025 at 5:00 PM
The rules are meant to be used together. We could probably implement some specific rules more efficiently as lightweight ast validations. But you’re meant to run - to find serious bugs - the other rules.
October 9, 2025 at 5:00 PM
We chose this approach because ESLint simply isn’t designed for tools like this - it’s built around the idea of independent lints which makes sense in many other cases. And…
October 9, 2025 at 5:00 PM
Feel you, there’s a few things we can do here.

For context, the new lint rules all share the same static analysis. This means that enabling one rule runs the compiler. We cache the results for a file, and subsequent rules just grab their rule output from that cache (LRU to avoid leaking)
October 9, 2025 at 5:00 PM
Note that we split up the compiler rule into a large number of more specific rules for different errors, so it’s much easier and future-proof to use the preset.
October 5, 2025 at 12:15 AM
To enable the compiler rules, use the `recommended-latest` preset.
October 5, 2025 at 12:14 AM
September 23, 2025 at 8:18 PM