# What changed in @solidjs/start

> 37 changes in @solidjs/start 1 to 2 from its official release notes, upgrade guides and advisories: 9 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/npm/@solidjs/start/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @solidjs/start 2

### Breaking changes

- Server function responses default to no-store, while a function's own Cache-Control is preserved and 304 responses are excluded. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- Server function requests are allowed only from the same origin or same site; cross-site requests receive 403. Use an API route with explicit CORS for separate origins. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- A "use server" function that reads an enclosing function variable now fails the build instead of compiling into broken output. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- A "use server" directive in an object or class method now fails the build instead of shipping the method body and its imports to the browser. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- A server function request with Origin: null and no Sec-Fetch-Site is now refused with 403; requests carrying neither header remain allowed. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- Projects must use seroval and seroval-plugins 1.6.8 or newer. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- Chunk headers are checked strictly, and the server rejects client-sent chunks over 64MB. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- When a body ends or fails, promises waiting on later frames reject and open streams error; unawaited decoded promises no longer report unhandled rejections. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- A "use server" string that is not the first statement of a module or function body now logs a warning and has no effect. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)

### New APIs and options

- This option sends page assets as 103 Early Hints, or as Link headers on non-Node runtimes; it is off by default and applies only to production builds. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- In production, a route code load failure during client-side navigation reloads the page once at the destination; set this option to false to disable it. (1.4.0, 2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0), [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%401.4.0)
- The data-only mode renders on the client without hydration while running route preloads on the server and streaming their query results with the HTML shell. (1.4.0, 2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0), [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%401.4.0)

### Performance

- The dev toolbar's CSS is dropped from production builds because the toolbar is dead code there. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- Server function and lazy transforms do less parsing, and modules with many server functions compile about four times faster. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- Large payloads arriving in many small pieces are read in linear time, substantially reducing read time. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)

### Behavior and default changes

- Vite's base can be a full URL for serving assets from a CDN; server functions post to the app's mount path rather than the asset base. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- A clientOnly loader can resolve directly to a component, allowing named exports without wrapping them in `{ default }`. (1.4.0, 2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0), [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%401.4.0)
- Changes to entry-server or middleware now reload the browser in development instead of leaving previously rendered output visible. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- When form data exceeds the flash cookie size, the data is omitted from the cookie while the result and error still come through; the server logs a warning. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- solid-js is now a peer dependency, so SolidStart uses the app's copy and unsupported versions produce an install-time peer dependency warning. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- Ids are built from the names a function is nested under, so adding another server function no longer changes an id and same-named functions are distinguished by their surrounding names. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- Exports a "use server" module cannot serve now produce a warning naming the export; they remain excluded from the client build. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)

### Tooling

- Server functions are now compiled in .mts and .cts files. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)

### Fixes and other changes

- This server API is exported from @solidjs/start/server in SPA mode so apps using it build. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- This server API is exported from @solidjs/start/server in SPA mode so apps using it build. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- This server API is exported from @solidjs/start/server in SPA mode so apps using it build. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- If the browser's path or query changes before hydration starts, rendering falls back to the client to prevent hydration mismatches and stale server data. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- A module with a server function no longer fails to compile because of an unused for-of or for-in loop variable or a chain of unused declarations. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- In SPA mode, a route that exports both a page and an API handler is served as a page rather than treated as API-only. (2.1.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.1.0)
- A "use server" module can now export an anonymous default function using either supported function syntax. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- Lazily imported client components that use client-only no longer cause the server build to fail. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- POSTs without the client runtime and with an empty body or non-form content type now return the normal redirect; flash-cookie handling can no longer take down the error path. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- Malformed later chunks are logged rather than causing an unhandled rejection, and chunks that cannot be read or parsed cancel the stream. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)
- The build check for unsupported "use server" functions now covers this and arguments in arrow functions, super, and private class members. (2.0.6) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%402.0.6)

## @solidjs/start 1

### New APIs and options

- Enables sending page assets as `103 Early Hints` so browsers can begin downloading while the server renders; off by default and only applies to production builds. (1.4.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%401.4.0)

### Behavior and default changes

- Pages are served in SPA mode (`ssr: false`) when a route file exports both a page and an API handler. (1.4.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%401.4.0)

### Fixes and other changes

- On Node, the signal aborts when the client disconnects, allowing API routes to stop running after the client goes away. (1.4.0) — [release notes](https://github.com/solidjs/solid-start/releases/tag/%40solidjs/start%401.4.0)
