SolidStart is finally here. This has been a giant 3 year effort. So thankful to have everyone that has contributed.
I never wanted to make a metaframework but details do matter. And I'm proud of what we've accomplished.
After 2 years of research, two beta releases and countless hours of R&D, the
@solid_js
Team is proud to announce the release of SolidStart 1.0! 🚀🎉
SolidStart has already made an impact on the broader JS community. We’re excited to see what’s next.
I'm very excited about this. These funds means other people(ie.. not me) working on SolidStart full-time. This is huge news for
@solid_js
and the types of things we want to accomplish.
We are ecstatic to announce
@googlechrome
as a new research and finance sponsor! The Solid and Chrome Teams are working together to bring the best performance to SolidStart. Big shoutout to
@addyosmani
and the Chrome team.💙
Is anyone else feeling the weight of all the future JS technology discussions? If it feels like a lot it is because it is a lot. There is a lot of really cool stuff going on right now. I think we need some time for this all to sink in.
And that's OK.
Before getting into the details of Signals, I'd like to start with a bit of a history that celebrates the incredible work done across the ecosystem over the past 10 years.
"The Evolution of Signals in JavaScript" by
@RyanCarniato
#DEVCommunity
#webdev
Reflecting on 2022, I decided to give my perspective on where I see JavaScript Frameworks heading into the next year.
"JavaScript Frameworks - Heading into 2023" by
@RyanCarniato
#DEVCommunity
#webdev
One interesting thing we found when researching my last article is that every framework's version of this React code logs different things when you click the button:
Rust WASM frameworks have been making some good progress in the last few months on rendering performance. Adopting Signals and Fine-Grained reactive rendering.
They've almost caught up to
@solid_js
!
(vanilla, Solid, Svelte, and React included as JS comparisons)
I am happy to announce my Reactivity w/ SolidJS course is now available on
@FrontendMasters
.
I'm pretty stoked on this one as I got to spend a good hour and a half talking specifically about my favorite subject, Reactivity.
A few years ago it was relatively easy to tell where people's JavaScript framework preferences would lean. But with React's upcoming compiler and Svelte moving to Rune's this picture gets a lot muddier.
JavaScript Rising Stars 2022 is up. It's been a great year for many projects. Love seeing Bun take the top spot.
More interesting to me is look at the shakeup in Frontend Frameworks. Nicely done
@QwikDev
and
@solid_js
.
We've learned a lot while working on SolidStart. Things like Github has a limit of 200 contributors in a release.
But in all seriousness. Thank you. Truly. Getting this far has been years of work and it wouldn't have been possible without the generosity of so many.
Hey,
@QwikDev
I wanted to congratulate you on reaching the milestone of 20k Stars on Github!
Resumability is now a word in the web dev vernacular and people are excited about what it means for the future of frameworks (see Angular + Wiz).
Thank you for pushing the web forward.
I wish I could reply to at least one of the Tweets
@ryanflorence
has made. Some mistakes were made and probably should have been more diligent. But every intention was made to credit remix. Like this commit for Session management 5 months ago:
Tomorrow is my last day
@eBay
. It has been an amazing opportunity to work on a JavaScript framework as my day job for the past 2 years. After doing so I never want to go back. I feel so blessed to work every day with
@mlrawlings
and
@dylan_piercey
. True pioneers in this field.
Time for a different sort of Island's Hackernews Demo.
🚀
@solid_js
+ TypeScript + JSX
⚡️Built with SolidStart on
@vite_js
🏝️Recursive Islands
🚫No duplicated data serialization
😎Server Nested Routing without Reload
🔥~5kb JS Payload
If I ever want a humbling experience I just have to look that Tanstack Query DevTools written in
@solid_js
get double the downloads a week that
@solid_js
itself gets.
That's just how large the React ecosystem is.
Stoked to see that the new framework agnostic
@tan_stack
query DevTools written in
@solid_js
have crossed 500k weekly installs! 😱
Most of the installs come from react query! Wonder how many react devs know that a tool they use for developing react apps is powered by SolidJS!
If you are using Vite, what is your biggest pain point?
If not using Vite, what's preventing you from adopting it?
Let us know in this survey to help us better understand what to improve!
3 major versions in 2 years.
@astrodotbuild
is like well-oiled machine. View Transition API + Client routing is about the simplest way (one line + import statement) I've seen to add a bit of smoothness to your MPA transitions. This is appealing for all sorts of sites.
I shouldn't be so hard on AI. But maybe I should be a little harder on people.
On both
@ThePrimeagen
Twitter and Youtube polls React was 40-50%. New project, no legacy, and people still make that choice. That's why we are still here. Why Devin gives us 130kb Todo apps. 1/
Today we are excited to open the first PR of our exploration into fine-grained reactivity! 🚦
This is the foundation to allow prototyping & amplify the value of an upcoming RFC on our plans to introduce a new reactive primitive into Angular.
Read more:
I open-sourced
@solid_js
4 years ago. April 24th, 2018. Today April 25th, 2022 we just had our 100th contributor.
I know it took a while, but I had no idea we'd ever be here and how much working on this project would change my life.
One of the reasons React Server Components are inevitable, much like Thanos, is that UI is a function of data.
In a CSR/SPA world, you must be willing to ship all of the code, for all of the possible data, before rendering can begin. This is why you see so many spinners.
Thank you to everyone who has subscribed to my YouTube channel. Finally hit 10k subs. Took just over 2 years to get here but given the channel is not the most accessible as I average around 5 hours per video, I'm stoked.
Awesome to see the recent discussion about Signals and tradeoffs. Especially from prominent thought leaders. This is a good conversation to have. I sometimes feel not enough scrutiny happened VDOM first came on the scene, but understandable as the technology was still new. 1/
Important dates in my Signals timeline so far:
July 2010 - KnockoutJS
Apr 2012 - Meteor
Dec 2013 - S.js
Feb 2014 - Vue
Mar 2015 - MobObservable
Nov 2016 - Svelte
Mar 2017 - Surplus
Apr 2018 - Solid
Feb 2019 - React Hooks
Sept 2020 - Vue Composition API
The reactivity train is still going strong.
Very excited to have
@angular
core team members
@pkozlowski_os
and
@synalx
join me to talk all things Signals and Angular this Friday.
Shopify + Remix is interesting. Every indication/benchmark I've seen is that from an eCommerce perspective RSCs outperform Remix. I'm yet to test Next 13, but Hydrogen was pretty speedy. Partial Hydration makes a difference in this zone. My gut is we aren't done here.
Debugging Reactivity has been one of the most underdeveloped problem spaces in frontend. Amazing progress by
@thetarnav
bringing
@solid_js
' Dev Tooling to the next level.
Release day for
@solid_js
devtools!
0.21.0 adds an essential way of inspecting reactivity: a Dependency Graph — it will display current (direct and indirect) sources and observers of the selected signal or computation
Islands, Server Components, Resumability?
My latest article explores how these technologies are related and what problem each solve.
#javascript
#webdev
Next.js and React have never been easier, and they've also never been harder 🧵
Here's the universal 'minimum viable app', a TODO list, implemented with the latest features in 45LOC
I have noticed a temperature change around React. I don't mean due to Facebook backlash. I've feeling real developer resentment towards features like concurrent mode and suspense. Other libs are almost wearing their lack of these features like a badge. 1/
While revisiting SSR benchmarks for the next
@solid_js
release I went ahead and updated all the libraries and witness some big performance improvements from Svelte, React, and Vue.
React 18 is 48% React 17
Vue 3 is 61% over Vue 2
Svelte 3.49 is 97% over Svelte 3.44
We're seeing a revival of VDOM libraries on the JS Framework Benchmark check out Million.js and ivi edging out Solid and Inferno.
Also note in Rust WASM, Dioxus, a VDOM lib vs Leptos, a Signal lib.
A couple months back,
@solid_js
core member Milo(modderme) told me he wanted to explore how to improve the performance of fine-grained reactivity.
TLDR; He succeeded. And now he's showing us how. The amazing article explains how he wrote the fastest lib.
Having been given credit for things I didn't invent and seeing some being upset about not getting due credit. I think in times of change a lot of "new" things are discovered rather than invented. Independently too at times. 1/
Is it stranger to expect that a JavaScript function that runs once doesn't execute multiple branches of a conditional?
Or that a function that re-runs multiple times has stable references(hooks)?
I have to admit I don't really get this. But I suspect one is easier to explain.
Do people think adding Reactivity makes things faster?
Reactivity is pure overhead. The addition makes things slower. It lets you remove/circumvent other more inefficient change systems.
If you want to determine the performance impact of reactivity look for what isn't there.
If you think your JS framework of choice has a good progressive enhanced form solution for building apps, try building a TodoMVC example with multi-inflight additions, optimistic updates, and per-item error handling.
The classics are still a good proving ground.
I just let loose on
@AdamRackis
. He probably didn't deserve it. But maybe this thread can help some people understand why I'm so enthusiastic about Signals,
@solid_js
, and the direction things have been going.
@AdamRackis
There is an advantage to your framework understanding how data flows through your application. We can start with update performance. Only updating what changing is fast. Changes are isolated even within the same component. So complexity scale doesn't mean performance drops. 1/
After almost 6 hours talking with
@dan_abramov
,
@t3dotgg
, and
@jutanium
in a Twitter space about server components, I'm left thinking if there was a way to handle routing in a universal parallelizable way that didn't involve caching. This came to mind.
@AdamRackis
With those simpler options you didn't need what came with it. GraphQL was fueled by the same community that would seek to replace backends with TS anyway. GraphQL is still the best at what it does, and nothing compares. But its would-be base side-stepped it.
It's happening!! AWS Lambda Functions to support streamed responses. This is huge.. AWS Lambda joins Cloudflare Workers/Pages and Deno Deploy supporting this. This is also big news for Netlify and Vercel serverless functions (Although I think Vercel did their own thing).
AWS Lambda introduces response payload streaming
AWS Lambda functions can now progressively stream response payloads back to the client, including payloads larger than 6MB, helping you improve performance for web and mobile applications. AWS Lambda...
For those interested the next version of Solid Router is close to release. It introduces new Data APIs:
* cache with fine-grained updates
* actions with support client and server invalidation
* new createAsync primitive
* preload
* supports CSR, SSR, SSG
I have seen this narrative a lot recently and it is what motivated my recent World Beyond Components talk.
So I want to take a moment here to offer an alternative perspective.
🧵👇
This is an example of what I was worried about.
Non-blocking is good but it's not a silver bullet. If we don't do less hydration work just pushing it back later will eventually come to bite us. But we can enjoy the page scores for now.
Tomorrow's stream I'm going to talk about the future of Signals and
@solid_js
. Going to look into where I see the technology going and take a look at the work and thinking that goes into taking the next steps.
Great talk from Rich. A topical reflection of JavaScript frameworks. Especially the Should vs Could discussion which should always accompany a time of innovation. I think the positioning of this talk is more important than the content (which may or may not age well).
🌶️ IMHO 🌶️ — some loosely-connected thoughts on DSLs, progressive enhancement, MPAs (RIP), $OTHER_FRAMEWORK, the RPC renaissance, Lighthouse, interplanetary apps (IPFS), offline-first apps, AI doom, the economics of the web, and Kim Kardashian
Looks like
@solid_js
is
#1
on Hackernews for an article about comparing `setInterval` in React.
Comments seem nicer this time. More about calling out number of contributors and ecosystem, rather than calling me an opportunist who is attempting to increase JS fatigue. Ah progress
It is amazing to see the propagation of Signals. It isn't even done yet. I expect to see more frameworks take on these patterns and some of these existing ones to embrace them further by dropping their Virtual DOMs with true fine-grained rendering.
We’re thrilled to announce that we have acquired Gatsby Inc.!
Together we will build the future of composable, and empower developers with flexibility and choice in building composable web experiences.
Everyone talks about the composability of components. But that only works if those extend from the same base. I really wish routers didn't ship `<Link>` or `<Form>` components and instead relied on augmenting native <a>, <form> elements. But I'm not sure devs would go for it.
If you're struggling with `useEffect`, don't worry.
Even senior React devs struggle with it.
Yes, that large dependency array and complicated if-statement you have in there is... typical.
It's just an awkward hook, okay?
I haven't talked enough about how cool this is. Someone might look at this and be like yeah that kinda looks like React. But what isn't obvious since it is built on Solid's primitives is data serialization, Suspense, and Transitions are all automatic. 1/
SolidStart and
@tan_stack
query v5 are going to be a match made in heaven!
Just use createQuery to pre-render the first query on the server and it will be hydrated and cached automagically on the client 🤌
No additional setup required!
@youyuxi
No. Thank you. I doubt I would have attempted this otherwise. In a time where every incentive is to build specific solutions to align with the source of funding and to ship fast, Vite makes building ambitious apps/libraries in the open possible.
@acdlite
I don't know since introducing Hooks you get to say that. Hooks forced people to do precisely that. And in some ways React is better for it. Saying Signals is about performance optimization misses the point completely. 1/
State of JS 2023 Survey Results are up.
Looks like the result criteria/ordering have gone through slightly different naming this year. But I love how there are lot of tools to change the visualization. I was able to recreate the old front page (satisfaction) chart:
It's that time of year again. Thought I'd take this opportunity to look at where we've been and where we're heading.
"JavaScript Frameworks - Heading into 2024" by
@RyanCarniato
#DEVCommunity
#webdev
It is vitally important that we don't lose the lessons learned from React when enter the world of Signals.
In my latest article, I explore what I consider the most important lesson.
"Thinking Locally with Signals"
#DEVCommunity
#react
#solidjs
impressive performance shouldn't need daily essays telling you it's impressive
it should just be impressive
here's searching through 30,000 patients at 60fps
from a real app customers pay 5 figures a month for
RSCs won't help you do this
Once we move past typical top-down hydration, it's tricky to compare different hydration techniques. They aren't all mutually exclusive. For those frameworks pushing the envelope, here's a table to help visualize.
@MarkoDevTeam
#reactservercomponents
@astrodotbuild
@QwikDev
Ryan always does a great demo. I love watching
@remix_run
singles to vet if we've covered use cases in Start. This one looks smooth and really shows the power of ephemeral optimistic updates that we all owe Remix for popularizing.
In Start swap `useFetcher` for `useSubmissions`
Remix is for web apps! We want you to build websites with UI interactions that are as tight as Sum 41's Chuck 🎸
Live App:
Remix Singles on how it was made:
Source:
Love this video. This is how you sell the feature.
Coming soon to a framework near you (if it isn't there already by the time you finish reading this).