Skip to content

Update solid-start-v2 templates to @solidjs/start 2.0.0-beta.0 and nitro v3 - #262

Merged
birkskyum merged 1 commit into
solidjs:mainfrom
brenelz:start-beta-nitro-v3
Jul 15, 2026
Merged

Update solid-start-v2 templates to @solidjs/start 2.0.0-beta.0 and nitro v3#262
birkskyum merged 1 commit into
solidjs:mainfrom
brenelz:start-beta-nitro-v3

Conversation

@brenelz

@brenelz brenelz commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Move to nitro v3

@brenelz
brenelz marked this pull request as draft July 15, 2026 22:47
@brenelz
brenelz force-pushed the start-beta-nitro-v3 branch 2 times, most recently from 6039702 to e115c7c Compare July 15, 2026 23:02
@brenelz
brenelz marked this pull request as ready for review July 15, 2026 23:06
…ite 8

Version updates across all templates:
- @solidjs/start ^2.0.0-beta.0 (caret picks up future betas and 2.x stable)
- nitro ^3.0.260610-beta, replacing the nitro v2 pin from PR solidjs#251
  (@solidjs/vite-plugin-nitro-2); the caret picks up nitro 3.x stable
- vite ^8.0.0
- @solidjs/router ^0.16.2 (except with-solidbase: solidbase depends on
  ^0.15.3, and mixing 0.15/0.16 yields two router instances and breaks SSR)
- engines.node >=24

with-unocss switches UnoCSS to per-module mode: the default global mode
can't find vite:css-post across Vite environments (unocss/unocss#4990),
which made nitro v3 builds ship an unreplaced CSS placeholder (solidjs#250).
per-module mode doesn't depend on vite:css-post and works with the
Environment API.

with-solidbase gains a pnpm-workspace.yaml with a packageExtensions entry
that adds the 'resolve' dependency to @kobalte/solidbase: the pkg.pr.new
snapshot imports it without declaring it, which breaks pnpm's strict
node_modules (template previously failed to build even from its committed
lockfile). Remove the extension once solidbase declares the dependency.

Verified per template (vite 8.1.4, node 25): pnpm install, vite build,
serve .output/server/index.mjs, HTTP 200 + non-placeholder CSS assets
(with-vitest: tests pass; with-authjs: verified with env vars from
.env.example; with-drizzle: verified with better-sqlite3 bindings built
and drizzle-kit push; with-solidbase: prerendered pages render with full
theme).

Known issue: with-tanstack-router is updated and builds, but 500s at SSR
with any fresh lockfile (also broken on main) - @tanstack/solid-router
drift needs a separate fix.
@brenelz
brenelz force-pushed the start-beta-nitro-v3 branch from e115c7c to 1303e85 Compare July 15, 2026 23:18
@birkskyum
birkskyum merged commit b3ded87 into solidjs:main Jul 15, 2026
birkskyum pushed a commit that referenced this pull request Jul 28, 2026
…270)

- @solidjs/router ^1.0.0 (from ^0.16.2; with-solidbase from ^0.15.3)
- @solidjs/start ^2.0.0-rc.6 (from ^2.0.0-beta.0)
- solid-js ^1.9.14 across all templates: start 2 rc depends on ^1.9.14, and
  the older ranges pinned in the lockfiles resolved to 1.9.11, which installed
  a second solid-js copy alongside it

No source changes were needed: router 1.0.0 is API-identical to 0.16.3 apart
from scrollRestoration typings, and start beta.0 -> rc.6 has no breaking
changes for app code.

with-solidbase needs two workspace tweaks:
- an overrides entry forcing @solidjs/router 1, since solidbase still depends
  on ^0.15.3 and two router instances break SSR
- esbuild added to the packageExtensions for solidbase, which imports it
  without declaring it; it used to be satisfied by a copy hoisted from
  @solidjs/start's dependencies, which start 2 rc no longer pulls in

Verified per template (pnpm install, vite build, serve .output/server/index.mjs,
HTTP 200): all 15 build and serve. with-auth 302s to /login, which then serves
200. with-vitest tests pass. with-drizzle verified with better-sqlite3 built
and drizzle-kit push, with-prisma with prisma db push + generate, with-authjs
with the env vars from .env.example. with-solidbase prerenders and serves both
routes. with-tanstack-router, broken at SSR since #262, now serves 200.
Client-side navigation and hydration checked in a browser on basic.

solid-start-v1 templates are untouched: they stay on @solidjs/start 1.3.2 and
@solidjs/router 0.15.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants