Pre-release of Wisp, a fast, fun web framework for Rust. The real release will be on GitHub. https://wispweb.dev
  • JavaScript 29.4%
  • CSS 28.4%
  • Rust 21.8%
  • wisp 18.8%
  • Python 1.3%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-19 22:01:39 -04:00
.cursor/rules api-requests: Value accessors, as_f64 None for non-finite 2026-10-05 07:54:18 -04:00
.github api-requests: Value accessors, as_f64 None for non-finite 2026-10-05 07:54:18 -04:00
.wisp/fonts fonts: OFL.txt beside the fonts, subsets keep name IDs 0/13/14 and are rewritten only when their code points change, metrics files (.wisp/fonts) give the fallback face size-adjust so faces swap without shift; fonts test skips a stale dist; search shortcut in the layout (no inline stub); docs: sheet as a late link, client:load deferred, fold trade-off 2026-10-09 11:19:25 -04:00
build Merge main into finalbench (benchmarks: main's prose kept outside the re-measured sections) 2026-10-19 00:00:44 -04:00
examples Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00
fonts-src fonts: OFL.txt beside the fonts, subsets keep name IDs 0/13/14 and are rewritten only when their code points change, metrics files (.wisp/fonts) give the fallback face size-adjust so faces swap without shift; fonts test skips a stale dist; search shortcut in the layout (no inline stub); docs: sheet as a late link, client:load deferred, fold trade-off 2026-10-09 11:19:25 -04:00
playground Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00
src Hero shows the pre-release install command, wrapped on narrow screens 2026-10-19 22:01:39 -04:00
static Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00
tests Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00
tools fonts: OFL.txt beside the fonts, subsets keep name IDs 0/13/14 and are rewritten only when their code points change, metrics files (.wisp/fonts) give the fallback face size-adjust so faces swap without shift; fonts test skips a stale dist; search shortcut in the layout (no inline stub); docs: sheet as a late link, client:load deferred, fold trade-off 2026-10-09 11:19:25 -04:00
.gitignore untrack .wrangler cache and a stray .claude worktree gitlink; ignore them 2026-10-17 03:14:18 -04:00
AGENTS.md Forgejo home is code.wispweb.dev/wispdev 2026-10-19 21:28:07 -04:00
build.rs Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00
Cargo.lock Home speed and token tables come from the Wisp repo's results.json at build time; shorter home copy; Hono (Bun) named as not TechEmpower source 2026-10-05 16:25:46 -04:00
Cargo.toml examples: at /examples/, a preview beside the read-only code (the example's wasm in a service worker), line numbers and wrap, file icons, How It Works notes 2026-10-08 21:55:52 -04:00
CLAUDE.md api-requests: Value accessors, as_f64 None for non-finite 2026-10-05 07:54:18 -04:00
LICENSE Speed pages: all contenders from data, no invalid runs, rank tables pending; license footer, LICENSE and Cargo metadata say Wyzie LLC 2026-10-05 12:51:52 -04:00
PRODUCT.md Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00
README.md Rewrite docs prose in Simplified Technical English 2026-10-18 17:58:01 -04:00

Wisp docs

The documentation and launch site for Wisp, a fast, fun web framework for Rust. It is a Wisp app: the launch page is src/routes/+page.md, and every docs page is src/routes/docs/<slug>/+page.md. Canonical address: https://wispweb.dev.

Layout

src/routes/+page.md              the launch page (components in src/components)
src/routes/+layout.wisp          header, footer, meta and Open Graph tags
src/routes/docs/+layout.wisp     sidebar, filter, table of contents, previous and next
src/routes/docs/+page.md         Getting started (/docs)
src/routes/docs/<slug>/+page.md  one docs page each
src/css/*.css                    all the styling, joined in name order (light and dark follow the system)
build.rs                         joins src/css into .wisp/app.css, writes static/search-index.json and the
                                 docs and blog heading tables, then runs the Wisp build
static/                          favicon, og.png, fonts

A docs page starts with front matter:

---
title: Deploying
description: One line for the search results and the link card.
group: Deploy and run
order: 60
---

order sorts the sidebar and the previous and next links. group is the sidebar heading (pages next to each other with the same group share it). The build highlights fenced code, and app.css colors the hl-* classes. Wisp makes /sitemap.xml and /robots.txt.

Edit and build

You need Rust and the wisp CLI. The app depends on the Wisp crates by path, so keep the two repositories side by side:

projects/
  wisp/        git clone https://github.com/wyziedevs/wisp
  wisp-docs/   this repository
cargo install --path ../wisp/crates/wisp-cli   # once, and after Wisp changes
wisp dev                                       # http://127.0.0.1:3000, reloads on save
wisp check                                     # templates, routes, accessibility lints
SITE_URL=https://wispweb.dev wisp build --static   # the site, as plain files, in dist/

Serve dist/ from any static host. SITE_URL makes the sitemap and the feed absolute.

Deploy

You deploy the site by hand from a checkout, with the Cloudflare login that wrangler already has. From this folder:

git pull
export SITE_URL=https://wispweb.dev
wisp build --static
npx wrangler@4 pages deploy dist --project-name wisp-docs --branch main

The Pages project is wisp-docs, with the custom domain wispweb.dev (a CNAME to wisp-docs.pages.dev). A Cloudflare Redirect Rule redirects the old name wisp.wyzie.io (hostname equals wisp.wyzie.io, dynamic redirect to concat("https://wispweb.dev", http.request.uri.path), status 301, preserve the query string). The canonical <link> and the Open Graph tags already say https://wispweb.dev.

License

MIT. Made by Wyzie LLC for the community.