0accounts required
The Playground
Slatesource has a page where every chip type is unlocked and nothing is saved. No signup wall, no trial, no email capture. You open it, you build something, you close the tab and it is gone. It exists because reading a feature list is a poor substitute for dragging a chip onto a grid and seeing what it does.
What You Get
Three sample Info chips and an edit button. Click the button and the grid switches into edit mode, with a plus placeholder in every empty slot. Every published chip type is in the picker, including the ones that are normally paid items in the shop. The one exclusion is unreleased chips, which stay hidden even here.
const getAccessibleChipTypes = (): Set<string> | undefined => {
if (overrideRestrictions) return undefined;
if (!chips || !activeUser) return new Set();
That Is the Whole Unlock
The chip picker normally filters against the chip types the logged-in user owns. Returning undefined instead of a set means skip the filter entirely. Returning an empty set, which is what a logged-out visitor would otherwise get, means show nothing at all. The Playground is the only place in the codebase that passes overrideRestrictions.
The link on this page goes to a route registered as a plain sibling of login and register. No auth guard, no loader, no data fetched on entry.
There Is No Backend
This is the part worth being straight about. The Playground is one React screen holding a single array in component state. No localStorage, no sessionStorage, no IndexedDB, no API call anywhere in the screen. A refresh is a full reset, and the sample copy says so in the first chip rather than letting anyone find out the hard way.
The Module Named Sandbox Is Something Else
The backend has a package called sandbox. It is not this. It seeds development data on startup: users, chips, shop items, registration tickets, with a seeder file per developer. It has no controllers and no endpoints. Anyone reading the repo looking for the Playground's server side will find that package, and then find nothing behind it, because there is nothing behind it.
What the Playground has and does not
Every published chip type in the picker
Edit mode, add, update, delete
Deep link with a query flag that opens straight into edit mode
Saving
Exporting to a real slate
A reset button
Sharing what you made
The Missing Path Out
The gap that matters most is the fourth unticked box. Someone builds a page they like in the Playground and there is no button that turns it into a slate on their account. They have to start again inside the editor. It is the obvious next step and it has not been built.
Image Chips Will Fail Here
Chips that carry an uploaded image post to the file endpoint, which permits anonymous reads but not anonymous writes. An anonymous Playground visitor adding a chip with a background image gets a generic upload error. Nothing in the Playground warns them first. It is a real rough edge, not a subtle one.
Chip types in the picker
all published
Login required
no
Persistence
none
Backend endpoints
0
Lines in the screen component
207
Also Not Indexed
The route sits in the no-index list for server-rendered metadata. A scratch surface with no stable content has nothing to offer a search engine, and every crawl of it would be a crawl of the same three placeholder chips.
Why It Renders Correctly
The Playground does not have its own renderer. It mounts the same chip rendering engine the real slate viewer uses, wrapped in the same two providers as the editor. What you see there is what a published page looks like, which is also why this page is a fair preview of it: the chips below you and the chips in the Playground come from the same components.
"The fastest way to explain a chip is to let someone place one.
"

