> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openhome.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Companion Dashboards

> Pair your OpenHome Ability with a live web dashboard built on Replit.

Ambient AI deserves a screen. Companion dashboards are front-ends that render what your Ability sees — life logs, meeting summaries, sensor feeds, smart-home state.

## The architecture in one sentence

Your Ability fires HTTP POSTs to a Flask server you host on Replit, which keeps the latest state in memory and serves it to a polling frontend.

```
OpenHome Ability   ──POST──▶   Replit Flask server  ◀──poll──   Browser dashboard
    (Python)                    (in-memory store)               (HTML + JS)
```

## Pipeline in under 20 minutes

<Steps>
  <Step title="Decide what the Ability observes">
    One thing — a room's emotional tone, meeting takeaways, sensor readings. Resist adding more up front.
  </Step>

  <Step title="Scaffold the Ability in Live Editor">
    Start from a template. Stub a main loop that prints what it sees.
  </Step>

  <Step title="Spin up a Replit">
    Blank Python Repl. Flask server. One POST endpoint that echoes to the console. Copy the public URL.
  </Step>

  <Step title="Wire them">
    Paste the URL into the Ability as `DASHBOARD_URL`. Add a fire-and-forget POST helper. Call from the main loop.
  </Step>

  <Step title="Prove the pipe">
    Run both sides. Watch the packets land in both logs.
  </Step>

  <Step title="Build the frontend">
    Once the pipe is proven, build the UI. The backend should never change again.
  </Step>
</Steps>

For the deep dive on rules, patterns, and snippets, see [Build a Companion Dashboard](/guides/best-practices/companion-dashboard).
