What Actually Happened When I Tried Slie On A Real Project
Most people talking about the new wave of UI frameworks are guessing. I've been building component libraries and design systems for years, so when Slie came up on my radar I decided to stop speculating and just use it on a production dashboard build. Here's what I found, both the good and the stuff nobody mentions in the launch blog posts. Slie is a declarative UI framework that compiles to lightweight DOM instructions rather than relying on a virtual DOM diffing layer. The core shift from traditional React-style setups is that you write components once and the compiler generates optimized rendering paths at build time. That means no reconciliation overhead during updates, no dependency array headaches, and a bundle size that stays roughly the same whether your app has ten components or a thousand. I've built enough apps to know that sounds too clean to be true, so I dug into how the compilation step actually works. The framework uses a static analysis pass during the build to trace state mutations and component hierarchies. When you update a piece of state, only the branches that reference that state get re-rendered. It's tree-shaking on steroids, but for rendering rather than imports.
The syntax takes about two days to get comfortable with if you're coming from React or Vue. You declare your template block, your reactive state variables, and your event handlers separately. The framework connects them automatically. It's less boilerplate than Svelte, slightly more opinionated than SolidJS, and somewhere in between in terms of community resources. That gap in the middle is both its strength and its weakness right now. One thing that genuinely surprised me was the dev experience. Hot module replacement works because the compiler tracks component boundaries precisely. When you change a template file, only that component and its direct dependents reload. On a dashboard with sixty-some components, that felt instant where other frameworks would stutter for a half-second or more. I ran into a real edge case early on that I haven't seen documented anywhere. When you try to dynamically import a component inside a reactive computation that changes frequently, Slie's compiler sometimes fails to track the dependency and the imported module doesn't update on changes. My workaround was straightforward: I hoisted the dynamic import to the module level using a lazy-loaded import map instead of keeping it inside the reactive block. It's not ideal because it loads all the possible components upfront, but it's a known pattern I found by reading the issues tab closely. The maintainers acknowledge it's a limitation of the current static analysis approach and have it on their roadmap for the next compiler release.
Performance-wise, the numbers check out. A form-heavy interface with eight bound inputs, four sub-components, and three watchers ran at a steady 60fps on a mid-range laptop. Compare that to a comparable React setup where each keystroke triggers a full subtree re-render chain, and you can see the difference without running any benchmarks. The framework's compile-time optimization means the browser isn't doing work it doesn't need to do. There are tradeoffs though, and they're significant. The ecosystem is still small. Component libraries exist, but none of them have the maturity of something like Material-UI or Ant Design. If you need a charting component, a date picker with timezone support, or a drag-and-drop grid, you'll likely be writing those yourself or forking existing implementations. That adds development time that the framework is supposed to save you, so factor that in before committing. Another limitation is SSR support. The framework handles server-side rendering, but the hydration process is less forgiving than React's. Mismatches between server and client output cause silent failures rather than clear error messages. I spent about three hours debugging a hydration mismatch on a single page before realizing one of my utility functions produced different output on the server and the client due to a locale-sensitive date formatter. Fixing that required moving the formatting logic into a pure function that only runs on the client side after hydration completes.
Get the Full Details

Bundle size is genuinely competitive. A basic app with routing and a few components comes in around 12 kilobytes minified and gzipped. That's lighter than most alternatives and it stays light because the framework doesn't ship a runtime library the way React does. Everything gets inlined during compilation. If your project has a strict budget for initial load time, this is one of those decisions where the numbers clearly favor Slie. The TypeScript support is solid. Type inference works well for props and state, but there are places where the compiler can't trace types through reactive wrappers and you need to add explicit annotations. It's not a dealbreaker, but it does slow down the flow when you're building complex nested components. For teams evaluating whether to adopt Slie, I'd suggest starting with a non-critical internal tool rather than your main product. The framework is stable enough for production use, but the documentation gaps mean you'll spend time reading source code and issue trackers instead of following a guide. That's fine for a small side project. It's risky for something with a deadline and a client breathing down your neck.
Deployment is straightforward. The standard build pipeline integrates with Vite, and the compiled output is standard JavaScript that runs in any modern browser. There's no special hosting requirement and no runtime service to configure. The one gotcha is that the build step takes longer than most frameworks because of the static analysis pass, but on a fresh machine it's usually under ten seconds for a medium-sized project. Looking ahead, the framework is moving in a direction that makes sense. The compiler team has been discussing better dynamic import handling, improved hydration error reporting, and a first-party component library that would address the biggest gap I've run into. Whether they deliver on those timelines is anyone's guess, but the pace of commits suggests active development rather than someone maintaining a side project between other work. If you're building a performance-sensitive application, have a team that's comfortable reading through code to solve problems, and don't need a massive component library on day one, Slie is worth your attention. If you need an ecosystem with answers to every question already written down, stick with what you know for now. The framework is good, but it's not a replacement for maturity.