Weekly Tech Hype #4 - Next.js v13.2, Electric, Mitosis, Zag, Bling and more...
Full context hype / value analysis for Week 9 - 2023
Hey Full Context Developer,
This week has been more quiet on the hype front but I found some very interesting technical stuff to show you. And I mean absolutely fascinating things for those who are interested in the bleeding edge of frontend tools.
Before I forget, this is what happened after publishing the first issue of the Tech Hype Report last week! My mind is still blown! 🤯🤯🤯
Overview
We will look into the future that Electric Clojure can bring about with its industry changing, paradigm shifting new ideas. It got me more excited than anything in the last year. And there are other news in the mix trying to bridge that network chasm.
The rest of the lineup is just as strong! The folks behind Next.js are relentlessly churning out improvements and there’s quite a few significant ones in the latest v13.2 bunch.
Mitosis, Zag and TanStack/Bling are tools I haven’t heard about before, that all bring cross framework frontend development to unprecedented heights.
I have a whole bunch of smaller tech news to share like running RSCs in ReactNative with Expo, running SolidJs components in React apps and a shoutout to Jack’s latest videos. Let’s jump right into it.
If you are new or just wonder what this “Full Context“ stuff really is, you can read about it in a dedicated post. It takes around 10 minutes to go through so I recommend doing that afterwards.
🔗 The headings below are links to the covered topic 🔗
#1 Electric Clojure ⚡ and The 2 Chasms
I'm not gonna lie, I can only understand about 69.420 % of all the fancy terms inhibiting that tweet and the repo readme. I guess that means you should probably be closer to 100% but don’t let the missing percentage set you off. Here’s my best attempt to translate it to regular English.
Electric is a programming language (== reactive signals Clojure DSL). And its compiler can spit out full stack web apps where you don’t have to manage the BE / FE communication at all, it’s auto generated for ya.
It has some other fancy and nice QoL innovations, but this one is by far the most significant. If this can become mainstream it will change how we think about web applications forever and close that network chasm that the Remix team also aims to tackle.
From the Full Context perspective
But there’s a gigantic if. IF it will become mainstream. Clojure is already an obstacle for that and the pain Electric solves has to be large enough to close another chasm the chasm of tech adoption. I’m super hopeful that it will happen, I even got the urge to pick up the tutorial book on ClojureScript that I never finished… for the 3rd time. However I didn’t experience how much of a help Electric offers by removing the network part. If it’s similar to how GC removed the need for memory management that would be huge.
But what’s the price you need to pay for that? Until it reaches early majority adoption it’s a lot! Small job market == higher risks for both talent and employer, 100% vendor lock in, very little security and community support, no standards compliance and the list goes on. For now, I can only recommend using it for pet projects, disposable prototypes or some hyper niche products. (For what I can’t come up with an example)
But let’s imagine Electric delivers on the promises. It will remove a whole category of tasks and issues from web development, freeing up massive amounts of engineering capacity, which in turn will bring significant business benefits. Probably in the multiple 1000s of Productivity Impact Points. This is why other bleeding edge frameworks are trying to tackle the same problem, like Nullstack. (Which honestly has the best art and mascot out of all the popular FE frameworks right now.)
I’m looking forward to see how this project grows but as of today, for the regular company and developer:
Electric Clojure offers a 3 x 2 = 6 HV score on the Full Context Hype Value scale. But it has the potential to reach a 5 x 5 score in the future!
(Yes, I tweaked the formula since the last issue based on feedback)
#2 Next.js v13.2 💣Business as Usual
This release just proved my conspiracy theory. I don't know what kind of drug they use at Vercel but they definitely pump something into their developers and turn them into super soldier-coders as they ship with inhumane speed.
This minor version casually shipped:
An entirely new caching architecture on Vercel
The accompanying Next.js Cache, an evolution of ISR
Compatibility with Webpack loaders in Turbopack
Custom route handlers for the app directory
Statically typed links
And more, check the announcement link in the section heading…
I would love to walk you through all of them as I’m really excited for a lot of these features, but it’s not the main point of the newsletter. I will link some great resources about the technical details after the score. Take a look if you are interested!
From the Full Context perspective
The improvements to the caching mechanisms in Next.js and Vercel will impact businesses significantly.
Improve customer experience by increasing the render performance of even dynamic, personalized or behind authentication pages. It was previously impossible to achieve similar levels of performance without custom solutions requiring much effort and capacity from development.
Further reduce infrastructure costs. The reason is that the fine grained caching enables us to move such SSR pages to ISR that was previously unsuited for this change. This can significantly reduce the number of server side operations and even 1st or 3rd party API calls resulting in less resource consumption and lower costs.
Speed up redeployment of sites with 1000’s of static pages since the page generation can use the existing cache improving delivery speed.
Increasing the productivity of software engineers by speeding up local development. It’s less impactful than the previous points but still relevant.
The Webpack ←→ Turbopack compatibility can enable moving additional projects to the new bundler. Turbopack’s main benefit is its speed, resulting in higher delivery performance for projects that bring along all the derived perks like a faster feedback loop and increased customer engagement with the product.
Statically typed links can reduce the human error factor in creating dead links. In the worst case those links can totally destroy the user experience or even cause financial losses. (Think, one dev messing up the signup link)
But there’s a catch again.
All these features are in either Alfa or Beta status. So with that in mind I can’t recommend using them in mature, established products. It can probably be fine in newer, smaller products, I think about hipster geek startups or indi hacker projects.
I will sum up the rest of the stable and new stuff in v13.2 as a pack of productivity improvements that make common tasks more efficient and pleasant to get done.
Only scoring the stable functionality, the situation is a bit less impressive.
Next.js v13.2 gets a 4 x 3 = 12 HV score on the Full Context Hype Value scale. With the non-stable features it would reach a 4 x 5 score which is massive!
I really love Vercel and Next.js from the Full Context perspective, most of their releases and strategic goals align well with solving real world pains using cutting edge technology. Keep it coming guys!
Resources:
Introduction to the caching architecture from Malte Ubl here on LinkedIn
A neat tweet thread describing the significance of the Next.js cache
Another tweet thread about all the new features but I especially like this one about the Custom Route Handlers.
#3 Mitosis, Zag, Bling 🗺️ - Clues about the new frontiers of frontend development
These technologies made an appearance on the sidelines in recent weeks. There’s one thing in common between these tools, they are all built to abstract away the differences between frontend frameworks.
The promise of Mitosis is that if you write your components using its syntax it can transform them into components of any of the supported frameworks. And that’s a really long list.
Zag tackles a different aspect of cross framework FE development, component-logic. Meaning state definition and manipulation. A simple example is controlling the state of a checkbox or really any value displayed in a component.
But this reminds me of something 🤔 … standards?
(Even though Mitosis authors disagree there are situations when it can simply become one more tool on top of those already in-use)
TanStack/Bling defines itself as:
Framework agnostic transpilation utilities for client/server RPCs, env isolation, islands, module splitting, and more
Which honestly is a bit hard to wrap my head around. The best lead I found is in the authors’ description of the upcoming TanStack Start library:
Type-safe, SSR-friendly meta-framework for building modern React & Preact applications, powered by TanStack Router, Astro & Bling.
Sounds like the Webpack of the future. The reason I’m really interested in this project is the recent emergence of the new silent revolution of web development which centers around module extraction by build tools.
It’s interesting to notice that this article is also coming from Builder.io. All of these new ideas are coming together. Multiple vendors we already touched in this volume are involved. Remix, Astro, TanStack, NullStack, Electric Clojure, and a lot of tools that are coming from Builder.io like the Qwik framework and Mitosis. All the goals these frameworks and tools progress towards are converging and defining the next frontier of frontend development for the coming 2 - 3 years.
Bridging the network gap, by unifying/colocating server and client code enabled by module/function/clojure extraction behind the scenes or by a purpose built programming language. And Qwik has also joined the fight.
Removing hydration and reducing JS payload as much as possible with resumability (Qwik), super fine grained caching (Next), islands architecture (Astro), Server Components (React) or any other means.
Abstracting away the FE framework level from component development like what Astro, Mitosis or Zag are attempting.
Speeding up or entirely eliminating (Deno + Fesh) the build processes. It’s something I only covered in previous volumes.
These are all very interesting trends
From the Full Context Perspective
Abstractions over FE frameworks can make life significantly better for:
Multi-framework design system maintainers
Micro frontend teams using diverse stacks but a single design system
Web SDK developers who ship components for multiple frameworks
Builder.io employees 😉
In these use cases Mitosis and Zag will influence Productivity, Customer Experience, Utilization and even Business Opportunities heavily. These have so many implications it’s best if you check them out yourself on the Business Impact chart. For the rest of us, these are just interesting but irrelevant technologies. And I will go with the most common case for the results here.
I will leave out Bling and the related tools from this scoring.
Mitosis and Zag get a 3 x 2 = 6 HV score on the Full Context Hype Value scale. But for the right teams it can be a 3 x 5 score!
Short news
These are all technical news that can or has the potential to make a positive impact for certain projects.
Evan Bacon showcases how React Server Components can be used in React Native through Expo.
Ryan Carniato gets Solid.js components work inside React in his livestream
Jack Harrington is still riding the wave of the Signals hype with quite a “solid” video about how to use them in Qwick, React and Solid. 3 x 3 Jack!
Outro
I’m super happy that you read (or scrolled ) till the end! I feel speechless that people actually do that! If you enjoyed the article and/or found it valuable please consider sharing it with your friends and colleagues.
I’m at a very early stage of building this Substack publication so even the smallest extra visibility can make a huge difference. My wholehearted thanks if you help with that!
See you in the next one! - Which will definitely be much smaller in scope but at least this good or even better in quality. I spend like 20 hours working on this in the late evenings and early mornings this week.
Joe @fullctxdev