SolidJS: What It Actually Is and Why I Switched

I've been using SolidJS for 8 months after getting fed up with React's performance bullshit. Last time I checked it was on 1.8.something - honestly I don't track version numbers religiously, but it's actively maintained and getting regular updates.

SolidJS Architecture Comparison

Here's the thing - SolidJS looks like React but doesn't act like React under the hood. When you change state, it updates only the exact DOM nodes that need changing. Not the whole component tree, not a virtual DOM diff, just the specific text or attribute that changed. From what I've seen in benchmarks, SolidJS consistently ranks near the top. React is usually somewhere in the middle. The exact positions change but the pattern is consistent.

Signals Beat React's useState Chaos

Signals are what React's useState should have been. No dependency arrays, no "why is my effect running infinitely" moments, no stale closures:

function Counter() {
  const [count, setCount] = createSignal(0);
  
  return (
    <button onClick={() => setCount(count() + 1)}>
      Count: {count()}
    </button>
  );
}

This component function runs once. When you click the button, only the text inside updates. No re-renders, no reconciliation hell, no wondering why your expensive calculations are running again.

The Performance Numbers Are Actually Real

I was skeptical about the benchmark claims until I migrated a React dashboard with around 500 DOM nodes. Bundle went from like 180KB to maybe 50KB? I didn't measure it scientifically but it was a big difference. Load times went from "time to make coffee" to actually usable.

From what I've seen in benchmarks, SolidJS consistently ranks near the top for both speed and memory usage. The difference is real.

Learning Curve: Not as Bad as You Think

If you know React hooks, you'll pick up SolidJS in a weekend. The main gotchas:

  • Signals are functions: count() not count
  • Components don't re-run, so no local variables in render
  • Stores for nested state instead of multiple useState calls

I spent maybe 3 hours debugging the parentheses thing when I started. First day I tried to use useEffect and got compiler errors for 20 minutes. After that, it's smooth sailing. The tutorial is actually good, unlike most framework docs that assume you're already an expert.

SolidJS vs React Comparison

Production Reality Check

Used it on 3 production apps now. The ecosystem is smaller than React's, but the core stuff works great. TypeScript support is built-in, not an afterthought. Hot reload dies at least once a day, usually when you're deep in debugging and don't want to lose state - you have to restart the dev server.

Companies like Netlify and CodeSandbox use it in production. It's not some hobby project - it's solid enough (pun intended) for real applications.

SolidJS vs React vs Vue vs Angular - Real Talk

Feature

SolidJS

React

Vue

Angular

Bundle Size

tiny

  • like 15KB or something, maybe smaller.

chunky at ~45KB but whatever, that's not usually the bottleneck.

similar size to React.

massive because it's Angular.

Performance (General)

legitimately fast because no virtual DOM.

can be fast but you have to know all the optimization tricks.

I haven't used Vue 3 enough to judge fairly.

yeah, it's slow unless you're Google.

Learning if you know React

easy for me to pick up, just different thinking.

N/A (baseline)

looks approachable but I haven't tried it seriously.

enterprise software

  • comes with structure but also overhead.

Job market reality

Good luck hiring SolidJS developers

  • I've posted job descriptions and gotten maybe 3 applications.

jobs are everywhere

has decent opportunities.

mostly enterprise stuff.

Ecosystem and tooling

small but growing.

huge, sometimes annoyingly huge.

seems mature from what I've seen.

comes with everything built-in but it's heavy.

Performance Reality Check (Load Time)

loads fast as hell, usually under a second even for complex apps.

takes forever

  • like 2-3 seconds if you're lucky and you've optimized everything.

I haven't built enough with Vue to judge load times fairly.

has slow startup because it's loading half the internet.

Performance Reality Check (Memory)

barely uses anything.

eats memory like crazy with all those re-renders.

Performance Reality Check (Updates)

When stuff updates, SolidJS is instant.

good if you memo everything to death, otherwise you're debugging why your list component is re-rendering when you clicked a button in the header.

