I had the misfortune of having to use Azure back in 2018 and was appalled at the lack of quality, slowness. I was in GitHub forums, helping other customers suffering from lack of basic functionality, incredible prices with abysmal performance. This article explains a lot honestly.
Google’s Cloud feels like the best engineered one, though lack of proper human support is worrying there compared to AWS.
React hooks always struck me as object-oriented programming reinvented through the back door of functions. We started with pure components, decided we needed state after all, and ended up with magic functions that stash and retrieve state from some hidden context — essentially re-deriving this with worse ergonomics and an implicit ordering contract. Some part of it was the functional language paradigms like immutability that were popular elsewhere at the time bolted on to JavaScript.
What I find refreshing about Gea is that it doesn't fight the language. Stores are classes. Computed values are getters. State mutation is just assignment.
I've been waiting for a framework that embraces the actual paradigms of the language it's written in, rather than inventing a parallel universe of conventions. Excited to try this one.
That said, I'm genuinely curious where the edges are. Was React's complexity accidental due to its architecture or was it the price of solving genuinely hard problems (concurrent rendering, suspense boundaries, fine-grained error recovery) (which by the way most consumers of the library did not care that much about)?
Does Gea's simplicity hold up as apps get complex, or will we eventually hit patterns where the escape hatch is the complexity React already internalized?
One thing I've been very glad for in all the years I've been using TS+Vue is that I'm not forced into JavaScript's craptastical OOP system that was a bolted-on kludge well before ES2015 class syntax was even a thing. Having to use patterns like "foo.bar.bind(foo)" is what I consider fighting the language. Having to know that `this` is something different in an event handler, and thus having to bind it to some other variable, unless of course I use an arrow function, where there is no `this` at all, is fighting the language.
When I use static closures, functions are just functions, closures are closures, things just work. I don't have anything against OOP whatsoever, and I'm even fine with prototype-based OO, but the the way it's done in JS is littered with everything from papercuts to outright landmines. So a framework like WebComponents or this one, that forces me to use JS's OO mechanics, is a non-starter. Of course so are React hooks, which are barkingly insane for completely different reasons.
Thank you for the thorough comments! I wholeheartedly agree. And while I believe React invented most of its problems (mostly because we've been engineering GUI solutions since mid-70's and, as I always say, Excel, the god of all UI apps, shipped in 1985) I also acknowledge modern problems like suspenses that occur as a result of elevated expectations.
Gea is frankly very new, and for example doesn't ship a solution for suspenses or fine-grained error recovery yet. And since noone, including me, built a very complex Gea app yet, we don't exactly know if the simplicity will hold up.
But Gea is the 3rd generation of my frontend frameworks, and I've been building vanilla JS-esque frontends since 2011 (when I released my first library, tartJS). The main feature of a good framework is to contain code complexity as the app grows and I believe as GUI engineers we have some good patterns to flatten the complexity. Gea is just trying to hide repetitive DOM updates behind a compiler, and while it has proven somewhat difficult to account for all the different ways people (or AI) write JavaScript, I'm constantly improving the compiler with new patterns.
That's why Gea ships with several GUI app implementations—my approach is kind of simple. If I can get AI to generate several different UI apps in different domains, I can capture a good enough set of complexities for which I can deliver solutions. I've already fixed tens of bugs that I could only see as a result of building a UI with the library.
Having said that, it's still very early for Gea. I guess only time will tell if we will have to resort to different, non-idiomatic solutions to handle more complex demands. At least the philosophy is very clear—Google built its original web 2.0 apps with Google Closure Library, an imperative UI framework, with lots of repetitive boilerplate. And that was enough to give us maps and google docs, etc., so I am hopeful for the future that we will be able to find idiomatic solutions.
In fact the precedent to Gea, my previous framework erste made use of `pug` tagged template literals! I started with that base, but then decided to ship with JSX instead. This would be a great addition to Gea and would love to see it as a community contribution. I'm hesitant about web components but if we could help web components to feel more "plain old JS" to write, it would be awesome!
I suspect everything about react seems like a backflip to get access to things we kind of needed in the first place.
Reacts complexity I believe are due to the fact that it's an overlay onto a system with high impedance mismatch - only then some degree of inherent complexity.
You can and you can't. There's still plenty of very popular libraries that don't behave correctly with it. That's more on the libraries than on the compiler but that's the current state of things.
React Compiler(originally react-forget) is a build-time tool that automatically optimizes your React app by automatically memoizing your code. It only replaces the manual ceremony of useMemo, useCallback, and React.memo with automatic caching at compile time. So, it's fixing the problem they introduced by React itself or you we can call it a "trade-off" in a sense
> The people in charge of AI keep telling me to hate it
Anthropic’s Dario Amodei deserves a special mention here. Paints the grimmest possible future, so that when/if things go sideways, he can point back and say, "Hey, I warned you. I did my part."
Probably there is a psychological term that explains this phenomenon, I asked ChatGPT and it said it could be considered "anticipatory blame-shifting" or "moral licensing".
I don't think moral licensing is the correct term here. Moral licensing is when you justify doing something that is morally bad because you did something that was morally good. For example, if my wife spent the whole day cleaning, then she may treat herself the last slice of my birthday cake because she feels she earned it.
Founding engineer / fractional CTO — I build AI-powered SaaS products from zero to production.
15+ years, mostly at US startups as employee #1 or early hire:
- *Runy* (2025): Head of Engineering. Built the MVP for a NYC property management startup—led a team of 6, shipped in 5 months.
- *Edge Delta* (2023-2025): Senior Engineer at this Seattle observability company. Built an AI chatbot that lets users manipulate a visual pipeline builder through natural language. Owned billing infrastructure.
- *Braid Health* (2020-2023): VP of Engineering & Principal Engineer. Integrated ML model outputs into clinician-facing radiology tools. Full-stack: React frontend, TypeScript backend, Python for ML models, cloud infrastructure.
- *Toolio* (2019-2020): Founding Engineer. Built the technical foundation for this NYC retail merchandise planning SaaS.
- *SellerCrowd* (2011-2017): CTO. Built a Django/React social network for the ad industry from scratch to 20,000+ users.
*Background:* MSc EE from Bilkent, where I did research under Prof. Erdal Arıkan (inventor of polar codes, now foundational to 5G). Conference speaker (DjangoCon Europe, Øredev).
Open to: founding engineer roles, fractional CTO engagements, or contract work on AI integration / SaaS architecture / observability systems.
I hate mosquitoes with a passion. Might be the only species that I would want eradicated from Earth.
From my experience (based in Turkey), mosquitoes seem to be getting more and more resilient. They have become an annoyance even in autumn, and I recall catching one last winter. A few decades ago, they used to only appear in late spring and summer. Anyone have a similar experience elsewhere?
I take products from 0→1: fast MVPs, production-ready SaaS, and AI-powered features that real users rely on. Open to early-stage full-time roles, fractional CTO, or contract positions.
Google’s Cloud feels like the best engineered one, though lack of proper human support is worrying there compared to AWS.
reply