Skip to main content
Define a README on your app; Nuon renders it on each install’s Overview. This guide covers authoring and formatting. For per-install variables and live data components, see Programmable READMEs.

Adding a README to an app

Set the readme field on your app:
metadata.toml
Sync, and it renders on each install’s Overview.

Formatting

The readme is a string, rendered as Markdown in the dashboard. Use TOML multi-line strings for readability:
metadata.toml
Markdown accepts HTML, so HTML/CSS/JS works too, but not all of it renders reliably in the dashboard. Proceed with caution.

Reference a README.md file

Reference a README.md file instead of inlining. It’s easier to manage for longer documents:
metadata.toml

Tables

Markdown tables render as interactive data tables with styled headers, click-to-sort columns, and horizontal auto-scroll when the content is wider than the page.
README.md
Cell content is full inline markdown, so links, bold, and inline code render inside cells. Column alignment from the delimiter row (:---, :---:, ---:) is preserved.

Searchable tables

Add a <nuon-table-search> tag directly before a table to render a search box that filters the rows client-side as the viewer types.
README.md
The tag must be the line immediately before the table (blank lines between are fine). Matching is case-insensitive substring, and searches the value of each cell — not its rendered markdown. Attributes:
  • column — which column(s) to search, by header name. Comma-separate for multiple (e.g. column="name,region"). Omit to search every column.
  • placeholder — custom placeholder text for the search box (defaults to “Search table…”).
The same marker works on raw HTML <table> markup. HTML tables render through the same common table component as markdown tables (sortable headers, shared styling), and a <nuon-table-search> marker before one adds the search box:
README.md
Tables that use colspan/rowspan or multiple header rows can’t be represented this way, so they render as authored (with any custom markup preserved).

Collapsible sections

Use HTML <details> and <summary> tags to create expandable sections. These render with styled expand/collapse behavior, including a rotate animation on the chevron icon.
README.md
You can include any Markdown inside a collapsible section: lists, code blocks, tables, and even nested <details>.

Code blocks

Fenced code blocks with a language identifier get syntax highlighting.
README.md
Supported languages include bash, go, typescript, python, hcl, yaml, sql, and many more. JSON code blocks render as an interactive tree viewer that you can expand and collapse:
README.md

Mermaid diagrams

Code blocks with the mermaid language render as diagrams. Flowcharts (graph TD, flowchart LR, etc.) render as interactive diagrams with pan, zoom, and drag via ReactFlow. Supported directions: TD, TB, LR, RL, BT.
README.md
Flowcharts support subgraphs, edge labels, node shapes, and custom styling via style directives. All other diagram types (sequence, class, state, etc.) render as static SVG:
README.md

Callouts

READMEs support GitHub-style callout blockquotes. These render with a colored left border, icon, and label.
README.md
Five types are supported: NOTE (blue), TIP (green), IMPORTANT (purple), WARNING (orange), and CAUTION (red). Regular blockquotes without a type prefix render normally.

Local time

Use the <nuon-time> tag to render timestamps in the viewer’s local timezone.
README.md
Attributes:
  • time — ISO 8601 timestamp string
  • seconds — Unix timestamp (alternative to time)
  • formatrelative (e.g. “2 hours ago”), short-datetime, long-datetime, time-only (defaults to short-datetime)
The relative format auto-updates and shows a tooltip with the full date on hover.

Display components

READMEs support custom <nuon-*> HTML tags that render as dashboard UI components. These are purely presentational and work in both app-level and install-level views.

Badge

Renders an inline badge.
README.md
Attributes:
  • themebrand, default, neutral, success, warn, error, info
  • sizesm, md, lg
  • variantdefault, code

Label badge

Renders a key/value label badge — useful for tagging installs with metadata like environment, region, or version.
README.md
You can pass the label as a single colon-separated label attribute, or as separate key and value attributes. Attributes:
  • label — colon-separated key:value string (e.g. env:production)
  • key — label key (alternative to label)
  • value — label value (alternative to label)
  • themebrand, default, neutral, success, warn, error, info
  • key-theme — override the theme for just the key portion
  • sizesm, md, lg
  • variantdefault, code
The theme here only controls how a badge renders inside a README. To set the color a label key uses across the dashboard (on apps, installs, and components), see label colors. Renders a callout banner for important notices.
README.md
Attributes:
  • themebrand, default, neutral, success, warn, error, info

Status

Renders a status indicator dot with label.
README.md
Attributes:
  • status — any string (e.g. active, provisioning, error)
  • variantdefault, badge, timeline

Group

A flexbox layout container for arranging other elements.
README.md
Attributes: gap (number), align, justify, wrap ("true" or "false", defaults to true).

Card

Wraps content in a styled card container with border, padding, and shadow.
README.md
Attributes:
  • class — optional CSS class name for custom styling

Tabs

Renders tabbed content sections. Wrap <nuon-tab> elements inside a <nuon-tabs> block:
README.md
Each <nuon-tab> requires a name attribute. The content inside each tab is full markdown. Renders a button that opens a modal dialog containing markdown content.
README.md
Attributes: heading, trigger (button label, defaults to “View”), size.

Panel

Same as modal, but slides in from the side of the screen.
README.md
Attributes: heading, trigger (button label, defaults to “View”), size.

Render per-install values

Everything above is static authoring. To render each install’s live values and embed real-time components (status cards, the config graph, runnable runbooks), see Programmable READMEs.