
Iโm Attila Fassina, Developer Relations Lead at Crab Nebula and part of the Solid DX team. You can also find me as a Google Developer Expert. I like to make things simple, and naming things is hardโso Iโve created shortcuts to my website and social media if you want to reach out, ask questions, or talk shop after the session.
Alright, letโs dive into something excitingโSolid Start. Iโm going to walk you through how it works, what pieces come together to create this framework, and why itโs such a game-changer for the Solid ecosystem. For those unfamiliar, Solid Start is a full-stack framework built specifically for Solidโno, itโs not React. Itโs something different, something more tailored for high performance and flexibility, much like Next.js or Remix but with a unique twist.
What Sets Solid Start Apart: The Power of Flexibility

Solid Start, while similar to frameworks like Next.js, Remix, or Nuxt, is built a little differently. Itโs not just another framework that glues everything togetherโSolid Start is a "meta framework." What does that mean? Essentially, itโs a framework made of modular components that you can disassemble and reassemble at will. Think of it like Legoโyou can use the default pieces to create something functional, but youโre also free to take it apart and tailor it to whatever you want.
Many frameworks out there glue these Lego pieces together in a way that doesnโt let you separate them. That can take away some of the fun and flexibility, right? The beauty of Lego is in its ability to be whatever you want it to be, and Solid Start follows that same philosophy. With great defaults and enough flexibility, Solid Start lets you build the framework that suits your needs. In other words, your opinions are welcome here. You have the freedom to configure and deploy things exactly how you want them.
Breaking Down Solid Startโs Four Fundamental Pieces
To really understand what Solid Start is all about, we need to break down the core components that make it a full-stack framework. First, we have the core framework, which includes the bundler, the serializer, and the server. These three elements make Solid Start a true full-stack framework. Without them, thereโs no Solid Start. Second, we have Solid itself as a rendering library that provides the user interface for your app. The third key piece is Solid Router, which manages client-side logic and data loading. This is the component that you might want to switch out if you prefer a different router, though that requires some additional bindings.
And finally, we have Solid Meta, which handles meta tags and SEO for your app. These four components come together to create the full-stack experience that makes Solid Start so unique and flexible. Now, letโs dive deeper into how all of these pieces interact and work together.
Cevo: The Magic Behind Efficient Serialization
One of the most exciting aspects of Solid Start is how it handles serialization with Cevo. Cevo connects all of your server-side functionsโthe RPC layer of your frameworkโand serializes them before sending the data to the client. Whatโs interesting is that Cevo caches everything by reference, which means that even if you have three different functions pulling data from three different endpoints, Cevo ensures that the data is deduplicated. This way, youโre not wasting bandwidth by sending the same data multiple times.
But thatโs not allโCevo also supports streaming, which means it can serialize readable streams, promises, and even async generators. This makes it incredibly efficient at handling large data sets and complex operations. Letโs see a demo of how this works.
A Real-Time Demo: Streaming Data with Cevo
We have a simple webpage with a button. When I click โstart,โ it opens a stream connection to my server and begins sending lines of text from the poem โThe Raven,โ one line at a time. As you can see in the network tab, the size of the payload keeps increasing. These lines donโt exist in the clientโtheyโre being streamed from the server in real-time.
The cool thing here is that Solid Start, through Cevo, makes this possible with minimal setup. On the client side, weโre using a signal instead of state, which updates each time a new line comes in. The server-side logic is even more interesting. We use an asynchronous generator that sends one line of the poem every 500 milliseconds. Thatโs how easy it is to create real-time streams with Solid Start.
Vinci Takes the Lead for Flexible Deployment
Now, letโs talk about Vinci, another key component of Solid Start. Vinci is essentially a wrapper around Vite and Nitro. Most of you are probably familiar with Viteโitโs a bundler and dev server that many frameworks use. Nitro, on the other hand, is a Node.js runtime developed by the Nuxt.js team. Itโs platform-agnostic, which means it works across different environments. Vinci ties these two tools together, creating a seamless environment for Solid Start to thrive in.
The best part? Vinci lets you configure your appโs deployment in just a few lines of code. You can switch between around 30 presets for deployment, whether youโre targeting Netlify, Cloudflare, or another provider. Vinci also supports pre-rendering. You can tell it to crawl all the links on your site at build time, pre-render them, and cache the results for faster load times. Vinci ensures that your app is ready to deploy wherever you need it to go.
Solidโs User Interface Shines with Flexibility
The user interface in Solid Start is powered by Solid itself, as you might have guessed. Solid Start also comes with a file-based routing system, similar to what youโd find in Remix, Next.js, or Nuxt. You can create routes based on your file structure, with options for dynamic routes, named routes, and even catch-all routes. Solid Start makes it easy to organize your appโs routes while keeping things flexible.
Whatโs even better is that Solid Start encourages parallel data loading, which avoids the waterfall effect that can slow down apps. By lifting your external data loading to the server, Solid Start can handle everything efficiently. The framework is practically allergic to waterfall patterns, ensuring your app runs as smoothly as possible.
Cutting-Edge Features: Single-Flight Mutations

Solid Start also introduces a concept called single-flight mutations. In most frameworks, when you submit a form, youโll see two requestsโone for the navigation and one for the data. But Solid Start optimizes this process. It knows what data has changed and only sends whatโs necessary, so you get everything done in just one request. This reduces the load on your server and improves the user experience by speeding up interactions.
Efficiency at Its Best!
In Solid Start, youโll see only one request. Thatโs because the framework is aware of the changes and sends only the minimum required data, making everything more efficient. This is just one example of how Solid Start optimizes your appโs performance.
Building Across Platforms: Web, Desktop, and Mobile in One Codebase
One of the most powerful aspects of Solid Start is its versatility. Using Tauri, a Rust-based framework, you can build for the web, desktop, and mobileโall from the same codebase. Tauri connects your web app to system binaries, rendering it within the systemโs web view. Whatโs even more exciting is that by changing just one file, you can configure your app to deploy across different platforms, whether itโs web, desktop, or mobile.
This flexibility allows you to build cross-platform applications without duplicating effort. The only limitation right now is that server-side rendering isnโt supported in Tauri, but other than that, it works seamlessly across different environments.
Solid Start Recap: Primitives, Flexibility, and Power

So, letโs recap. Solid Start offers powerful primitives, great defaults, and the flexibility to customize every aspect of your app. Whether youโre building a complex full-stack app or deploying across multiple platforms, Solid Start gives you the tools to work efficiently. The point of this talk isnโt to convince you to switch to Solid Start, but to help you understand how frameworks like this can change the way you build apps.
The ability to mix and match components, optimize data fetching, and deploy across platforms with ease is a game-changer. If any of these features interest you, feel free to come chat with me. Iโm happy to help and answer any questions you may have. Thanks for being a great audience!
Watch the full video here. โฌ๏ธ







