# Build applications on the Vifu Agent Runtime

Vifu stays focused on Agent identity, access, provider connections, runtime
state, and traces. Applications add their own content model and product
workflow through an embedded Rust plugin or a runtime service plugin.

The examples in this section document one complete implementation: **Vifu
Content Runtime**. It adds interactive-story authoring, content releases, and
playable sessions while reusing the Vifu project, Agent, provider, and trace
contracts.

## Choose an example

| Example | What it demonstrates |
| --- | --- |
| [Interactive short drama](/docs/examples/interactive-short-drama) | A complete story product built as an application-specific runtime plugin. |
| [Authoring and releases](/docs/examples/authoring-and-releases) | How multiple editors can publish one versioned application source. |
| [Project files](/docs/examples/project-files) | How the example keeps portable source separate from runtime identity and credentials. |
| [Runtime releases](/docs/examples/runtime-releases) | How an application plugin pins executable content while Vifu owns Agents and access. |

## The boundary

```mermaid
flowchart LR
  Client[Web, native, or desktop client] --> Vifu[Vifu Server]
  Vifu --> Plugin[Content Runtime plugin]
  Plugin --> Vifu
  Vifu --> Gateway[Agent Gateway]
  Gateway --> Provider[Agent Providers]
```

Vifu validates the project-scoped request and forwards application RPC to the
attached runtime service. The plugin owns story source, media metadata,
compilation rules, releases, and interactive session state. When it needs an
Agent, it calls back through Vifu so provider credentials and traces stay at
the Runtime boundary.

Read [Vifu plugins](/docs/runtime-extensions) for the reusable contract before
adapting the example to another application.