Best For

  • Performance actually matters to your users
  • You're building something new (not migrating a giant codebase)
  • Small ecosystem doesn't scare you
  • You want to learn something that isn't just "React but different"
  • You need to hire developers easily
  • Ecosystem size trumps performance
  • You already have a working React app
  • Management won't approve anything that isn't a Facebook product
  • You want easy learning curve
  • Need mature ecosystem
  • Like progressive enhancement
  • Want something between React complexity and Angular overhead
  • Building enterprise applications
  • TypeScript-first is mandatory
  • Need opinionated structure
  • Your company forces Angular because Google told them to

The Advanced Stuff That Actually Matters

After using SolidJS in production for months, here are the features that actually save you time (and the ones that'll bite you).

Stores: Better Than useState for Complex State

Stores are what you use when signals aren't enough. Think nested objects that stay reactive:

const [state, setState] = createStore({
  user: { name: "John", age: 30 },
  posts: [],
  loading: false
});

// Update just the age - everything else untouched
setState("user", "age", age => age + 1);

This is way cleaner than React's "spread everything and hope you didn't break immutability" dance. I spent 2 hours debugging a React state update that broke because I mutated nested data. With stores, you just update what you need.

SolidJS Reactive System Diagram

Resources: Async That Doesn't Suck

The resource system handles loading states without the usual useState/useEffect mess:

const [user] = createResource(userId, fetchUser);

return (
  <div>
    <Show when={user.loading}>
      <div>Loading...</div>
    </Show>
    <Show when={user.error}>
      <div>Error: {user.error.message}</div>
    </Show>
    <Show when={user()}>
      <UserProfile user={user()} />
    </Show>
  </div>
);

No more "loading state got out of sync with data" bugs. No more forgetting to handle the error case. It just works, and when the userId changes, it automatically refetches.

SolidStart: SSR That Doesn't Fight You

SolidStart is their answer to Next.js. Used it for 2 projects now - it's surprisingly solid:

  • File-based routing - drop a file in routes/, get a route
  • API routes work like Next.js but simpler
  • Deployment works on Cloudflare Workers, Netlify, anywhere really
  • Islands architecture - only hydrate what needs to be interactive

The main gotcha: it's still in active development. Breaking changes happen between minor versions. Had to fix my routing twice in 6 months, but nothing I couldn't figure out in an hour or two.

SolidJS Build Process

The Compilation Magic (And When It Breaks)

SolidJS compiles your JSX into optimized DOM operations. This is why it's fast, but also why some things that work in React don't work here:

This breaks:

function Broken() {
  const items = [1, 2, 3];
  return <div>{items.map(i => <span>{i}</span>)}</div>;
}

This works:

function Fixed() {
  const items = [1, 2, 3];
  return (
    <div>
      <For each={items}>
        {(item) => <span>{item}</span>}
      </For>
    </div>
  );
}

You need control flow components instead of regular JavaScript. Took me a few "why isn't this rendering" moments to learn.

Ecosystem Reality

The ecosystem is smaller but the core stuff is there:

  • Hope UI - Component library that doesn't suck
  • Kobalte - Accessible headless components
  • Solid Router - Client-side routing, docs are somewhere on their site

Missing stuff you might expect:

  • No equivalent to React DevTools (they exist but they're basic)
  • Animation libraries are limited
  • Third-party integrations often need custom adapters

When SolidJS Pisses You Off

Hot reload breaks: Maybe once a day, you have to restart the dev server. Usually happens when you're deep in debugging mode and don't want to lose state. If hot reload breaks beyond repair: rm -rf node_modules/.vite && npm run dev - the nuclear option that actually works.

TypeScript inference gets confused: With complex stores or resources, TypeScript sometimes can't figure out types. You end up with manual type assertions all over the place.

Component patterns don't transfer: Coming from React, you'll try to use patterns that don't work. The mental model shift takes a few days - expect to delete and rewrite components when you realize you're fighting the compiler.

Debugging is different: No React DevTools means more console.log debugging. The browser extension exists but it's not as polished. When components aren't updating, first thing to check: Are you calling your signal as a function? count() not count.

First deployment gotcha: SSR hydration fails with Error: Hydration mismatch: Text content does not match server-rendered HTML. Spent 4 hours debugging a dropdown that worked perfectly in dev but wouldn't open in production. Turned out to be a timing issue with async data. The dumb thing to check first: Are you using Date.now() or Math.random() in your render? That'll break hydration every time.

SolidJS Development Experience

The Bottom Line

SolidJS does what it claims - fast updates, small bundles, React-like DX. The tradeoff is a smaller ecosystem and occasional rough edges. Worth it if performance matters to your users and you don't mind being an early adopter.

Questions You Actually Want Answered

Q

Is this another JS framework that'll be dead in 2 years?

A

Probably not. Ryan Carniato has been working on this since 2018, and it's gained serious traction. Companies like Netlify and CloudFlare are using it in production. Gets regular updates, showing they're actively maintaining it.That said, the JS ecosystem is brutal. But SolidJS has enough momentum that it's not going anywhere soon.

Q

Will my team hate me if I pick this over React?

A

Your team will probably complain for 2 weeks then realize it's actually simpler than React hooks. Finding Solid

JS developers is tough though

  • posting a SolidJS job gets you 3 applications vs 300 for React. If you're hiring, expect to train people. The syntax is familiar enough that React devs adapt quickly.The bigger issue is convincing management that "not React" is worth the risk. Management loves buzzwords, so call it "high-performance reactive architecture" instead of "not React".
Q

How hard is migration from React?

A

Depends on your app size. For a simple dashboard, I migrated 200 components in about 3 days. Key changes:

  • useState becomes createSignal
  • useEffect becomes createEffect
  • map() becomes <For>
  • Props don't destructure the same way

The migration guide is actually helpful. Biggest gotcha: you'll try React patterns that don't work, waste a few hours, then learn the SolidJS way.

Q

Does it actually perform better than React?

A

In my experience, yes. But the difference depends on your app. For simple forms, you won't notice. For dashboards with tons of data updates, the difference is huge.

From what I've seen in benchmarks, SolidJS consistently ranks near the top. React is usually somewhere in the middle. Real-world performance improvement varies - I've seen anywhere from 30-70% faster load times depending on the app and how much you fucked up the React version.

Q

What about the ecosystem? Can I actually build real stuff?

A

The core is solid (pun intended), but the ecosystem is smaller:

What works well:

  • SolidStart for full-stack apps
  • Hope UI and Kobalte for components
  • Most JS libraries work fine if they don't depend on React

What's missing:

  • Fewer animation libraries
  • Less tooling overall
  • Some popular React libraries have no SolidJS equivalent

For greenfield projects, it's fine. For existing React codebases, the migration cost might not be worth it.

Q

Is the documentation any good?

A

The tutorial is excellent - actually teaches concepts instead of showing Hello World. The docs are decent but sometimes assume you understand the mental model.

The Discord community is super helpful. Ryan Carniato himself answers questions regularly, which is pretty cool.

Q

Should I use this for my next project?

A

If you care about performance and don't mind a smaller ecosystem, yes. If you need to hire React developers quickly, probably stick with React.

Good fit for:

  • Performance-critical applications
  • New projects where you control the tech stack
  • Teams willing to invest time in learning

Bad fit for:

  • Large teams needing to hire quickly
  • Projects requiring extensive third-party integrations
  • Enterprise clients who think anything newer than jQuery is risky
Q

What's the catch?

A

Hot reload breaks occasionally - maybe once a day you restart the dev server

Smaller ecosystem - you'll build some things yourself that exist for React

Different mental model - takes a few days to stop thinking in React patterns

TypeScript can be tricky - complex stores sometimes confuse the type inference

Limited animation libraries - if your app is heavy on animations, React has more options

Q

Can I use React components with SolidJS?

A

Nope. Different architectures. Porting is usually straightforward though.

Related Tools & Recommendations

tool
Similar content

Astro Overview: Static Sites, React Integration & Astro 5.0

Explore Astro, the static site generator that solves JavaScript bloat. Learn about its benefits, React integration, and the game-changing content features in As

Astro
/tool/astro/overview
100%
tool
Similar content

SvelteKit: Fast Web Apps & Why It Outperforms Alternatives

I'm tired of explaining to clients why their React checkout takes 5 seconds to load

SvelteKit
/tool/sveltekit/overview
98%
compare
Similar content

Remix vs SvelteKit vs Next.js: SSR Performance Showdown

I got paged at 3AM by apps built with all three of these. Here's which one made me want to quit programming.

Remix
/compare/remix/sveltekit/ssr-performance-showdown
90%
tool
Similar content

React Overview: What It Is, Why Use It, & Its Ecosystem

Facebook's solution to the "why did my dropdown menu break the entire page?" problem.

React
/tool/react/overview
77%
tool
Similar content

Next.js Overview: Features, Benefits & Next.js 15 Updates

Explore Next.js, the powerful React framework with built-in routing, SSR, and API endpoints. Understand its core benefits, when to use it, and what's new in Nex

Next.js
/tool/nextjs/overview
70%
tool
Similar content

React Production Debugging: Fix App Crashes & White Screens

Five ways React apps crash in production that'll make you question your life choices.

React
/tool/react/debugging-production-issues
69%
tool
Similar content

Remix Overview: Modern React Framework for HTML Forms & Nested Routes

Finally, a React framework that remembers HTML exists

Remix
/tool/remix/overview
66%
troubleshoot
Similar content

React Performance Optimization: Fix Slow Loading & Bad UX in Production

Fix slow React apps in production. Discover the top 5 performance killers, get step-by-step optimization fixes, and learn prevention strategies for faster loadi

React
/troubleshoot/react-performance-optimization-production/performance-optimization-production
61%
tool
Similar content

React Codemod: Automated Upgrades & Migrations for React Apps

Official collection of codemods for seamless React upgrades and migrations

React Codemod
/tool/react-codemod/overview
58%
howto
Similar content

Angular to React Migration Guide: Convert Apps Successfully

Based on 3 failed attempts and 1 that worked

Angular
/howto/convert-angular-app-react/complete-migration-guide
53%
tool
Similar content

Webpack Performance Optimization: Fix Slow Builds & Bundles

Optimize Webpack performance: fix slow builds, reduce giant bundle sizes, and implement production-ready configurations. Improve app loading speed and user expe

Webpack
/tool/webpack/performance-optimization
53%
tool
Similar content

Webpack: The Build Tool You'll Love to Hate & Still Use in 2025

Explore Webpack, the JavaScript build tool. Understand its powerful features, module system, and why it remains a core part of modern web development workflows.

Webpack
/tool/webpack/overview
53%
alternatives
Similar content

Modern Lightweight jQuery Alternatives for 2025

Skip the 87KB overhead and embrace modern DOM manipulation with these fast, minimal libraries that deliver jQuery's simplicity without the performance penalty.

jQuery
/alternatives/jquery/modern-lightweight-alternatives
53%
tool
Similar content

GraphQL Overview: Why It Exists, Features & Tools Explained

Get exactly the data you need without 15 API calls and 90% useless JSON

GraphQL
/tool/graphql/overview
50%
tool
Similar content

GitHub Primer Design System: Overview & Getting Started Guide

Explore GitHub's Primer Design System, its component library, and practical implementation tips. Learn how to get started, understand common gotchas, and find a

GitHub Primer Design System
/tool/primer/overview
48%
troubleshoot
Similar content

Fix Slow Next.js Build Times: Boost Performance & Productivity

When your 20-minute builds used to take 3 minutes and you're about to lose your mind

Next.js
/troubleshoot/nextjs-slow-build-times/build-performance-optimization
45%
howto
Similar content

React Error Boundary Production Debugging: Fix Blank Screens

Error boundaries work great in dev, then production happens and users see blank screens while your logs show nothing useful.

/howto/react-error-boundary-production-debugging/debugging-production-issues
45%
tool
Similar content

npm - The Package Manager Everyone Uses But Nobody Really Likes

It's slow, it breaks randomly, but it comes with Node.js so here we are

npm
/tool/npm/overview
45%
tool
Similar content

Node.js Performance Optimization: Boost App Speed & Scale

Master Node.js performance optimization techniques. Learn to speed up your V8 engine, effectively use clustering & worker threads, and scale your applications e

Node.js
/tool/node.js/performance-optimization
45%
tool
Similar content

npm Enterprise Troubleshooting: Fix Corporate IT & Dev Problems

Production failures, proxy hell, and the CI/CD problems that actually cost money

npm
/tool/npm/enterprise-troubleshooting
45%

Recommendations combine user behavior, content similarity, research intelligence, and SEO optimization