Skip to main content
On this page

Apps

Apps

Pages your team opens to read live, governed numbers: reports, slide decks, chat threads and interactive pages.

Audience
Business teams and data teams
Prerequisites
  • Read access to the workspaces an app reads

An app is a page your team opens in Kater to read live numbers: a monthly report for leadership, a Monday deck for the CMO, a chat thread you want to share, or an interactive page with filters. Its figures come from saved queries, so the numbers stay current and match what your data team governs, and the page lists where each figure came from.

What an app is

  • HTML with Kater tags. An app is a folder with a page, index.html, and a manifest, kater.app.yaml. Each figure on the page is a Kater tag, such as <kater-chart>.
  • Live, governed queries. Each tag names a saved query by its workspace’s full path and the query’s name. The query runs on the warehouse when the page opens, so the page never holds a stale number.
  • Sources on every page. The page ends with its sources list, which says where each figure came from. A figure from the shared layer has the green shield.
  • The reader’s own access. Every reader sees only what they can read. The runtime answers only the queries the page names in a tag.
  • A sandboxed frame. The page runs in a sandboxed frame. It cannot load anything from another host, send data anywhere, open a window or submit a form. It holds no SQL, no credentials and no rows. A link in its sources list opens through Kater, in a new tab.

This is the whole page of the Paid media performance app, minus its styles:

workspaces/ad_reporting/apps/paid_media_performance/index.html
<main>
<kater-chart query="connections/snowflake_prod_connection/workspaces/ad_reporting/paid_media_spend_trend"
kind="line" heading="Spend by platform, monthly"></kater-chart>
<kater-table query="connections/snowflake_prod_connection/workspaces/ad_reporting/paid_media_ad_groups"
heading="Ad groups"></kater-table>
</main>
The Paid media performance app: a line chart of monthly spend by platform beside a table of ad groups
Two tags make the Paid media performance app.

The tags

TagWhat it draws
<kater-chart>A chart, ranked list, flow or sentence. Kinds: bar, line, area, composed, pie, radial, radar, peak, multiples, ranked, treemap, sunburst, sankey, breakdown, status, progress, funnel, cohort, diagram, updates and insight.
<kater-table>The query’s rows, as a report. variant names another layout, such as grid for the spreadsheet grid.
<kater-kpi>Headline figures: metrics, stats, target or movers.
<kater-value>One figure inside a sentence.
<kater-filter>The filters and parameters a query declares, for the reader to change.
<kater-frame>A custom visual, such as a d3 layout, fed by the queries it names.
<kater-compare>Whether two answers are the same, and the cells that differ.
<kater-appendix>The sources list: where each figure on the page came from. With folded, it folds under one Sources line.
<kater-source>A source outside Kater, or mock data, written once on the page.
<kater-cite>One figure from a <kater-source>, inside a sentence.

Every card has a details panel. It names the workspace and query, says how each field is defined, shows the Kater SQL and has Open query.

Where each figure comes from

Every app ends with its sources list. It lists every figure on the page, numbered in reading order and grouped by where it came from. Kater draws it the same way in every template.

The sources list of the User Journeys app, open under From Kater, with each query as a group and each figure as a line with its number, its name, the green shield and its value
The sources list. Each group is a query, and each line is a figure.
KindWhere the figure comes fromMark
Shared layerA field of a shared model or dataset under modeling/. It runs again each time the page opens.The green shield after its name
WorkspaceA field the workspace defines, such as a custom calculation. It runs again each time the page opens.None
Outside KaterA link to another system, such as HubSpot, Tableau or Notion, a file kept with the app, or a person. It was read on a date, and Kater does not read it again.None
Mock dataA typed value, or a query that reads only literal rows. It is not real data.The MOCK DATA badge, always
  • Verified follows the field. A figure is verified only when its field comes from the shared layer. It then shows the same green shield as the field picker. One query can give one figure with the shield and one without. Nothing an author writes on a page makes a figure verified.
  • The order. Mock data comes first. Then From Kater, with shared-layer queries before workspace queries. Then From other sources. Each part shows its count.
  • Open a source. Each group’s header opens its source: a query or a file in Kater, or a link at its own address in a new tab.
  • Select a line to see the figure’s description and its formula. The page stays where it is. A workspace figure also has Add to the shared layer, which opens a promotion request for its field.
  • Show on the page, the button on each line, scrolls to the figure and marks it. In the app’s Sources tab, beside the page, selecting a line also does this.
  • Hover a figure on the page to see its card: its name, its formula, where it came from and when it was read.
A line of the sources list opened under it, with the figure's description, its formula in a bordered box and Show on the page
Select a line to see its description and formula.
A slide of the Marketing Channel Performance deck with the card for $42,226 open: Ad spend, its address weekly_scorecard.week_spend, its description, the model, workspace and query it came from, and Runs again each time the page opens
Hover a figure to see its card. Ad spend is the workspace’s own measure, so it has no shield.

Mock data

A figure that Kater does not have can be mock data, but only after you say so. See When Kater does not have the data. The figure has a hatched underline and the MOCK DATA badge in every template and in every file. Hide Citations never hides it.

Select the badge to see what replaces it:

  • What to replace. The figure, where it is on the page, why it is mock data, what the agent searched, and who added it when.
  • The data it needs. The measure, its grain, the period and the columns.
  • What to ask the data team. One question.
  • Copy request for the data team copies a message for Slack or email. Copy prompt for your agent copies a prompt that looks again in Kater and replaces the mock data with a query.
The mock data popover over a figure with the MOCK DATA badge: What to replace, The data it needs, What to ask the data team, and the buttons Copy request for the data team and Copy prompt for your agent
Select MOCK DATA to see what replaces it.

Figures from outside Kater

Kater never reads another system. It has no connector to HubSpot, Tableau or Notion, and it keeps no copy of what they hold. Your agent reads the figure with its own connector, or you give it. The page then cites the place by its link, the date it was read and how the link was found. The figure does not change until someone reads it again.

A figure from HubSpot
<kater-source id="pipeline" origin="link" system="HubSpot" path="Reports/Q4 pipeline by stage"
url="https://app.hubspot.com/reports/…/48213" via="The agent's HubSpot connector"
read-at="2026-10-07" read-by="ada@example.com"></kater-source>
<p>Pipeline is <kater-cite source="pipeline" label="Pipeline">$6.2M</kater-cite>.</p>

A <kater-source> that lacks a part it needs shows the problem in place of its figures. A file source names a file in the app’s own files/ folder, which you add in Add Content › Files.

Find apps

Select Apps in the left navigation. Each card draws a live preview of its app.

The Apps page with live app previews, the All, Mine and Shared with me tabs, and the New app button
The Apps gallery.
  • Tabs. All, Mine and Shared with me.
  • Search. Type in Search apps to find an app by name.
  • Pin. Pin an app to keep it on Home.
  • Make one. Select New app or the Create new app card. See Build an app with your agent.

Read an app

The Retention Scorecard app with the File, Edit, View and Help menus, the Live and Static switch, the Viewing menu and Ask
The Retention Scorecard, open in Viewing mode.

Viewing and Editing

ModeWhoWhat you can do
ViewingEveryone who can open the appRead it, hover a chart, open a card’s details, change filters, export.
EditingPeople who can edit the appEverything in Viewing, plus the Toolkit: Add Content, Theme, History and App settings.

Select the mode from the Viewing menu at the right of the menu bar.

Live and Static

  • Live is the default. Charts answer hover, cards open their details and tables scroll.
  • Static shows the page exactly as an export draws it. Nothing opens and nothing is cut short. Show Citations adds a small number to each figure, and the sources list says where it came from. The MOCK DATA badge stays when you hide the numbers.

The address keeps your choice as ?view=static, so a link opens the same view.

The app menu

MenuItems
FileShare, See all apps, Export
EditToolkit (Show Toolkit Panel, Add Content, App Settings, Theme Builder), Undo, Redo, History, Create New App, Duplicate, and the page’s own Copy as Markdown
ViewTheme Mode: Light, Dark or System
HelpDocumentation

At the right of the menu bar: Live and Static, Pin to Home, the Viewing menu, Ask, and Save app changes while you edit.

Examples in the Library

These apps run on ShopTech’s demo data. Each Library entry has the prompt that built it.

The User Journeys app with loyalty tier and date filters, a KPI row, a purchase rate bar chart and the start of a Sankey
User Journeys: filters in the header change every figure below.

Where apps live

  • Your apps. connections/<connection>/users/<email>/apps/<name>/, beside your workspaces. One app can read queries from several workspaces.
  • A workspace’s apps. An app made on a connection workspace lives in that workspace’s apps/<name>/ folder.
  • Drafts. Your agent drafts a new app in your private brainstorm/ folder until you say yes.

The manifest holds the app’s name, label and theme. The page, not the manifest, says what the app reads.

users/<email>/apps/retention_scorecard/kater.app.yaml
version: kater.app-manifest/v3
application:
name: retention_scorecard
label: Retention Scorecard
description: The monthly retention scorecard a lifecycle marketer sends leadership, as a printable report.
appearance: light
theme: spring

Next steps