Octane – React’s programming model, compiled

octanejs.dev

114 points by nnx 13 hours ago


rco8786 - 9 hours ago

> Measured, not vibes

Sort of ironic considering that there are a LOT of vibe tells in the copy throughout this page. It's a neat looking project, it's a shame that every other sentence has Claude's fingerprints all over it.

ricardobeat - 6 hours ago

Would look more appealing without the AI flavour. If you're vibe coding, do yourself a favor and write website copy yourself - it's the only evidence of human input or oversight your project will have.

Guillaume86 - 7 hours ago

Just took a glance so I may be completely wrong, fell free to ignore, but if I understand correctly, tsrx is just syntactic sugar for normal tsx code and does not enable anything new?

If this is the case: I think introducing tsrx as part of Octane muddies the water a bit and makes me more hesitant to try (even if it is optional).

The idea to make tsx files more readable may be interesting but in that case it should go into its own separate project, and maybe just put a lang toggle in Octane docs and a page about tsrx compat, that way if people are intrigued by the new syntax they can just look it up but the docs stay focused.

aatd86 - 11 hours ago

I recognize this comparison style. Definitely generated by Claude. haha

vivzkestrel - 5 hours ago

- please post 10 new frontend frameworks daily to HN

- i ll take that over the AI, GPT, LLM, Agent stuff on HN anyday now

adzm - 5 hours ago

An interesting feature is this:

> A current-state getter. useState and useReducer return [state, update, getState], so a delayed callback can read the latest value instead of a stale capture.

There are currently a few workarounds in React for this, and using other state management libs also give you non-reactive access to current state, but this is a big help in certain situations.

For example, a callback / event that you pass to all your child elements, that needs to access the current state when run, therefore normally needs to be recreated with the new state captured (in useCallback) whenever state changes, which then causes all child components to re-render. Non-reactive access to current state in callbacks avoids this entirely.

There are some hacks that fix this by wrapping the updated callback in a ref and updating it with an event (for example, https://usehooks-ts.com/react-hook/use-event-callback useEventCallback as implemented various places) and returning a stable reference to a function that calls that saved one, though I always wonder if there are downsides to this.

exceptione - 4 hours ago

The copy reads like it is react but improved. Which begs some questions: what strings are attached and why wouldn't the authors of react adopt this? What reasons would developers have to not switch from react to octane?

xpl - 9 hours ago

Does it have any overlaps with React Compiler — like the auto-memoization that they have?

Also, is there any read on the downsides / shortcomings / caveats of Octane vs. vanilla React?

mapcars - 11 hours ago

It seems like an attempt to port Svelte's features to React-like api?

xpl - 10 hours ago

The model is a bit different from React (no deps, hooks can be under ifs) — do coding agents recognize it or they get confused when they see that code?

ksec - 8 hours ago

I think the Github link [1] does a much better job at explaining what it is.

[1] https://github.com/octanejs/octane

hellohello2 - 3 hours ago

Looks interesting. But does anyone really like the useState useContext etc. React model? Might as well make a better one if you are going to be compiling no?

ARussell - 5 hours ago

It would be nice to see how this differs from SolidJS.

adithyassekhar - 11 hours ago

It took a while to render when I clicked the Differences from React button on an iphone 17.

Tajnymag - 11 hours ago

I'm surprised how good Vue Vapor mode is from the performance comparison table.

torment-nexus - 8 hours ago

This is an interesting problem. A similar approach that worked for us was to only load the tools the agent actually needs for each task.

efficax - 7 hours ago

This looks like an interesting project but reading these AI slop web pages is so exhausting. At least turn your brain on long enough to explain what your project does

epolanski - 10 hours ago

Interested in experimenting with Octane, wish that docs emphasized more the SSR aspect of it, because I'm looking for a Ruby/Phoenix/Php alternative in TypeScript land, and one with React-like apis would be cool.

projektfu - 4 hours ago

[dead]

KoleSeise1277 - 9 hours ago

[dead]

cpt100 - 7 hours ago

Why are people still building these frameworks? Can't we just use LLMs to build the best JS framework?