Skip to content

RichViewJSON in, HTML report out

Describe a report in JSON or YAML — title, text, charts, tables, KPIs — and RichView renders it into a single self-contained HTML file you can open in any browser. No server needed to view the output.

What the output looks like ​

A rendered RichView report is a single .html file — no dependencies, no CDN links, no JavaScript frameworks to load. Open it in any browser, send it as an email attachment, host it on any static file server.

Reports include:

  • Interactive charts (bar, line, area, pie, scatter, heatmap, and 15 more types) powered by ECharts, with zoom, tooltips, and responsive sizing
  • KPI cards showing a metric, its value, and directional change ("Revenue: $4.2M, up 12% vs last quarter")
  • Data tables with column alignment and formatting
  • Markdown text with full formatting support
  • Light and dark mode that switches automatically based on the viewer's system preference
  • Responsive layout that works on desktop, tablet, and phone

Who is this for ​

Data analysts who want reports that look better than PowerPoint but don't require a BI tool.

AI agents that need to present data to humans. RichView is the presentation layer — the agent gathers and analyzes data, then hands RichView a schema to render. The human gets a report they can actually read.

Teams that want report generation they control. Self-host the whole stack, run it behind a firewall, keep your data on your own machines.

How the schema works ​

You write a JSON or YAML file describing your report. Each section has a type — markdown, chart, table, big-number, code, callout, image, and more. RichView validates it and renders it.

yaml
title: Quarterly Revenue
sections:
  - type: big-number
    label: Total Revenue
    value: "$4.2M"
    change: { value: 12, direction: up, period: vs last quarter }

  - type: chart
    title: Revenue by Quarter
    chart:
      type: bar
      xAxis: { field: quarter }
      yAxis: { field: revenue }
      series:
        - dataKey: revenue
    data:
      type: inline
      columns: [quarter, revenue]
      values:
        - [Q1, 1200000]
        - [Q2, 1350000]
        - [Q3, 1510000]
        - [Q4, 1690000]

See the full Schema Reference for all section types and options.

Released under the Elastic License 2.0 (ELv2).