Playground Guide
The playground is the evaluator-first surface. It runs entirely in your browser, fetches public GitHub data without auth, and explains what SideshowDB would do with that data.
This page describes what is and is not in scope, how to drive it, and how the UI maps onto SideshowDB concepts.
What the Playground Does
- Validates the user's
owner/repoinput before any network call. - Fetches public GitHub data directly from the browser.
- Renders a focused explorer of the repository's refs.
- Renders a SideshowDB interpretation panel that explains what those refs would look like as a projection.
What the Playground Does Not Do
The first release is intentionally narrow:
- Public repos only. No auth, no private data.
- Read-only. No write-back to GitHub or to a local SideshowDB store.
- Limited views. A small number of focused inspection modes; not a generic Git object browser.
Recommended Path
- Open Playground .
- Click the curated sample (
sideshowdb/sideshowdboroctocat/Hello-World) to see the happy path first. - Once the sample renders, type your own
owner/repoto compare.
Input Rules
The repo input is parsed by parseRepoInput before any fetch. Surrounding whitespace is trimmed. Anything that is
not exactly two non-empty /-separated segments is rejected with a
specific validation error.
Examples:
| Input | Result |
|---|---|
sideshowdb/sideshowdb | accepted |
octocat/Hello-World (with surrounding whitespace) | accepted (trimmed) |
octocat | rejected — needs owner/repo |
a/b/c | rejected — too many segments |
| empty string | rejected — needs owner/repo |
Failure Modes
The playground maps known HTTP failures to plain-language messages:
| HTTP status | Meaning | What you'll see |
|---|---|---|
| 404 | repo missing or invisible | "not found" + sample-repo fallback |
| 403 | rate limit or access denied | "rate or access" message + retry guidance |
| anything else | unknown failure | generic load-failed message + sample-repo fallback |
How the UI Maps to SideshowDB
| UI panel | SideshowDB concept | Reference |
|---|---|---|
| Source-data view (refs list) | Raw RefStore source | storage.RefStore |
| Projection panel | Derived DocumentStore view | document.DocumentStore |
| Sample-repo fallback | Curated entry point so the blank-page case never happens | — |
For an end-to-end mapping of GitHub data to SideshowDB concepts, see the Projection Walkthrough .