JSJam Live, Wednesday at 12pm PT
This Wednesday, we'll be hosting another open mic to discuss the JavaScript news of the week. Whether you're a beginner or expert we'd love for you to join us. Click here to set a notification for the Twitter Space.
Last week, we featured speakers from MagnoliaJS and were joined by Mark Noonan and Danielle Maxwell to discuss Micro Frontends and application testing. Click here to listen to the recording of the conversation.
Stories of the Week
SolidStart v0.3.1 and the Grand Unifying Theory
Eschewing an attention grabbing press campaign, speaking tour, or other kinds of fanfare that tends to accompany open source software releases these days, SolidJS recently unveiled a seemingly minor version with a very non-minor title. Version 0.3.1 has been called the Grand Unifying Theory in an effort to keep web dev conspiracy theorists on their toes since neither version 0.3.0 nor 0.2.0 exist.
This is also on the heals of a new logo release and the announcement of the framework's partnership with Google Aurora and the Chrome Team. Centered around researching strategies for improving performance across the web, you can check out Chrome Supports SolidJS in Building a Performant Web on the SolidJS blog to learn more.
Here's the framework creator, Ryan Carniato, explaining the significance:
This release has a ton of code changes that had been orphaned on an experimental branch. Mostly around Islands router. Biggest update for those is those feature options are underexperimental
option now, and Islands useuse client
.
import solid from "solid-start/vite"
import { defineConfig } from "vite"
export default defineConfig({
plugins: [
solid({
experimental: {
islands: true,
islandsRouter: true
},
})
]
})
This may not be the final API but it allows us to take the next steps. We have updated Docs, and added Movies and Notes apps. These only really work under this Islands mode. This will serve as a basis as we fill in the features while working on the R&D that is being funding by the Chrome team.
Now that codebase is completely merged, we can resume our rebase effort with all the code in place. So to be clear this release is still the same SolidStart and is not built on another system. We have also changed the base version of SolidStart to be Node 18. This simplifies the need for polyfills and 16 is end of life next month anyway.
Fresh 1.4
The release of Fresh 1.4 focuses on enhancing the developer experience, particularly in the areas of shared layouts and route-specific islands. A notable improvement addresses the previous JIT (just-in-time) rendering approach. While advantageous for rapid deployments without a build step, performance decreased with larger islands. In response, a pre-compile solution was developed which boosted asset delivery cold starts by approximately 45-60x.
New features and improvements introduced include:
- Ability to directly set the
<html>
,<head>
, and<body>
tags on the server, a solution to the previous challenge of modifying the lang attribute. - Support for
_layout
files, allowing for shared layouts across routes without manually importing them into all routes. - Asynchronous layouts and app wrapper so route components and layout components behave the same.
define*
helper functions likedefineRoute
,defineLayout
, anddefineApp
for quicker typing.- Route Groups and the concept of colocated islands and components have been introduced, providing more structure and organization for bigger projects.
As Fresh looks ahead, there are plans to:
- Revamp the plugin system
- Introduce view transitions and SPA-like client navigation
- Explore styling solutions such as UnoCSS and Tailwind.
Quick Links
- Darius Cepulis - Can React Server Actions finally fix forms?
- TkDodo - Array Types in TypeScript
- Sebastien Castiel - The simplest example to understand Server Actions in Next.js
- Chris Coyier - JSX Without React
- Nadia Makarevich - Fantastic closures and how to find them in React
- Elan Medoff - React Suspense in three different architectures
Podcasts of the Week
- SEDaily - The Latest on RedwoodJS with Tom Preston-Werner
- Frontend First - Tim Neutkens on the Next.js App Router
- Whiskey, Web and Whatnot - Hot Takes, Developer Relations, and AI with Rizel Scarlett
- JavaScript Jam - The Evolution of Qwik
- PodRocket - JavaScript rendering patterns with Matheus Albuquerque
- PodRocket - How React 18 improves application performance with Lydia Hallie
- PodRocket - Supabase launch week with Jon Meyers
One More Thing
Last week I had the great pleasure of joining Ryan Carniato on his weekly Friday stream to discuss RedwoodJS v6 and what the new version means for the future of the framework, particularly in terms of how RedwoodJS will support React Server Components in version 7.
Ryan's stream is legendary for frequently lasting over 4 or 5 hours. He covers the bleeding edge of web development technology and has featured essentially every major framework of the last 10 years and their authors. It was an honor to have the opportunity to add RedwoodJS to the list.
JavaScript Jam on the Web
Find us online at the following links: