Customizing River

Custom Views

A Custom View is a UI surface generated on demand by River AI. Ask SpaceChat for a dashboard, a tracker, a kanban board, a chart, or any other way to see and interact with your data — and have it built right there in front of you, using your real entities.

This is one of the most distinctive things about River. Most software gives you the views the developers thought to ship. River lets you describe the view you want, and assembles it.

What you can ask for#

Some examples that work well:

"Build me a dashboard of my startup's social media performance — followers, posts per week, engagement, top performing posts."

"Make a board of all my sales pipeline deals grouped by stage with each card showing the contact, ARR, and next step."

"Give me a calendar view of upcoming customer renewal dates, color-coded by ARR tier."

"Create a single page that shows everything about Hyperline — recent emails, open tasks, the contract, the deal."

"Build me a tracker for my private medical practice's patient intake — name, last visit, balance, next appointment."

In each case, River AI:

  1. Figures out which entities and integrations are relevant
  2. Pulls the data live from your Dataspace
  3. Generates a UI optimized for that specific view (tables, cards, charts, layouts)
  4. Wires it up so the data stays live as you work

Custom Views vs. Custom Apps#

Both are AI-built UI surfaces. The difference is scope and persistence.

Custom View Custom App
Scope A single surface (one dashboard, one tracker) A complete app with multiple views and its own entity types
Built in Seconds, inline in SpaceChat Minutes, in App Builder
Lifespan Saved to your workspace as a View entity A real installable App with publishing
Data Reads existing entities Defines its own entity types if needed
Best for "I want to see X" "I want to manage X over time"

Start with a Custom View. Promote to a Custom App if you find yourself returning to it daily and want it as a persistent surface in your dock.

→ See Custom Apps to take the next step.

How they're built#

Under the hood, a Custom View is a small React component generated by the AI from your description. It's compiled in the browser, runs in a sandboxed iframe, and reads your entities through the same entity_read and search tools the AI uses everywhere else.

Because the View is just code with structured access to your entities, it can:

  • Show live counts that update as data changes
  • Render charts (line, bar, pie, sankey, anything reasonable)
  • Embed editable controls (a sortable table; a drag-and-drop kanban)
  • Cross-reference entities (click a card → open the underlying entity in a Window)

The result feels like a custom-built tool. It is one — except it took 20 seconds instead of a sprint.

Saving and sharing#

After the AI builds a View you like, you can:

  • Save it — it becomes a View entity in your tree, openable any time
  • Pin it to a Space — make it part of your daily workspace
  • Share it with teammates in the same Dataspace
  • Promote it to a Custom App — if it's earning daily use

You can also iterate: "make the chart a line chart instead", "group by quarter", "add a column for last contact." The AI rebuilds the View with your changes.

When the AI needs more data#

Sometimes the View you describe needs data the AI doesn't have yet. Example:

"Build me a dashboard of bank transactions categorized by vendor."

If Plaid isn't connected, the AI says so:

"I can build that. To show transactions, I'll need access to your bank data via Plaid. Connect it and I'll have the dashboard ready."

This is the same pattern as everywhere in River: the AI proposes; you confirm; the system extends.

Patterns worth stealing#

  • The "everything about X" page — one View per major customer, prospect, project, or person. Renders all related entities (mail, tasks, docs, calls) on one canvas.
  • The morning dashboard — pinned to your default Space; surfaces the three numbers and three threads that matter today.
  • The investor update generator — a View with a "Refresh" button that pulls Stripe ARR, top-of-funnel metrics, and recent wins from your Dataspace.
  • The retro board — generated end-of-week from project activity, ready for your team to fill in.

Tips#

  • Describe the view as if you were briefing a designer: what data, how arranged, why useful. Clearer briefs produce better Views.
  • If the View misses on the first try, iterate by describing one specific change at a time.
  • Custom Views are cheap. Make a new one any time you find yourself wanting a new lens — don't try to make one View do five things.