Foundations

Build Anything — Views, Dashboards, Custom Apps

Most software gives you the views and apps the developers thought to ship. River lets you describe the view or app you want, and assembles it on the spot — using your real data, integrated with the rest of your workspace.

This is one of the most distinctive things about River, and it deserves its own conceptual frame.

The shift in mindset#

For 40 years, the contract with software has been: we wrote the views, you use them. If your workflow doesn't fit the views the vendor shipped, you build a spreadsheet, hire a developer, or live with the friction.

In River, the contract flips: describe the view, the system builds it. And because every entity in your Dataspace is structured and addressable, the AI has the substrate it needs to actually build what you described — not just a mockup.

Two surfaces, one continuum#

Custom-built UI in River shows up in two forms:

Custom Views — the on-the-fly version#

Open SpaceChat and ask for something:

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

Within seconds, a working dashboard appears, pulling live from your connected accounts. You can save it, pin it to a Space, share it with teammates. If it's wrong, iterate: "add a chart of weekly engagement", "group by channel."

A Custom View is a single surface — one dashboard, one tracker, one interactive page. It's saved as a View entity in your tree.

→ See Custom Views.

Custom Apps — the persistent version#

When something deserves more than a single view — its own entity types, multiple screens, ongoing data, a place in your daily routine — promote it to a Custom App.

"Build me a private medical practice manager. Patients have a name, DOB, balance, last visit, and contact info. Appointments belong to patients. I need a list view, a calendar, and a single-patient detail page."

The AI:

  1. Defines the entity types (Patient, Appointment)
  2. Generates the React UI (list, detail, calendar)
  3. Wires up data access through the entity system
  4. Registers the App so it appears in your dock

You now have a domain-specific app — yours alone, multiplayer, AI-native, sharing your Dataspace with everything else.

→ See Custom Apps.

Why this works in River#

This pattern is only possible because the rest of River exists. Specifically:

  • The entity system gives the AI a structured substrate. It's not generating UI against nothing — it's generating UI against your real, typed, queryable data.
  • The Senses layer means data is already flowing in. The AI doesn't need to build ingestion; it just queries what's already there.
  • The intelligence layer means the AI knows your work, not just the schema. It can build a meaningful dashboard, not just a generic one.
  • Multiplayer + permissions mean any custom thing it builds inherits sharing, real-time co-editing, and ACLs without extra work.

This is the OS-level dividend. In a normal stack, building a custom dashboard means hiring an engineer or fighting a no-code tool. In River, it's a sentence and a few seconds.

Examples worth stealing#

Things people have actually built:

  • A patient management app for a private medical practice
  • A property tracker for a real-estate investor
  • A vehicle fleet manager for a small business
  • A creator-economy fan-club app with Stripe integration
  • A "everything about Hyperline" page that pulls mail, tasks, contracts, and the deal record onto one canvas
  • A morning dashboard with three numbers and three threads, regenerated each day
  • A research repository with papers, claims, and contradictions, AI-synthesized
  • A retro board generated end-of-week from project activity

If you've ever thought "I wish there was a SaaS app for this", that's the exact prompt to type into SpaceChat.

The promotion ladder#

Most things start as ad-hoc and grow. The natural ladder:

  1. SpaceChat conversation — "show me X"
  2. Custom View — saved, pinned, refreshable
  3. Custom App — own entity types, multi-screen, persistent
  4. Published App — shared with team, or to the public catalog

Don't skip levels. Each one is cheap to reach; each one pays for the one before.

What about no-code tools?#

You may have used Airtable, Notion, Bubble, Glide, Retool, and others. They're great. The thing River does that they don't:

  • Custom Views and Custom Apps run inside the same workspace as your mail, your tasks, your docs, and your AI.
  • They reason over your real entity tree, not a separate database you have to populate.
  • They inherit multiplayer, permissions, and AI access without configuration.
  • They're built by describing them to AI, not by clicking around builders.

It's not "build a separate app and connect it". It's "extend your OS."

When this stops working#

The AI is good but not infallible. For things that need:

  • Pixel-perfect design (use Figma + an engineer)
  • Heavy specialized backend logic (write code in App Builder)
  • Real-time external integrations not in River's catalog (build a custom integration)

…you'll want to write code yourself. App Builder supports that — full IDE, real npm packages, hot reload. The AI is a pair-programmer, not the only programmer.

Tips#

  • Describe Views and Apps the way you'd brief a designer: what data, how arranged, why useful. The clearer the brief, the better the result.
  • Iterate by changing one thing at a time. "Make the chart a line chart" beats "redo this whole thing."
  • Don't try to make one View do five things. Make five Views.
  • When a View earns daily use, promote it to a pinned Space surface or a Custom App.