Add Pracht - #439
Open
JoviDeCroock wants to merge 1 commit into
Open
Conversation
JoviDeCroock
marked this pull request as draft
September 2, 2026 16:31
Adds `starter-pracht` and `app-pracht`, plus the stats-generator wiring (production serve script, in-process SSR request handler, and entries in the ssrRequestThroughput / ssrLoad / clientSideRendered / serverSideRendered registries), a `.github/frameworks.json` entry, and docs-site wiring. Pracht is a Preact meta-framework on Vite (https://github.com/JoviDeCroock/pracht). `starter-pracht` is the output of `pnpm create pracht@latest --no-agent-tools` with the remaining recommended defaults (Node adapter, manifest router, no Tailwind). The generated `Dockerfile` and `.dockerignore` are dropped since no measurement uses them, dependency versions are pinned exact, and the files are formatted with the repository's Prettier config. `app-pracht` mirrors the other `app-*` packages: SSR routes load from `packages/testdata`, the client-side-rendered route uses `render: "spa"` and generates its rows in the browser, and every route keeps the default `hydration: "full"` so it is measured like the other hydrating frameworks.
JoviDeCroock
force-pushed
the
add-pracht
branch
from
September 2, 2026 16:34
225d9c0 to
1d7f71f
Compare
JoviDeCroock
marked this pull request as ready for review
September 2, 2026 17:46
Contributor
|
haven't read through yet but seems like a good addition to have! very interested to see how it compares to the others |
Collaborator
|
Thank you for the PR. I will need some time to review this in detail. I will review each test setup and may have follow-up questions about framework-specific points that need to be added to the methodology. @43081j Do we include this in Focused Frameworks or all. I lean towards all based on popularity? |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds Pracht, a Preact meta-framework built on Vite, as a tracked framework.
Happy to close this if it isn't wanted — CONTRIBUTING asks for an issue first and I skipped straight to code so there'd be something concrete to look at. I'm the author of Pracht, so treat the choices below as "here's what the CLI does", not advocacy.
Note
This PR was co-authored by an agent and reviewed by myself
What's here
packages/starter-pracht/—pnpm create pracht@latestwith the recommended defaultspackages/app-pracht/— the six benchmark routes, mirroring the otherapp-*packagespackages/stats-generator/src/serve/pracht.ts— production serve scriptpackages/stats-generator/src/ssrRequestThroughput/handlers/pracht.ts— in-process request handlerssrRequestThroughput,ssrLoad,clientSideRendered,serverSideRendered.github/frameworks.jsonentry withfocusedFramework: falsecollections.tspackage mapping, methodology setup steps, framework page, README data linksNo
ci-stats.json— CI generates those on the Depot runners.Benchmark app decisions
packages/testdata./client-side-renderedusesrender: "spa"and generates its 1000 rows in the browser with no server round-trip, matching how the Astro and SvelteKit apps do it.hydration: "full", and links use<Link>(Pracht's client-router component). Pracht can opt individual routes out of hydration entirely, which would roughly halve the/ssr-throughputdocument and materially change its numbers — I deliberately did not do that, so it's compared like the other hydrating frameworks rather than like Astro.fullDocumentNavigation: falsein the CWV registries, since Pracht does client-side navigation.intent, on hover/focus) is left on, matching SvelteKit's starter keepingdata-sveltekit-preload-data="hover".Checklist
If updating UI/UX components ensure you have added screenshots or a gif or video of the changes to the PR description
N/A — the only docs-site changes are a logo file, two logo-map entries, a package-name mapping, and Markdown content.
If this is a dependabot PR that bumps a metaframework version, ensure that all package versions in the package match the versions installed by the metaframework version being bumped
N/A — not a dependabot PR.
If this is a dependabot PR that bumps a metaframework version in a
starter-*package, ensure that the deps, and file content matches the output of the metaframeworks recommended starter/default projectN/A — not a dependabot PR. Starter contents are the CLI defaults with the three deviations listed above.