Skip to content

Bump to SolidStart v2 - #369

Open
birkskyum wants to merge 3 commits into
e18e:mainfrom
birkskyum:bump-solid-start-v2
Open

Bump to SolidStart v2#369
birkskyum wants to merge 3 commits into
e18e:mainfrom
birkskyum:bump-solid-start-v2

Conversation

@birkskyum

@birkskyum birkskyum commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Waiting for

Bumps SolidStart from 1.x to 2.0.0 in starter-solid-start and app-solid-start.

SolidStart v2 (annoucement post) is a tooling change rather than a plain version bump: Vinxi is replaced by
Vite's Environment API and Nitro v3.

Framework packages

  • Drop vinxi; add vite 8.2.1 and nitro 3.0.260610-beta as direct deps
  • Replace app.config.ts with vite.config.ts using solidStart() + nitro()
  • Scripts move from vinxi dev/build/start to vite dev/build/preview
  • engines.node raised to >=24 (required by v2)
  • tsconfig types switches to @solidjs/start/env, making the starter's src/global.d.ts redundant
  • Companions bumped to latest as of the v2 release: @solidjs/router 1.0.0, solid-js 1.9.14

@birkskyum birkskyum changed the title Bump solid start v2 Bump to SolidStart v2 Aug 6, 2026
@AlexanderKaran

Copy link
Copy Markdown
Collaborator

@birkskyum Looks good to me. Will wait till the other PR is split and merged before we do this one.

I also need to double-check the starter-* setup and list the flow before we merge to check for changes

@AlexanderKaran

Copy link
Copy Markdown
Collaborator

@birkskyum First bump is in. I am going to re-run the stats a few times over the weekend to make sure no crazy differences between each run and then will merge this one.

Still need to check the startup set up but will paste there here for review once done

Bump SolidStart from 1.2.1 to 2.0.0 in both the starter and app packages.

v2 replaces Vinxi with Vite's Environment API and Nitro v3:

- Drop `vinxi`; add `vite` 8.2.1 and `nitro` 3.0.260610-beta as direct deps
- Replace `app.config.ts` with `vite.config.ts` using `solidStart()` + `nitro()`
- Scripts move from `vinxi dev/build/start` to `vite dev/build/preview`
- `engines.node` raised to >=24 (required by SolidStart v2)
- tsconfig `types` switches from `vinxi/types/client` to `@solidjs/start/env`,
  which makes the starter's `src/global.d.ts` reference redundant

Companion packages bumped to latest as of the v2 release: `@solidjs/router`
1.0.0, `solid-js` 1.9.14.

The SSR throughput handler is updated for Nitro v3's output layout: the entry
is now `.output/server/index.mjs` exposing a fetch handler on
`globalThis.__nitro__.default`, matching the existing TanStack Start handler.

`typescript` is added as a starter devDependency because `tsc` was previously
only present transitively via Vinxi, so `type-check` broke without it.
@birkskyum
birkskyum force-pushed the bump-solid-start-v2 branch from b83bb47 to 1436b88 Compare August 7, 2026 12:54
@birkskyum

Copy link
Copy Markdown
Contributor Author

@AlexanderKaran excellent, i've rebased the branch, so it's not having merge conflicts

@AlexanderKaran

AlexanderKaran commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

@birkskyum Ok I am happy to merge this. I did not find any crazy differences between your changes and the template your CLI makes

Just to confirm one thing: if I were to re-create our starter-* package from your CLI again these would be the steps for V2 yes:

pnpm create solid .

Project type: SolidStart

SolidStart version: 2 (Stable)

TypeScript: Yes

Template: basic

Install dependencies: pnpm install

If you check out main, you can see I list the steps we currently use to create the projects https://frameworks.e18e.dev/methodology/#solidstart

Reduce the diff against what `pnpm create solid` generates for the v2 basic
template, verified by generating the template with create-solid 0.8.1 and
diffing file by file.

- tsconfig `types` back to `["vite/client"]`, and restore `src/global.d.ts`
  with the `@solidjs/start/env` reference. These are equivalent, since
  `@solidjs/start/env` itself references `vite/client`, but the split is what
  the template ships and mirrors the v1 layout.
- Restore the `start` script as `node .output/server/index.mjs`, the template's
  v2 equivalent of the old `vinxi start`.
- Match the template's dependency order (`nitro` last), script order, and
  `vite.config.ts` import order.
- Revert the README edit. The generated template still carries the v1 wording,
  so keeping our copy identical avoids a gratuitous diff.

The app package gets the same tsconfig and `start` script treatment so the two
stay consistent.

Remaining intentional deviations from the template: exact version pins instead
of `^` ranges per CONTRIBUTING, the `lint`/`type-check` scripts, and
`typescript` as a devDependency, which the template omits but which is needed
now that `tsc` no longer arrives transitively via Vinxi.
The generated template README still carries v1 wording: it points at
`app.config.js`, which v2 removed, and describes adding presets to
`devDependencies`, which is not how Nitro presets work.

Updated to reference the `nitro()` plugin in `vite.config.ts` and the `.output`
directory. `npm start` stays accurate now that the `start` script is restored.

This is the one intentional divergence from the generated template. The same
stale text is present in 11 of the 14 `solid-start-v2` templates in
solidjs/templates, so it is worth fixing upstream separately.
@birkskyum

Copy link
Copy Markdown
Contributor Author

Yes, the solid create cli that gives this result following the instructions you posted

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.

3 participants