English for SolidStart Developers

Learn the English vocabulary for SolidStart, the full-stack meta-framework for SolidJS: file-based routing, server functions, and fine-grained reactivity in a server context.

SolidStart borrows structural vocabulary from other meta-frameworks — routes, loaders, server functions — but sits on top of SolidJS’s fine-grained reactivity model, so a few terms carry a different meaning than they do in a React-based framework, and treating them as interchangeable causes real confusion in cross-framework teams.

Key Vocabulary

Server function — a function marked with SolidStart’s "use server" directive that always executes on the server, callable directly from client code as if it were a normal function, with the framework handling the network call transparently. “We moved the database query into a server function instead of exposing it through a hand-written API route — it’s called the same way from the component, but the actual query never ships to the client.”

Route data / loader — a function associated with a route that fetches the data a page needs before or during rendering, keeping data-fetching logic separate from the component’s markup. “The loader runs before the route renders, so by the time the component mounts, the data it needs is already available — no loading spinner flash on initial navigation.”

Signal (in a server context) — SolidJS’s fine-grained reactive primitive; in SolidStart, understanding that signals update dependent computations directly (not by re-rendering a whole component) matters for reasoning about server-rendered versus hydrated behavior. “Unlike a React state update, changing this signal doesn’t re-render the component — it only re-runs the specific computation that reads it, which is why the DOM update here is so targeted.”

Hydration — the process of a server-rendered page becoming interactive in the browser, where SolidStart attaches its fine-grained reactive system to the existing server-rendered DOM rather than re-rendering it from scratch. “The flash of unstyled content we saw wasn’t a CSS issue — it was a hydration mismatch, where the server-rendered markup didn’t match what the client expected to attach to.”

Islands (opt-in) — SolidStart’s ability to ship JavaScript only for interactive parts of a page, keeping the rest as static, non-hydrated HTML, reducing the amount of client-side code sent for mostly-static pages. “We marked the pricing table as an island since it’s the only interactive part of that page — the rest ships as plain HTML with no client JavaScript at all.”

Common Phrases

  • “Is this data being fetched in the route’s loader, or is it happening client-side after the component mounts?”
  • “Is this a server function, or does it need its own hand-written API route?”
  • “Is the mismatch here a hydration issue, or is the server actually returning different data than the client expects?”
  • “Should this section be an island, or does the whole page need to be interactive anyway?”
  • “Is this signal update causing a full re-render, or just the specific computation that depends on it?”

Example Sentences

Debugging a hydration warning: “The hydration mismatch was caused by a Date.now() call inside the component — the server rendered one timestamp, the client rendered a different one a moment later, and Solid flagged the mismatch.”

Explaining an architecture decision in a PR: “We used a server function here instead of a REST endpoint since this data is only ever consumed by this one page, and the server function keeps the client-facing API surface smaller.”

Describing a performance improvement: “Marking the comment section as an island cut our JS bundle for this page significantly, since the article body itself needs zero client-side interactivity.”

Professional Tips

  • Say server function explicitly rather than “backend call” — it names a specific SolidStart primitive with specific behavior around serialization and network boundaries.
  • Explain hydration mismatches precisely when debugging visual glitches on load — vague descriptions like “flickering” often hide a concrete, fixable data-consistency bug.
  • Use island deliberately in performance discussions — it signals an explicit choice about where interactivity is needed, not just “make it faster.”
  • Clarify that signals update targeted computations, not whole components, when comparing SolidStart’s model to a React-based framework — this distinction is often the actual source of confusion in mixed teams.

Practice Exercise

  1. Explain the difference between a server function and a loader.
  2. Describe what a hydration mismatch is and give one common cause.
  3. Write a sentence explaining what an “island” is and why you’d use one.