Advertisement · 728 × 90

Posts by Joe Savona

Yeah I’d agree with that. LLMs absolutely democratize building proof of concepts and internal tools. But in my experience building really high quality software still requires very close supervision from experienced developers, even on frontier models at the highest thinking levels.

3 days ago 13 1 2 1

Yeah, you absolutely can produce very high quality software with LLMs. I don’t think you save that much time on new, interesting features, bc producing something great was never primarily blocked by typing speed. But a great eng/team can absolutely make something great.

3 days ago 9 0 1 0

It’s called code and a compiler ;-)

1 week ago 0 0 0 0

Wanted: a detailed specification format to ensure that AI doesn’t drift. Preferably with tooling that automatically checks if there are other areas of the codebase I need to consider as I work on the spec. Maybe realtime highlighting of any obvious mistakes I’m making in the spec document ;-)

1 week ago 4 0 1 0

Combine that w manually spot checking some code and automated review and we’re good.

2 weeks ago 0 0 0 0

The strategy is that this is reviewable and we’ll land it. We don’t need thorough human review of every line of code: instead we are focusing on verifying the test setup. If it’s tested properly (every single compiler pass produces identical intermediate state), that gives us a ton of confidence..

2 weeks ago 1 0 2 0

That first port was more of an exercise in “how much quality can I get for a nearly automated port” to which the answer was “nowhere near enough”. So I went back and spent a lot more time getting it right. Good experience learning the limits of agents atm.

3 weeks ago 20 0 0 0

Eagle eyed observers will notice the first commit on this branch was from *after* my post here. I threw everything out and started all over again! The original port was pretty good but had some fundamental issues. Things i had told the agent to avoid, but where it gradually drifted from the guidance

3 weeks ago 10 0 1 0

The React Compiler rust port is now up as an in-progress PR at github.com/facebook/rea... - more to come as we test and polish.

3 weeks ago 93 11 4 2
Advertisement

“These are advanced features that can be skipped for now”

Citation needed

4 weeks ago 7 0 0 0

We primarily expect to publish integrations but happy to discuss on a GitHub issue once the rust version is out there and you can try it.

1 month ago 1 0 0 0

I’m thinking we’ll switch to the Rust version only, as soon as it’s ready

1 month ago 6 0 0 0

No, I think AI changed the tradeoffs

1 month ago 1 0 1 0

General thought is that I wish I’d had the time to port by hand. You learn by writing. But alas.

Anyway yeah, will try to share more learnings somewhere

1 month ago 5 0 0 0

Once the port completes we have to iterate, test, look at perf, and then ship. Will try to get a ln experimental preview out asap.

1 month ago 9 0 1 1

There are a few design choices the agent made along the way that I want to change, but nothing major enough to stop the process. I got the key design choices locked in on the initial plan. We’ll just do some polish passes at the end.

1 month ago 6 0 1 0
Advertisement

One big unlock (h/t @ricky.fm) was to have the agent create custom agents for planning, implementation, review, and orchestration of the project. That’s now running for a few days with minimal intervention.

1 month ago 11 0 3 0

We’re pretty close to having an initial Rust port of React Compiler. My approach was to iterate on the plan document (write it manually, have the agent expand, edit, repeat). Then try to run it, see what goes wrong, revert back to the plan, tweak the plan, repeat.

1 month ago 99 12 4 7

Your post was totally fair! I appreciate you sharing your experience :-)

3 months ago 2 0 0 0

The parts of the post describing subtle nuances are about which specific ways of breaking immutability the compiler does/doesn’t catch. But developers don’t need to remember which way of crafting an error will be caught or not! They just need to remember the rule, which is straightforward.

3 months ago 4 0 1 0

Thanks for sharing your experience! We’ll take a look to see if there are any of the cases you flagged where we can detect an error automatically.

3 months ago 1 0 1 0

There are two aspects: the rule & how we enforce. The rule is simple: don’t mutate stuff that crosses JSX/hook boundaries. You almost certainly follow this ~all the time, else you would have crazy bugs. What feels and is more complex is that we can’t statically catch all violations of this rule.

3 months ago 2 0 1 0

What if we all got together and agreed to pay a bit of money to the government every year so that they could put together a group of trained people to protect us from masked thugs in the streets?

3 months ago 5 0 2 0

We’re exploring a different direction but I don’t have a link handy. Cc @capt.dev

3 months ago 2 0 1 0
Advertisement

Still something we have on our list to potentially optimize further in a future release

3 months ago 0 0 1 0

In this example each element will “re-render” but what that means has changed: since each item will largely no-op if its inputs haven’t changed. With React Compiler a component function executing doesn’t necessarily mean much work happens.

3 months ago 0 0 1 0

I hope we’ve earned enough trust that people don’t think we’re so naive as to _only_ rely on feedback that we hear about directly. We also look at things like adoption which accounts for people bouncing off for various reasons, as well as on our own judgment/experience.

3 months ago 2 0 0 0

Did you already have ESLint running and our plugin slowed it down, or was the slowdown from switching from a fast linter back to ESLint?

3 months ago 1 0 1 0

..and avoid rewriting the core logic. But more importantly: we are very actively expanding and building upon the compiler. We’ll hopefully be able to prioritize build performance sometime in 2026 but we’ll see how things go. The more we hear about it the easier it is to prioritize so send feedback.

3 months ago 10 2 1 1

We get that reintroducing Babel in an otherwise Rust-based toolchain slows down builds. It’s a compromise. Unfortunately the Rust-based JS tooling ecosystem is fragmented - SWC and OXC - with different parsers and AST formats. We’re still hoping to be able compile with Static Hermes

3 months ago 11 0 1 0