# Interface (/docs/components/interface)

> A Site and an App are each an Interface of a Product; a rendering is one output format of a record, and an Interface has several.

> An Interface is how a person or an Agent reaches a Product: an API, MCP server, CLI, SDK, Site, or App.
>
> startupbuilder.dev, [Interface](https://startupbuilder.dev/business/nouns/interface)

A Site and an [App](https://next.mdxui.dev/docs/components/app) each extend Interface on startupbuilder.dev. mdxui renders a Site's pages today, one `renderPage` call per record, with `site()` for a whole Site written as Spec; the App's design is open.

## Interface and rendering

The two words never trade places:

| | Interface | Rendering |
| --- | --- | --- |
| Is | How a person or an agent reaches a Product | One output format of one record |
| Belongs to | A Product | A record |
| Examples | A Site, an App, an API, a CLI | HTML, JSON, Markdown, a share image, an email |
| On this site | [Site](https://next.mdxui.dev/docs/components/site) | [Renderings](https://next.mdxui.dev/docs/components/renderings) |

## What mdxui renders

One page of one Site Interface, in two renderings. The Preview tab is the HTML a person reads; the Record tab is the JSON an agent reads and writes.

The rendered page: https://next.mdxui.dev/sites/harbor/; its record: https://next.mdxui.dev/pages/harbor/home.json

## How it maps

startupbuilder.dev's eight Interface kinds. mdxui serves one, the Site, and draws the Site pages that document four more.

  - **site** (alpha): Page records, rendered under one Theme
  - **api** (alpha): Documented on a Site: a call with its response, and the list of endpoints
  - **cli** (alpha): Documented on a Site: the install line and a session
  - **sdk** (alpha): Documented on a Site: one call per language, as tabs
  - **mcp** (alpha): Documented on a Site: the prompt a reader pastes into an agent
  - **app** (study): Studied for 13 App types; see [App types](https://next.mdxui.dev/docs/app)
  - **docs** (gap): No docs Interface: these docs run on Fumadocs, beside the renderer
  - **webhooks** (gap): No Section type of its own; `endpoints` lists webhook paths as rows
  - **path** (host): Where the host mounts the Site on its Domain

## Status

The Site Interface renders today in two renderings, HTML and JSON. The Markdown, share image and email renderings are Spec, each on its own page under [Renderings](https://next.mdxui.dev/docs/components/renderings).

## Related

  - [Site](https://next.mdxui.dev/docs/components/site): The Interface mdxui renders.
  - [Renderings](https://next.mdxui.dev/docs/components/renderings): One record, every output format.
  - [App types](https://next.mdxui.dev/docs/app): The other Interface, studied.

