Playground
Four tools that came with the app, and one that a coding agent uses.
A table, a form and a button for every action on every resource, built out of the
resources themselves. None of it is written by hand: the whole of the wiring is one
admin do show? true end
block per domain. It edits the users and the tokens as readily as the posts, and it does
not stop to ask a policy, so the door checks admin?
instead. Sign in as admin@example.com
to open it.
/playground/storybook
Every component in AshDemoWeb.UI, every variant and every size, rendered
with the app's own stylesheet. The catalog cannot drift from the theme, because it is
drawing the same components the pages draw.
/playground/dashboard
The BEAM underneath: processes, memory, sockets, and this app's own request and database metrics. Open the board in a second tab and watch a process appear per visitor.
/playground/oban
Oban's own page, over the same Postgres the posts live in. Give a card a publish time and its job shows up here within the minute, runs, and moves the card on every board that is open.
Why these links reload the page
Every app page lives in one live_session, so a link between any two of
them is a message on a websocket that is already open. Each tool above opens a session
of its own, and nothing can navigate across that boundary. These five links are the
only ones in the app that ask the browser for a new document.