
As of today, it has been 7 years since I open-sourced SolidJS. It wasn't for noble reasons. I wasn't trying to show people the way. I wasn't trying...
For further actions, you may consider blocking this person and/or reporting abuse
This is crazy inspiring - sticking with something for years just to see it actually move the whole space forward. Makes me want to double down on my own ideas even if nobody cares yet.
I get what you're saying with self promotion & reaching a larger audience through meme's and such, but I think your route was very valid as well.
Your approach was authentic to you (or seems that way) & so it found the right audience for you/Solid i.e. people that wanted to go in-depth & try out "something different". This, I think, is much more important than reaching a larger audience, that wouldn't fit as well.
Also as someone who found your livestreams early in their dev journey I found the wealth of knowledge you shared in them incredibly inspiring, they helped me grow into the kind of dev I am today :)
My point is, I (and a lot of others) think you're rockin it & can't wait to see whats comming next!
Same here. But, for me, it's the entire JavaScript ecosystem that feels fundamentally broken.
Yes, signals all the way, by the way!
That's impressive. Those are core features of modern frontend development, building all of them shows deep expertise and long-term vision. Keep it up!
That just proves how far ahead you were. True innovation often looks like madness until it works.
That's why I am skipping the JS ecosystem altogether because it doesn't make any sense, especially TypeScript. As a rule of thumb, It's better to build with a cleaner, more predictable stack, WASM all the way.
Thanks for the article. Time to invent something beyond signals, written in Rust, of course.
Till next time 👋!
Have you checked out Leptos. Always like to give my guy Greg a shoutout for his great work. I think WASM has some interesting potential in the long term. Unfortunately it is several years off being able to be the general solution. That being said in terms of raw performance in the browser it isn't being held back. It's too bad that the loading characteristics are a bit prohibitive.
Yup! I'm building reusable components for Leptos as well. Like Dioxus, it follows a reactive paradigm using signals. However, Leptos is a lot more rigid and not as flexible as Dioxus. The reason for that is Leptos is heavily focused on squeezing out every bit of performance, often at the expense of developer experience.
For example, I struggled quite a bit while adding support for Leptos in the Open SASS components. In one issue, I mentioned how difficult it was to make the
view!
macro more flexible; It was a real pain building a complex UI in Leptos. It's definitely doable, but not without friction.Yeah, there's still room for improvement in the WASM space. But it's definitely the way forward!
I developed a complex SaaS with a SPA built with Blazor WASM. In the beginning it was a Silverlight client. Doing all the development in a compiled language like C# is simply great.
Though... debugging is annoying, hot reload is simply bad, deployment is a pain in the ass: slow, heavy and everytime with the fear that something will go wrong with the browser caching. Imagine having hundreds of customers not being able to load your app that they use for critical activities on a daily base.
And that's the reason I'm here checking SolidJS... I don't know if I can be so productive in Typescript, but I dream the qualities of a client developed in JS...
Yes, debugging, hot reloading, and deployment are current challenges that Dioxus is actively working on. You can expect significant improvements in version 0.7.0.
I'm also focused on enhancing the web development experience for Rust enjoyers by building framework-agnostic reusable components to speed up development. I'll be providing templates and writing tutorials on deploying applications using Rust frameworks. It would be nice if you could join us, and spread the word.
As for TypeScript, I feel the same; It often feels like a solution in search of a problem. The idea of adding types to JavaScript seems flawed from the start, especially when everything eventually compiles down to plain JS.
That's why I believe Rust is the most reasonable choice moving forward, far beyond what TypeScript can offer.
If that sounds exciting, stick around, some cool Rusty components are being cooked.
See you on the other side of the observable cosmos.
I was disillusioned with most frameworks when I first found out about Solid. Then I had a closer look at the inner workings and to my surprise found something unreasonably sensible.
Ryan even answered some of my first questions himself. That's when I joined the community and I cannot possibly understate how wonderful a community it is.
I am looking forward to 2.0. The road ahead seems promising.
The reason why I advocated for solid is two fold. Fine Reactivity (like mobx) and TSX.
Lack of focus on tsx still sets solidjs apart.
If you’re not levering the Microsoft effort on TypeScript/ TSX, you're tackling a simpler problem (reactivity) and a harder problem (dev tooling) all by yourself 😂
Well done solid. You did it right 🌹
Congratulations Ryan! and many thanks, Love your projects, dedication, and the way you share and think your ideas/concepts out loud while full of kindness. Also, the community, its leadership and related projects are source of inspiration and admiration. Lot to learn and share ahead!
I remember when Solid was still in its early stages, I was 15 years and also playing around with my Virtual Dom library trying to understand the inner working of UI frameworks. Solid js concepts used to fascinat me considering how game changing they were. Always wished to contribute to it. I guess it's high time I did contribute to it and fulfill my childhood dream.
Nice work Ryan. It's efforts of people like you that keep inspiring us to build open source.
@ryansolid
Back then, what was running in your mind when you got started on this project?
Like, if I start a project that for sure is a big, impossible looking one,and I have zero knowledge on the subject matter.
How were you were able to work on it consistently until you reach that point where we start to feel it to be something real and important.
And what was your approach to learning something that you don't know and is totally a big, new, over-the-head going thing!
Just eager to know!
I didn't realize how big of a thing I was biting off. Web software was a bit simpler back then. I'd been doing a lot of destructive refactoring at work.. ie work that involved deleting more code than writing code. So I was like can I make something like Knockout that was simpler. Do I need all these features?
It always kept each part of the scope manageable for me. I saw each piece as a bunch of independent libraries not a single thing. Like if I didn't like the reactivity I could swap it.. if I didn't like templating I could replace it. At times I used existing libraries for certain pieces.
Although a few years later, my earliest article talks a bit about this process: medium.com/@ryansolid/b-y-o-f-part...
Honestly, for me it was just about starting small and seeing what was possible. I may have had a goal in mind but I kept an open mind to what it would look like.
Thank you. It just opened something in my mind!
Thank you!
Keep on rocking 🤘
You've done some amazing work so far, and here's to the next 10 🍻
btw, the whole story reminds me a bit of the story of Linux. More precisely, the famous Torvalds / Tanenbaum debate. How it started, and where it ultimately ended up 😁
I love this! Well done. I'm going to try SolidJS because of this origin story 😁
On another note this reminds me of rendering methods for desktop apps, windows went from GDI manual work to GDI+ and WPF and today's MAUI. Legitimately can see how they're working on separating the visible tree and the logical tree, this you get to also see on things like GTK and QT.
But beautiful journey here's to many more!
This is inspiring, thanks for sharing.
This was funny to read:
As someone who started advocating to devs to try other solutions beyond React (e.g. HTMX and now Solid), I find that most devs are not willing to think outside of their Udemy course or traditional stack. They're either fanboys of Next.js and does/use whatever three letter acronym they decide is the best, or they just want to use what's popular and would get them employed.
This is inspiring.
I've also been developing lonely Mod-css for a few years. And it started out as a result of dissatisfaction with Bootstrap and Tailwind. I wanted more possibilities and more flexibility to customize my components quickly.
The major difficulty in these projects is the lack of support. Working on your vision without a large audience can be discouraging in the long run. But I'm a bit like you, the desire to follow through with my ideas to check if I'm not crazy takes over every time.
From this, I had the idea for another project derived from the first one to create and configure reusable components. Like the first one, I want to simplify the creation of components in a fun and intuitive way, "JavaScript object like". The basic engine is ready, I will see if it meets the needs of a concrete project....
Thank you for this long and brilliant testimony, it's encouraging.
(Sorry for my bad English)
Thanks for the shout out, Ryan. I always believed in you and that you would accomplish something with Solid. Keep going strong!
I’m a huge proponent of SolidJS and swear by it at Hey API. What do you think needs to be done today/in the next couple years for Solid to become The JavaScript Framework™?
Well, I can't say that I had the same experience of patience with our boss at Vidigami, but I was at a fairly different place in my life and career. I'm happy for you man, you've gone far.
I think this was the only place he was patient. I did not think he was patient at all at the time. In fact, I was a little terrified of him. But in hindsight that aspect around open source he let me push back on way longer than he should have. And once he left a year or so later I was left holding the bag on all this stuff so if I hadn't started down that path I wouldn't have been able to manage things afterwards.
Thanks Emily.
So happy to be here to watch this story unfold! Amazing work Ryan, I hope I can get SolidJS into all my projects moving forward!
Congratulations! Amazing work and absolutely enormous efforts to make it happen. 🎉
Svelte and Vue are not doing the same thing. While state management is one of the most important things in modern frameworks, it's not the only thing that's important. Personally I will never go back to writing horrible diarrhea like
<div *ngIf="crap">shit<div>
in a markup language. It violates every developer principle that I can think of and I don't understand why large groups of developers keep going back to it and even producing more poop like htmx.This is a common misconception. I'm not just talking about state management with Signals. I'm talking about the approach to rendering, like how DOM updates are determined, and scheduled. Things like VDOM vs Dirty Checking vs Fine-Gained updates. Things like per element creation vs cloning. Use of intermediate structures versus not.
The compiled output of both Svelte 5 and Vue Vapor looks eerily similar to the compiled output of SolidJS, a large departure from how they worked previously.
As I said in the closing people overindex on syntax but at this point we are just seeing different syntax compiling to the same output in these cases. The truth is before SolidJS, Vue and Svelte were more like React. And ironically although Solid's syntax is closer to React it was the least architecturally like React of the bunch.
I'm not saying that syntax isn't important, but I've always been someone who cares about UX (what the end user gets) more than anything else. So when they are basically getting the same code, I call it as I see it.
Ok, yes I can see the relation between state management and rendering, maybe in that regard my initial statement was a bit blunt, but I do care about syntax and for me it makes solidjs stand out from the rest.
I am glad that you say UX is important to you though, because I expect a framework to play a big part in solving UX for me (reduce bundle size, resource usage, etc).
Btw, for someone who says they find UX more important than anything else, the DX of SolidJS is pretty good 😉