Frontend predictions for 2024
It's been a remarkable year for frontend. We've seen a gold rush to capture – and invent – the server-side rendering (SSR) market; the advancing tentacles of AI; a Cambrian explosion of web renderers and JS engines; a formidable line of hopefuls attempting to unseat the big names from their pedestals; and movements on various other fronts.
So before the traditional soothsaying of the year to come, let's review the hotchpotch this year has been so far.
2023 in review
SSR
SSR is nothing new. PHP has delivered it for a good 28 years now, and if it's good enough for Neopets (and, begrudgingly, Facebook), it's arguably good enough for anything.
But Vercel has been pushing it hard. Having become a guild house for some of the most influential figures in frontend development, it's hard to ignore their narrative (e.g. when their talk of Server Actions flooded Twitter with memes for a week) that you should be using SSR, and moreover doing so through their services.
Now that the SSR pie has been re-established, everyone wants a slice of it. The Ruby on Rails crowd, long working in this space, have been trying to lure users in with their no-build workflow (an echo of Vite's no-bundle one, though there have been some strong counterpoints to both). HTMX is a bird of the same feather, advocating – again, through successful application of memes – that the only framework one really needs is a HTTP server to deliver HTML files. And although React and Svelte now have vested interests in Vercel's success (with core team members working there), Vue remains a holdout with the community-driven Nuxt.
Even the mobile sphere has caught the bug. As I mentioned in my Things to look forward to in React Native article earlier this year, Szymon Rybczak has been working on Async components and React Server components for React Native, while Expo has been pushing Expo Router. Whether SSR makes sense on mobile is still up for debate[1] [2], but you can always count on Evan Bacon and Nate Birdman to argue each side.
Whether we'll see it catch on for companies using backends other than Node.js, though, remains to be seen.
AI
There has been a lot of flailing around in this space as people scramble to find some way, any way, to productise AI as part of the frontend workflow. Amidst this is the ever-looming question "will machines take our jobs?"
For this year, I feel safe in saying that "the inexorable march of AI" is relatively low on the list of reasons you lost your job in frontend. But the market potential of the sector is very real already.
ChatGPT and GitHub Copilot are now day-to-day companion tools for rubber-duck programming and code generation, and Microsoft was confident this year to invest a further $10 billion in the company behind them, OpenAI. And while only the giants can hope to compete with these tools (Google has Bard and Gemini; Meta has LLaMA, albeit built in collaboration with Microsoft; Amazon has Q; and Apple is surely working on something, with a long list of tools like ml-ferret and ml-explore starting to pop up on their GitHub), there's still a sizeable industry for building on top of them.
We've seen tldraw turn sketches into code and Vercel's v0 turn descriptions into UI components. Figma can do the same for designs, too. It's beginning to seem like you'd be a chump to develop things using your human ability alone. However, there are concerns that the end-results may be slipshod compared to the real deal, e.g. when it comes to accessibility. Not to mention the hijack problem facing vendors.
Browser engines, JS engines, and runtimes
On the browser engines front, the new Ladybird browser has attracted $310,000 in funding, leading to hiring Andrew Kaster and Alexander Kalenik to work on it full-time; the Servo web renderer has enjoyed a year of Igalia engineering; and we've even got a fresh new indie browser engine, Shadow, written in JS, of all things! It seems that creating a new web browser is not so impossible after all.
As for JS engines, Hermes has truly been cooking – we've seen Static Hermes blur the lines between native code and JS, to become even more flexible with its upcoming stable ABI and ES6 support; however, some hard platform challenges remain, such as supporting Intl, and Date
being very slow. But even if it overcomes those, it needs to stay on its toes, as there has been a revival of the QuickJS project, which turns out to actually be faster at calling C functions than JS ones! Meanwhile, Shadow has started its own JS engine, Porffor, which will be worth keeping eyes on.
Onto runtimes. We'd be amiss not to mention the impressive new status quo challenger, Bun, which has lit a fire under Node.js. While it has made great waves, quickly being adopted into commercial stacks, it has set itself a very high bar and has had to slow down on feature development to tame the issues count. It has also had to race to address the vocal criticism of Windows support being an afterthought[3] [4].
Cross-platform frameworks
With the revelation that there were 6× more jobs in React Native than Flutter this year, and both Hixie and Tim Sneath leaving Google, and the latter even evangelising SwiftUI instead, Flutter devs have been in an existential crisis, with the spectre of Killed by Google looming like never before.
Meanwhile, React Native has shown no signs of slowing down, with Amazon announcing that it's been their technology of choice for several flagship apps. DX has improved in leaps and bounds as Software Mansion have demoed their new IDE and Meta have migrated from Flipper to Chrome Devtools. Expo has also done too much to mention, though in particular have revolutionised native API access with Expo Modules and continued their story for code-sharing and SSR with Expo Router (as mentioned earlier). And Meta and Microsoft's march towards Web conformance, from DOM traversal to the event loop, has been very exciting to follow.
Other frameworks have been making moves, too, with Tauri engaging with Servo, and Dioxus promising to enable the creation of GUI apps in Rust, with a React-like DX. It's built on top of the Taffy layout engine, a very promising successor to Yoga which may soon offer C bindings to make it usable in many more contexts. I've also been hearing continued buzz around Kotlin Multiplatform, though with nothing specific standing out.
I also have a lot to say about NativeScript (being on the TSC), but I'll probably write that all up separately in the upcoming week, either on my NativeScript is Dead newsletter or the NativeScript blog, so hold tight!
UI frameworks
All the big players are still at large, though some coups were attempted. The buzz this year seemed to begin with Solid securing $30,000 of funding from the Chrome team and popularising Signals.
Web Components have had a renaissance, too, recovering from the naysaying of previous years to deliver apps from DocuSeal to Photoshop. As Alex Russell put it back in 2021:
Ok ok, but aside from Google, MSFT, Adobe, ING, Comcast, EA, Ubisoft, GE, Nintendo, Blizzard, SpaceX, Salesforce, and the Internet Archive...is anyone really using Web Components?
Not to be outdone by a lacking API that has caused them a lot of trouble to build upon, Svelte made a counter move, rethinking reactivity with runes and causing considerable excitement with the announcement that Dominic Gannaway had joined forces with Rich Harris to work on Svelte full-time.
But they're not the only ones rethinking reactivity. Meta gave a promising update on React Forget, which it seems there is a lot of anticipation for.
In the background, though, is the refreshingly measured advocation of HTMX, which, although it may be the worst framework, is becoming increasingly hard to ignore in this age of complex build tooling.
Build systems
Speaking of which, we've been seeing more uptake of next-generation build tools, namely SWC and Esbuild, along with – could you believe it – even more bundlers to go along with them. Rome fell and Biome rose; Turbopack declared itself the successor to Webpack last year (with some unapologetically dodgy benchmarks against Vite), but this year Rspack has burst into the courtroom brandishing a claim. And all the while, Metro remains the weapon of choice for React Native, prevailing over alternatives.
Dev tooling (briefly)
Dissatisfaction has been brewing. Eslint have become fed up of maintaining formatting rules, and others became fed up of how slow Prettier has been at filling in that gap, to the point of offering a $20k bounty to supplant it (which Biome won).
On another front, Bun showed us that package installs could be done way faster than we've assumed, though the binary lockfile that enabled this has significant downsides.
Predictions for 2024
So with the scene set, and with my tarot cards, oracle bones, and star map at the ready, let's try to divine what 2024 holds for frontend.
Everybody wants to own the stack
There seems to be an appetite, not just to dethrone existing tools, but to own the entire vertical of the software stack. Bun wants to be your runtime, compiler, package manager, HTTP server, and test runner, even if it means fragmenting the ecosystem.
We've been here before, with Rome. Everyone's been trying to find a way to monetise opensource, but as extracting money from a community of cheapskates hasn't been going well, it seems that just owning everything and figuring out the rest once the market is captured is the best idea circulating VC circles right now.
None epitomise this more so than Vercel, who have a product for everything. Hosting, domain name registration, Edge functions, databasing, analytics, SSR integrations for all the major UI frameworks, doohickeys for deployment, and more. They invent as much as they can in-house (we've seen Turbopack for bundling, Turborepo for wrangling monorepos, and Satori for generating images), and wrap anything they can't.
So what will Vercel do next? I think their options include:
- Cut out the middle-man. They wrap many services like Upstash, but could improve their margins by rolling their own solutions instead.
- Make more things unique to their stack. Vercel's value proposition is "you could roll this stuff yourself, but we make it effortless", but if that changed to "you can't roll this stuff yourself", they'd have more draw.
- Trap people in their stack. This is definitely the supervillain option of the three, but entrenchment is a tried-and-tested strategy for retainment (see Atlassian and Microsoft).
So, all very vague, but through some combination of these, I believe they'll (consciously or not) end up enacting the Meta playbook of making a tech stack so compelling that it generates jobs based on the tech and even attracts users to contribute to it to propel it further.
Could anyone stand in their way? Biome would be well placed, but has nothing like the $4.5M capital that the original Rome project had to be a serious contender. Bun has the capital ($7M of it), but given how thinly stretched they are addressing ~2,000 issues, I think the CI tooling market would be the more realistic goal for next year. Deno, towering with $21M raised in 2022, seems to be tip-toeing into the market with things like Deno Deploy and Deno KV, but are far off answering the whole stack. Which leaves, in my mind the venture-backed Y-combinator startup (that's all we know), Expo.
Having focused their first few years on building a user base through an expansive SDK, Expo have moved onto their monetisation phase, with Expo Application Services. Pair that with Expo Router and a formidable challenger emerges, as they have some expertise that Vercel is comparatively thin on: mobile. Why build on Next.js when you could build on Expo Router instead and get native mobile apps for free? It's a convincing argument for Sanket Sahu.
While Expo have this enviable strategic position, though, there's a lot of catchup to do. They don't have that "product for everything" yet, and so users may find themselves having to link together external services to fill in certain features. There are also still gaps in SSR functionality for the React Native stack, so they've had no choice but to address things themselves. Vercel benefits here by having close links to the React core team (employing key figures such as Sebastian Markbåge and Andrew Clark) to influence the direction of React. Though maybe it's React who influence them?
Whoever prevails, I have some wishes as an end-user. While I do welcome attempts to simplify and unify things – as frontend has become farcically complex over the last few years – it should never be at the expense of lock-in. A stack should always empower a user to keep the bits they like and swap out the bits they don't.
EDIT: I was surprised after publishing this article to find a direct message from the CEO of Vercel, Guillermo Rauch, clarifying their intended direction and giving some hope for my wishes:
Enjoyed your predictions. What I can tell you is that we're actually going to empower the ecosystem even more in 2024. More options like Upstash, more API hooks to bring other integrations and startups into our ecosystem. Merry Christmas!
The Web will become more diverse
With Apple's gatekeeping of web engines on the App Store finally set to come to an end on March 5th 2024, the Safari team has had to get serious to protect their market share. I do think that Apple aren't going to go down without a fight, and we might even see a Safari surge again, perhaps with Apple luring people over on the ML/AI front and taking special advantage of iPhone hardware.
I'm skeptical that we'll see Servo challenge the desktop space next year as it's still at a middling pass rate of 61.8% on the CSS tests and 55.4% on the WPT tests, but its WebView may find use in apps for controlled purposes. Indeed, with Android and Tauri on the roadmap, it does seem that they're leaning into the embeddable angle and there's no particular plans to create a browser around the WebView just yet.
Ladybird continues to impress, and its participation in the 2023 Web Engines Hackfest marks it as a serious player (I assume). I think it's still early days to challenge established browsers, but I'm certainly rooting for them, especially as their hunt for spec bugs[5] [6] [7] [8] benefits all browsers.
With the upcoming deprecation of Manifest V2, Chrome has made an enemy of itself, but it seems it'll take more than that to shift the market share. On the contrary, with Apple's gatekeeping coming to an end, they stand to gain even more. The breaking of the monopoly on iOS will be turbulent as developers have to test behaviour on far more targets for mobile, and the temptation is there to test only on Chromium for all idioms. As even significant sites like Twitter are already locking out browsers that they don't care to support, I fear for a return to the days of "best viewed on Netscape Navigator".
At the same time, this is a great opportunity for Firefox. The early days of the monopoly-break will be crucial for forming a reputation, and Firefox aren't shackled by the business interests of an ad giant, so they could compete on ad blocking and privacy. If it turns out that Firefox can block ads on YouTube while Chrome can't, that'd be enough for some, for example. Though judging by the number of users I've seen without ad blockers installed, maybe something more like Apple's update lure of "just give them more emojis" would be a better approach.
AI is just getting started
OpenAI has dominated the seas so far, and although there was a mutiny along the way, it should be plain sailing from here. They've always had their course set on AGI, and there's some argument that GPT-4 was a waypoint towards that, but I think 2024 will rather revolve around the other fleets finally cresting the horizon.
While each giant is involved in various market segments (e.g. most of them offer a wide range of Cloud services), Google has more presence in search, Meta has more interest in language analysis, Amazon has more motive in shopping, and Apple has more consumer devices to capitalise upon. So they may each focus on the areas most relevant to them.
My eyes, though, are on Apple. They have been advancing their pieces with great prescience, having shipped devices with dedicated ML processors for years now, but it still feels merely like the countdown before the launch.
They've kept in step with emerging technologies, bringing out Personal Voice as personalised voice models were trending[9] [10] and revamping predictive text as LLMs proved their potential, so they have a theme of bringing proven AI technology into consumer hands. They have reportedly made a breakthrough in running LLMs on constrained devices, and have a generative AI model named "Ajax" to rival GPT-3.5 in the works. Considering also their rebranding as a privacy-focused company in years, I think they'll be the first to deliver free, unlimited-use, optionally offline, on-device, privacy-conscious LLMs. This could be the ingredient Siri has been missing all along.
The big UI frameworks are here to stay
As much as I love to cheer for underdogs, I don't think we'll see React and friends displaced, short of a FAANG company coming along with a new framework. Though, with core team members of several major frameworks all under the same roof, I actually wouldn't be surprised if we saw Vercel come out with a whole new best-of-everything framework built from the ground up (that is to say, not on top of React) to exploit SSR.
Mobile dev won't change that much
I think native devs will continue developing natively, and generally that devs will stick with whatever framework they've been using already, like loyal voters. It takes a lot of push to convince people to change camps when the domain is this big, after all. Moreover, while DX has improved, the scene hasn't fundamentally changed (certainly not since SDK-level additions like SwiftUI and Catalyst). Probably the main thing to keep an eye on is Expo Router, the challenge being to convince devs to create apps for web + native rather than web alone. Oh, and of course NativeScript!
Conclusion
It's been an eventful year. With SSR and AI being pushed harder than ever, and the JS ecosystem flourishing from tooling to the very engines themselves. For next year, I expect to see more consolidation of tools and frameworks, more industry power grabs, and ever more involvement of AI in our day-to-day processes. Finally, we may also see more transitions into agriculture as developers collectively give up on trying to keep up with this ever-changing scene.
If you thought this was a jolly good read, then the excellent news is that there is a mechanism below for obtaining more of it. With any luck, see you in the next issue where again, I'll talk about Whatever.