Views6

Swappable content surfaces that fill a Layout's region — one per purpose.

DashboardView

Live in /sidebar

Metrics surface — stat cards, charts, and a recent-activity table.

REQUESTS
12,847+14.2%
LATENCY
42ms-3.1%
ERROR RATE
0.12%-0.04%
UPTIME
99.98%+0.01%
Traffic
Top Routes
Recent Requests
EndpointStatusLatencyTime
/api/auth/login20018ms2m ago
/api/users/me20024ms3m ago
/api/data/sync5001.2s5m ago
/api/events/push20145ms8m ago
/api/auth/refresh20012ms12m ago

import { DashboardView } from "@workspace/ui/components/views/dashboard"

Conversation surface — message list, threading, reroll, compose bar.

claude-3.5-sonnetctx: 4,096 tokens
you
14:22

Can you explain how the routing system works in this template?

claude-3.5-sonnet
1/2
14:22
The template uses TanStack Router with file-based routing. Each file in src/routes/ becomes a route automatically.

Layout routes use the _ prefix — they wrap child routes via <Outlet /> without adding a URL segment. For example, _sidebar.tsx provides the sidebar shell for all routes under _sidebar/.

The root layout (__root.tsx) provides the outermost wrapper.
you
14:23

What about data fetching?

claude-3.5-sonnet
14:23
Data fetching uses React Query (@tanstack/react-query). The QueryClient is created in main.tsx and passed through context.

API calls go through typed helpers in lib/api.ts:

const data = await get<MyType>("/endpoint")


In dev, requests to /api/* are intercepted by a Vite plugin and routed to the Hono server in-process — no CORS, no proxy, no separate server process.
you
14:24

Nice. How would I add a new API endpoint?

claude-3.5-sonnet
14:24
Add a route handler in api.ts:

app.get("/api/my-endpoint", (c) => {
  return c.json({ message: "hello" })
})


That's it. The Vite plugin picks it up immediately in dev. In production, server.ts serves the Hono app directly.

import { ChatView } from "@workspace/chat/components/chat-view"

EntityBrowserView

Live in /sidebar

CRUD surface — table + selection + bulk actions + detail panel.

Experiments

6
ExperimentStatusArmsSamplesCreatedActions
Homepage CTA Colorrunning312,8472h ago
Pricing Page Layoutcompleted245,2303d ago
Onboarding Flow v2running48,9205h ago
Search Ranking Modelfailed21,2041d ago
Email Subject Linescompleted567,1001w ago
Checkout Simplificationrunning23,45012h ago

import { EntityBrowserView } from "@workspace/ui/components/views/entity-browser"

List-detail surface — click a row, the detail updates in place.

Deployment succeeded

deploy-bot · 09:41

Categorydeploy
Statusresolved
ID#1

The production build for `web` completed in 42 seconds and is now live. All 214 smoke checks passed; no rollback was required.

import { InboxView } from "@workspace/ui/components/views/inbox"

Spatial editor surface — tool strip, canvas area, properties rail.

canvas area

import { CanvasView } from "@workspace/ui/components/views/canvas"

WorkflowView

Live in /menubar

Node/DAG editor surface — nodes with typed sockets and SVG edges.

6 nodes
HTTP Request
POST /api/ingest
Validate
Schema check
Transform
Normalize fields
Enrich
Add metadata
Write DB
SurrealDB upsert
Notify
WebSocket push

import { WorkflowView } from "@workspace/ui/components/views/workflow"