Decision Queue
Operations List + Detail Workspace
Keep the queue, selected record, risk or policy context, decision form, and audit history visible together. Stack the selected record after the queue at 390 px.
Application recipes
Four server-rendered recipes show how Goshtoso components become durable application structure. Each recipe separates reusable UI from the routing, policy, queries, and domain state that belong to your app.
01
Give every task a stable place to start.
Production workspace
Monitor the release train and respond to active changes.
payments-api
Updated moments ago
identity-worker
Updated moments ago
docs-site
Updated moments ago
Repeated page chrome drifts quickly. The shell must own global navigation, responsive positioning, identity, and page framing while each route supplies only its task content.
Keep the navbar and page title. Replace the persistent sidebar with the Navbar mobile menu or Sidebar Overlay. Stack page actions below identity and preserve one page scrollbar.
Hold the navbar at the top, reserve a stable sidebar column, and let the task region grow. Secondary context may use a right rail when it does not compete with the primary task.
components/navbar -> global navigation and account actions
components/sidebar -> desktop navigation and mobile overlay
components/button -> shell-level primary action
components/badge -> environment and health signals
app/ui/shell.templ -> responsive composition and landmarks
app/navigation.go -> routes, labels, permissions, active state02
Help operators scan, narrow, select, and act without losing context.
Release control
Three changes need review before the next window closes.
| Service | Release | Environment | Status | Owner | Actions | |
|---|---|---|---|---|---|---|
payments-api Critical path | v2.18.0 | Production | Awaiting approval | Lena Ortiz | ||
identity-worker Background service | v4.3.1 | Production | Deploying | Maya Chen | ||
docs-site Public edge | v1.42.2 | Staging | Ready | Sam Rivera |
Showing 3 of 18 deployments. Selection remains stable while filters update from the server.
Operational lists fail when filters, selection, status, and row actions are designed separately. Compose them as one server-backed task with explicit query and selection ownership.
Stack the title, count, and primary action. Put filters in a single column, keep the table horizontally scrollable, and preserve the identifying column before secondary metadata.
Keep the toolbar on one scan line when labels fit. Use the full width for the table, align status and actions predictably, and paginate in the same content region.
components/table -> row structure, selection, sorting, pagination
components/textinput -> search query
components/select -> bounded filters
components/badge -> row status
components/button -> create, row, and bulk actions
app/deployments/query.go -> filter parsing and result counts
app/deployments/list.templ -> toolbar, columns, empty and error states03
Keep identity, status, actions, and deeper context in one navigable workspace.
Production rollout with a guarded database migration and automatic rollback threshold.
The migration changes a production table. Review the rollback signal before approving.
Twelve reviewed changes are included in this release.
A detail route must answer what this is, what state it is in, what can happen next, and where deeper evidence lives without forcing users through separate pages.
Wrap breadcrumbs, stack actions below the title, keep tabs horizontally scrollable, and move the context rail below the active panel.
Keep identity and actions on one header line when possible. Reserve the main column for tab content and a narrow rail for stable metadata, never for a competing task.
components/breadcrumbs -> parent hierarchy
components/tabs -> detail views and keyboard navigation
components/badge -> lifecycle state
components/alert -> decision-critical context
components/button -> resource actions
app/releases/detail.go -> resource query, permissions, transitions
app/releases/detail.templ -> header, tab panels, context rail04
Make progress, validation, review, and recovery explicit.
Long forms hide progress and make recovery expensive. A workflow should expose the current step, validate on the server, preserve safe draft data, and present a final review before commitment.
Use a compact vertical progress summary before the active form. Stack fields and actions, keep Back before Continue in reading order, and avoid a second internal scroller.
Use a narrow progress rail and a focused form column. Keep helper text close to fields and place actions at the form boundary, not at the viewport edge.
components/steps -> progress and current-step semantics
components/textinput -> typed fields and validation
components/select -> constrained choices
components/checkbox -> optional policy choice
components/alert -> draft and submission feedback
components/button -> workflow navigation
app/workflow/state.go -> step graph, draft, validation, idempotency
app/workflow/page.templ -> step form, review, success and recoveryField-proven extensions
Three blind consumer builds pushed the four base recipes into finance, warehouse, and editorial work. Reuse the decision structure; keep the domain voice.
Operations List + Detail Workspace
Keep the queue, selected record, risk or policy context, decision form, and audit history visible together. Stack the selected record after the queue at 390 px.
Multi-step Workflow + bounded draft
Default the common case, edit exceptions only, review exact changes, preserve a short-lived draft, and make retries idempotent. Sticky actions must not cover focused fields.
Queue + reading surface + decision rail
Let typography and rhythm belong to the publication. Keep author, deadline, channel, status, and handoff note next to the decision instead of converting prose into dashboard cards.
No docs found.
Goshtoso can store preferences and demo state in your browser. Some examples use cookies and IndexedDB to persist local demo state. There is no analytics, advertising, or third-party tracking. You can use the site without storage, but preferences and some examples will reset or stop persisting. Details in our Privacy Policy.