-
-
Notifications
You must be signed in to change notification settings - Fork 323
feat: first draft of tanstack-start-solid-v2 #817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
brenelz
wants to merge
27
commits into
TanStack:main
Choose a base branch
from
brenelz:tanstack-start-solid-v2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+78
−2
Open
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
6fd0965
feat: first draft of tanstack-start-solid-v2
brenelz 1237e8d
vite-plugin-solid devDependencies
birkskyum be12f5f
vite-plugin-solid pnpm
birkskyum ed69cec
author list
birkskyum c8ac5db
add note on solid-query
birkskyum 712f36f
spaces
birkskyum f0c575f
@tanstack/solid-router-ssr-query
birkskyum ad57c15
use package manager comp
birkskyum 8c513a5
adjust ranges
birkskyum 7334bec
grammar
birkskyum 91abc48
elaborate on solid v2 highligts
birkskyum 13ac2b4
bump pre-release and add devtools
birkskyum 17f9ff5
revert list
birkskyum 6c3343a
add header
birkskyum 2bfc9f0
query
birkskyum b1931cf
9th
birkskyum 196e5b8
fix package manager tabs for single-framework posts
brenelz 1cfe831
2026-04-10
birkskyum e360bd9
polish
birkskyum c4c97eb
lands
birkskyum 169f020
support
birkskyum ddc7755
solid v2 beta
birkskyum 8ef9a95
excerpt
birkskyum 6c4399d
Solid 2.0 Beta Support in TanStack Router, Start, and Query
birkskyum 4584e94
excited
birkskyum 6c79e49
lockstep
birkskyum fe153a2
tweaks
birkskyum File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| --- | ||
| title: 'Solid 2.0 Beta Support in TanStack Router, Start, and Query' | ||
| published: 2026-04-10 | ||
| excerpt: TanStack Router, Start, and Query now support the Solid 2.0 beta, so you can try Solid's next major release in real applications today. | ||
| authors: | ||
| - Brenley Dueck | ||
| - Birk Skyum | ||
| --- | ||
|
|
||
|  | ||
|
|
||
| Today we're excited to announce Solid 2.0 beta support in TanStack Router, Start, and Query! | ||
|
|
||
| Solid 2.0 introduces major changes to async rendering, derived state, and SSR. We wanted to make sure you could try those changes in real applications right away, not just isolated demos. If you're evaluating Solid 2.0 and want routing, server rendering, and data fetching ready to go, you can start today. | ||
|
|
||
| ## Get Started Today | ||
|
|
||
| You can get started in one of two ways: | ||
|
|
||
| - Start from one of our [Solid examples](https://github.com/TanStack/router/tree/solid-router-v2-pre/examples/solid) | ||
| - Upgrade an existing TanStack Router or TanStack Start app using the beta versions below | ||
|
|
||
| If you're upgrading an existing app, update these dependencies first: | ||
|
|
||
| <!-- ::start:tabs variant="package-manager" mode="install" --> | ||
|
|
||
| solid: @tanstack/solid-router@^2.0.0-beta.11 @tanstack/solid-start@^2.0.0-beta.12 @tanstack/solid-router-devtools@^2.0.0-beta.8 solid-js@^2.0.0-beta.5 @solidjs/web@^2.0.0-beta.5 | ||
|
|
||
| <!-- ::end:tabs --> | ||
|
|
||
| <!-- ::start:tabs variant="package-manager" mode="dev-install" --> | ||
|
|
||
| solid: vite-plugin-solid@^3.0.0-next.4 | ||
|
|
||
| <!-- ::end:tabs --> | ||
|
|
||
| If you use TanStack Query, also add: | ||
|
|
||
| <!-- ::start:tabs variant="package-manager" mode="install" --> | ||
|
|
||
| solid: @tanstack/solid-query@^6.0.0-beta.3 @tanstack/solid-query-devtools@^6.0.0-beta.3 @tanstack/solid-router-ssr-query@^2.0.0-beta.12 | ||
|
|
||
| <!-- ::end:tabs --> | ||
|
|
||
| The TanStack APIs are mostly unchanged. The main breaking changes come from Solid 2.0 itself, so if you're upgrading an existing Solid app, read the official [Solid 2.0 migration guide](https://github.com/solidjs/solid/blob/next/documentation/solid-2.0/MIGRATION.md). | ||
|
|
||
| ## Why This Matters | ||
|
|
||
| Solid 2.0 is more than a version bump. It opens up patterns that were awkward or impossible to express cleanly before, especially around async behavior, derived state, and SSR. | ||
|
|
||
| That matters most in larger applications, where routing, loading states, and server rendering carry real weight. TanStack Router and TanStack Start are a natural fit there, and we wanted Solid users to be able to explore the new release now instead of waiting for app-level tooling to catch up. | ||
|
|
||
| Some of the highlights in Solid 2.0 include: | ||
|
|
||
| - Fine-grained non-nullable async | ||
| - Mutable derivations | ||
| - Derived signals | ||
| - Pull-based run-once SSR | ||
| - Pending UI as an expression | ||
|
|
||
| If you want to dig deeper into the release itself, check out the [Solid 2.0 beta discussion](https://github.com/solidjs/solid/discussions/2596) and the [Road to 2.0 discussion](https://github.com/solidjs/solid/discussions/2425). | ||
|
|
||
| ## Still Early — We Want Your Feedback | ||
|
|
||
| This support is intentionally early. We'd rather put Solid 2.0 support in your hands while the beta is still evolving than wait until every edge case is polished. | ||
|
|
||
| We plan to track Solid core closely from beta to RC to stable, so TanStack Router, Start, and Query stay aligned throughout the 2.0 rollout. | ||
|
|
||
| If you try TanStack Router, Start, or Query with Solid 2.0 beta, tell us what works, what feels rough, and where the integration breaks down. That feedback will help us tighten things up quickly. | ||
|
|
||
| [Join the Discord](https://tlinz.com/discord) and tell us what worked, what felt rough, and what you'd like to see next. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fallback is skipped when the requested framework exists but has zero package groups.
At Line 59,
packagesByFramework[normalizedFramework]can be[](truthy), so the fallback is never used; then Line 63 returnsnull. That contradicts the fallback intent in Line 62.Proposed fix
const fallbackFramework = Object.keys(packagesByFramework).find( (framework) => packagesByFramework[framework]?.length, ) - const packageGroups = - packagesByFramework[normalizedFramework] || - (fallbackFramework ? packagesByFramework[fallbackFramework] : undefined) + const requestedPackageGroups = packagesByFramework[normalizedFramework] + const packageGroups = + requestedPackageGroups && requestedPackageGroups.length > 0 + ? requestedPackageGroups + : fallbackFramework + ? packagesByFramework[fallbackFramework] + : undefined📝 Committable suggestion
🤖 Prompt for AI Agents