Why this exists
The official s&box documentation at sbox.game/dev/doc is built with Blazor Server — a framework that renders everything on the server and streams UI updates to the browser over a WebSocket connection.
This means:
- Every page is fully client-side rendered. The initial HTML is empty. Nothing loads until the SignalR WebSocket connects and the server pushes the content.
- It frequently gets stuck on "Reconnecting..." If the WebSocket drops (bad network, server hiccup, tab in background too long), you're stuck staring at a reconnection spinner. This is not normal web behavior.
- You can't bookmark or share deep links reliably. The Blazor router sometimes fails to restore state after a refresh.
- Search engines can't index it. Crawlers see an empty page because there's no server-side HTML.
- It's slow. Every navigation requires a round-trip to the server. On high latency connections, it's painful.
What we did about it
We scraped all 100+ guide pages and 1,827 API types from the official site and built a fully static site using Astro.
- Every page is pre-rendered HTML. No WebSocket, no server dependency, no reconnection spinners. Just HTML files served from a CDN.
- Hosted on GitHub Pages. Free, fast, globally distributed. The site loads instantly.
- Full-text search powered by Pagefind — a tiny WASM-based search engine that runs entirely in your browser.
- SEO-friendly. Every page has proper meta tags, a sitemap, and structured data. Search engines can actually find and index the content.
- Editable. The guides are plain markdown files in the GitHub repo. Anyone can submit a fix or improvement via a pull request.
- Daily auto-updates. A GitHub Action rebuilds the API reference daily from the latest s&box release data.
No surprises
A documentation site should be the most boring, reliable part of a developer's workflow. You open it, you find what you need, you close it. It should never show you a loading spinner, never drop your connection, never serve you an empty page.
That's what this site aims to be. Fast, static, and predictable.