Skip to content

Improve SolidStart benchmark link rendering - #384

Open
brenelz wants to merge 1 commit into
e18e:mainfrom
brenelz:perf/solid-start-native-anchors
Open

Improve SolidStart benchmark link rendering#384
brenelz wants to merge 1 commit into
e18e:mainfrom
brenelz:perf/solid-start-native-anchors

Conversation

@brenelz

@brenelz brenelz commented Aug 9, 2026

Copy link
Copy Markdown

Summary

  • replace Solid Router A components with native anchors in the 1,000-row benchmark tables
  • preserve client-side navigation through Solid Router native anchor delegation
  • remove active-link computations from every benchmark row and allow unused link support to be tree-shaken

Local results

  • linked server-rendered route: 75 to 282 ops/sec
  • peak SSR load: 59.6 to 426.2 requests/sec
  • shared web chunk: 26.20 KB to 19.61 KB raw and 10.11 KB to 7.76 KB gzip
  • latest five-run first paint: 102.0 ms client-rendered and 99.4 ms server-rendered

Local timing output is intentionally excluded from the commit so Depot CI can generate comparable canonical stats.

Verification

  • pnpm build in packages/app-solid-start
  • Prettier checks for changed source files
  • five-run client-side rendered browser benchmark
  • five-run server-side rendered browser benchmark
  • SolidStart SSR load and request-throughput schema validation

Checklist

  • No visual UI change; screenshots are not applicable
  • This is not a dependency update

@AlexanderKaran

Copy link
Copy Markdown
Collaborator

@brenelz So, I 100% agree that using a native a will produce better results; however, so far we have deliberately chosen to use a framework a when one exists, since that is what people would use.

For example, when I use TanStack, I use their native link component and only use an a when linking out of the application.

Let me know what you think. I know this makes it hard, as some don't, i.e Astro and Svelte compile, but this is laid out in the methodology. We could work on making this clearer

@brenelz

brenelz commented Aug 9, 2026

Copy link
Copy Markdown
Author

So I can understand that viewpoint. I think using lowercase anchors are actually the recommended way in Solid these days. We do event delegation so the client side navigation still works. You actually dont lose functionality using lowercase a as far as I know

@AlexanderKaran

AlexanderKaran commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

I will take this to the E18E core team to have a chat about it.

We can drop down to the a link if:

  • The doc recommends not using it
  • There is a plan to deprecate or remove the SolidStart link component
  • Other reasons

@43081j

43081j commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

approving because the change seems sane but don't merge yet as i agree we need to discuss 👍

@AlexanderKaran

Copy link
Copy Markdown
Collaborator

So one of the examples in the SolidStart docs was updated to replace A with the basic and native a tag, see https://github.com/solidjs/templates/blob/main/solid-start-v2/basic/src/app.tsx#L13 (thanks @brenelz)

Leaning towards merging this now rather than later, but two things:

  • Methodology will need updating to mention this
  • @brenelz The SolidStart docs still say to use A, which is what most people and LLMs will refer to. Is there a branch, or even an issue, we could link to in the methodology where the docs are being updated? That way, if we link an issue and it does not get closed or updated, we can revert this later extra

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