Examples
Eight runnable apps in the repository, each isolating one part of the framework. Every one is a real pracht project you can clone, build, and deploy.
The examples live under examples/
in the repository. They are part of the workspace, so they build against the
framework in the same run you do and cannot drift into stale sample code. Six of
them — basic, cloudflare, islands, pages-router, static, and tsrx —
are also driven by the e2e suite;
showcase and docs are covered by their own builds rather than by e2e specs.
git clone https://github.com/JoviDeCroock/pracht
cd pracht && pnpm install && pnpm build
pnpm --filter @pracht/example-basic devStart Here
basic
The reference app. All four render modes, loaders, API routes, auth middleware,
capabilities, and forms — sized to read in one sitting. It also builds for four
adapters from one source tree: set PRACHT_ADAPTER=vercel, cloudflare, or
netlify before building to see what each target emits.
Read it alongside Routing and Data Loading.
showcase
Launchpad — a fictional project-management tool built to demonstrate the whole
capability graph and agent trust
layer in one app. Six operations are defined once and projected to the browser,
to progressively-enhanced forms, to in-page WebMCP agents, to signed remote
callers, and to MCP tools at /mcp — behind one set of policies. Deploys to
Vercel.
This is the example to read if you are evaluating the agentic surface.
One Feature Each
islands
Partial hydration: an SSG page with a Counter island using the default load
strategy, next to a server component whose onClick never hydrates. The
clearest way to see what hydration: "islands" actually ships.
pages-router
File-based routing with no manifest — routes derived from src/pages/, API
routes in src/api/. The runnable counterpart to
Pages Router, including the
_app.tsx shell convention. Builds for Node, Cloudflare, and Vercel.
static
A pure static export: SSG routes with build-time loaders, a
dynamic SSG route driven by getStaticPaths(), loaderless SPA routes including
one that relies on the 200.html fallback, and a loader-backed notFound page
emitted as 404.html whose data survives fallback rendering. Every static-host
edge case in one project.
cloudflare
Wired to the Cloudflare Workers target end to end — wrangler.jsonc, bindings
in the context factory, and Cache API-backed ISG. See
Deployment.
tsrx
.tsrx route modules — TSRX/Ripple-flavoured Preact — running beside ordinary
.tsx routes, via the plugin's
additionalExtensions option. Proof
that route discovery is not tied to one compiler.
This Site
docs
The site you are reading. Every page is a Markdown file compiled by a
content collection into a real route, prerendered with SSG, and
deployed to Cloudflare. It also generates llms.txt, a sitemap,
and the agent-skills discovery index at build time.
The best example of @pracht/content and @pracht/markdown in anger — and a
useful thing to read before writing a docs site of your own.