The Grand Unifying Theory of SolidStart 0.3 and Fresh 1.4

The Grand Unifying Theory of SolidStart 0.3 and Fresh 1.4

Newsletter

SolidStart, the metaframework for SolidJS, recently unveiled a seemingly minor version with a very non-minor title, "the Grand Unifying Theory." We also detail the release of Fresh 1.4.


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 under experimental option now, and Islands use use 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 like defineRoute, defineLayout, and defineApp 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:

Podcasts of the Week

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: