00 A programmable surface for your business

Build the interface your work was missing.

Ready for your team

Describe the job

What should your app make easier?

Pick a starting point or write the exact workflow you want to turn into a reusable interface.

Input → logic → interface
Generated app blueprint APP-042
Media operations
Daily Decision Cockpit
AO
Command center AI analyst Shared library Creative studio Daily brief Scenario planner Research hub Operations monitor Training tool Asset gallery Command center AI analyst Shared library Creative studio Daily brief Scenario planner Research hub Operations monitor Training tool Asset gallery

01 The shift

Dashboards explain a fixed slice of the business. Apps can combine data, logic, AI, memory, media, and workflow around the exact decision your team owns.

Not another dashboard. A living interface for the way your team decides.

02 Six building blocks

Start with primitives. Build almost anything.

Apps become powerful when the interface is only the visible layer. Under it: live warehouse queries, contextual AI, durable files, team state, public data, and recurring automation outputs.

A Live business data

Query the business. Shape the answer into a tool.

Use parameterized, read-only SQL to power refreshable metrics, current-versus-prior comparisons, search, filters, date controls, drilldowns, tables, charts, and exports.

01Live Triple Whale data through the documented data API.
02Native date ranges and safely bound query parameters.
03Loading, empty, partial, stale, blocked, and error states.
04Clear definitions for attribution, scope, freshness, and comparison windows.
Live query → decision canvasgetTWData()
const rows = await
getTWData(
  `SELECT period,
    channel,
    spend,
    revenue
  FROM blended_stats
  WHERE channel IN @channels
  LIMIT 500`
,
  { start, end },
  { channels }
);

render({
  comparison: "current vs prior",
  filters: ["channel","status"],
  state: "complete"
});
Performance canvas● LIVE
Current periodCalculated live
Prior periodSame window
DefinitionVisible in app
FreshnessOn demand

B Moby inside the interface

Let the app answer the question the chart cannot.

An app can ask Moby for analysis, recommendations, summaries, explanations, or next steps while the interface stays loaded and interactive.

01Contextual analysis based on the job the app is designed to support.
02Leadership narratives, anomaly explanations, briefs, and decision support.
03Explicit thinking, loading, success, and failure states.
04Reviewable recommendations without pretending the app executed a mutation.
Decision copilotaskMoby()
“Explain the three biggest changes in this view, separate signal from noise, and tell the operator what to inspect first.”
01 / Observation

Separate the largest movement from normal variance.

The app supplies the exact metric definitions, window, filters, and visible evidence so the explanation stays grounded.

02 / Diagnosis

Connect the change to the most plausible drivers.

Moby can synthesize across the displayed context, saved notes, and the purpose of the workspace.

03 / Next move

Recommend a reviewable first action.

Consequential execution stays with Moby and the owning connector, not a hidden button inside the app.

C Memory and files

Make the app remember what matters.

Store preferences, saved views, generated outputs, images, PDFs, CSVs, and structured state at the user level or share them across the shop.

01Personal settings and saved work under a user scope.
02Shared libraries, latest outputs, and team config under a shop scope.
03JSON, text, images, binary files, and folder listings.
04No secrets, tokens, credentials, or sensitive authentication material.
My workspaceuser/...
JSON
saved-view.json
user/views/
personal
TXT
notes.txt
user/research/
personal
CSV
scenario.csv
user/plans/
personal
Team workspaceshop/...
IMG
creative-07.png
shop/creative/latest/
shared
PDF
brief.pdf
shop/briefs/saved/
shared
JSON
index.json
shop/daily/latest/
shared
Useful pattern: keep replaceable “latest” outputs separate from durable “saved” work. Refreshing a daily feed should never overwrite a human’s saved selection.

D Recurring freshness

Let automation prepare the work before anyone opens the app.

For expensive analysis, enrichment, generated media, or stable “as of” snapshots, a scheduled Moby automation can update app storage and the interface can read the newest committed output.

01Daily briefings, weekly creative drops, recurring audits, and research feeds.
02Run metadata: complete, partial, stale, blocked, error, coverage, and freshness.
03Data-only updates can refresh the experience without rebuilding the interface.
04Scheduling is connected separately and verified as its own automation.
06:00 UTC
Automation startsCollect evidence and run the recurring workflow.
running
06:04 UTC
Outputs are generatedAnalysis, files, media, and metadata land in a run folder.
complete
06:05 UTC
Index commits lastThe app gets one stable pointer to the newest complete run.
committed
08:30 UTC
The team opens the appFresh work is already organized, searchable, and ready for review.
fresh

E Point-and-edit structure

Make every meaningful region selectable.

Apps can expose independently editable sections so a user can point at a title, card, chart, control, tab, list, or footer group and ask Moby to change that exact piece.

01Nested, unique section identifiers on containers and meaningful children.
02Individual metrics, cards, charts, tabs, rows, controls, and states.
03Precise edits without replacing unrelated behavior or layout.
04Anything unmarked cannot be targeted by the inspector.

F Web, files, and media

Build interfaces that are not trapped inside a chart.

Combine public web data with saved files and binary media to create research hubs, creative galleries, document workspaces, maps, downloadable outputs, and visual review tools.

01Public CORS-accessible APIs and feeds through browser fetch.
02Images, PDFs, CSVs, text, JSON, blobs, and array buffers.
03Search, tags, sorting, annotations, saved picks, and local downloads.
04No embedded secrets; private APIs need an approved server-side path.
Creative evidence boardshop/creative/latest/
Concept 07Selected
Pattern testReview
Product frameSaved
Layout studyNew
Motion frameQA

03 Use-case lab

One platform. A different operating surface for every job.

Switch the operator. The workflow, evidence, state, and interface change with them. These are example patterns, not claims about live shop data.

01 Leadership

Executive command center

A reusable briefing surface that combines live KPIs, prior-period context, driver analysis, saved leadership views, and a Moby narrative.

04 Eighteen starting points

Build the tool hiding inside your spreadsheet, ritual, or recurring prompt.

Search the catalog, filter by job, and open any row to see the inputs, interaction model, and output pattern.

No recipes match that search. Try a broader job or capability.

05 The system underneath

Every app is a decision loop with a visible interface.

The experience can be simple because the architecture is explicit: inputs, logic, interface, memory, and freshness. Consequential action remains reviewable.

01

Inputs

Live TW data, public APIs, prompts, uploaded media, saved files, and recurring outputs.

SQLFetchFiles
02

Logic

Parameters, comparisons, formulas, filters, ranking, JavaScript, and Moby analysis.

RulesAIJS
03

Interface

Charts, tables, search, tabs, editors, maps, galleries, calculators, and drilldowns.

UIMotionExport
04

Memory

User preferences, team libraries, saved decisions, latest runs, and durable artifacts.

UserShopBinary
05

Freshness

On-demand queries or automation-backed snapshots with visible status and timestamps.

LiveScheduledStatus
Built as browser-safe HTML, CSS, JavaScript, and the current TW App SDK.Source definitions and limitations belong inside the experience.
getTWData(sql, dateRange, params)

Run parameterized, read-only Triple Whale queries for live, refreshable app data.

askMoby(prompt)

Bring contextual AI analysis, recommendations, and synthesis into the active interface.

fileSystem.get / set / ls / delete

Persist JSON, text, images, PDFs, CSVs, and binary files in user or shared shop scope.

getAppContext()

Read the active user, shop, theme, readiness, and available context exposed by the host.

fetch(publicUrl)

Combine CORS-accessible public APIs and feeds with the rest of the app experience.

data-tw-section="unique-id"

Make every meaningful visual region independently selectable for targeted editing.

LoadingCompleteEmptyPartialStaleBlockedError

06 The honest boundary

Apps can show, compute, remember, explain, organize, and coordinate. They do not hide consequential platform changes behind a button.

Fetch and refresh live data.
Filter, sort, search, compare, drill down, calculate, and export.
Ask Moby for analysis and recommendations.
Save personal or shared state and files.
Route ad, campaign, budget, product, audience, customer, publish, or messaging mutations through Moby and the owning connector.
The result is safer and clearer: the app becomes the place to understand and prepare the decision; Moby becomes the reviewed execution layer when a consequential action is actually requested.

07 Start with the job

Describe the operating surface you wish already existed.

Moby can turn the job, users, inputs, decisions, state, and freshness needs into a first-pass app architecture.

App architectInteractive blueprint
Ready to architect