Skip to content
Skillpedia
Tasks & projects101k · #479

live-dashboard

Helps your agent create an updatable team dashboard, like Notion. It shows key metrics, recent activity, and tasks, even offline.

What it does

This agent creates an interactive dashboard that looks like Notion. It displays key metrics (KPIs), a 7-day quick chart, a real-time activity feed, and a task list. All of this is in a single, updatable HTML page.

When to use it

  • ✓To see the performance of a project's key metrics.
  • ✓To track recent team activities.
  • ✓To get a quick overview of tasks and their status.

Example of what to ask your AI

“Create a dashboard for project X, showing sales KPIs, recent activity, and pending tasks.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/nexu-io/open-design/blob/main/design-templates/live-dashboard/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/nexu-io/open-design/blob/main/design-templates/live-dashboard/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It uses a pre-defined HTML template and fetches data from connected sources (like Notion) to display information. If there's no connection, it uses sample data so the dashboard still works.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add nexu-io/open-design --skill live-dashboard

Or download just the file:

curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/design-templates/live-dashboard/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Live Dashboard

You are a senior product-designer-engineer building a Live Artifact — an HTML page that behaves like a working dashboard, not a mockup. Your output ships, not only renders.

Pre-flight (must complete before emitting any HTML)

  1. Read assets/template.html — start from this skeleton verbatim. Do not rebuild the shell from scratch. Override only what the user's brief or the active DESIGN.md require.
  2. Read references/layouts.md — pick exactly one of the three documented layouts (A · classic dashboard, B · kanban-flavored, C · KPI-only hero). State your choice in your reply.
  3. Read references/components.md — copy KPI-card, sparkline, activity row, and database row markup verbatim, then re-skin per the active DESIGN.md. Do not invent new component shapes.
  4. Read references/connectors.md — only when inputs.connector !== mock. Emit a sibling connectors.json listing every event the artifact subscribes to and every read endpoint it polls.
  5. Read references/checklist.md — every P0 row must be true before you emit index.html. Quote each P0 row inline in your reply with [x] or [ ]. Do not emit while any P0 is unchecked.

Build order

  1. Lock visual direction from the active DESIGN.md. Display face should be the system / sans face Notion-leaning systems use (SF Pro, Inter as body, never Inter Display as a hero face). Body 14/22.
  2. Topbar: breadcrumb (workspace_name / Workspace / page_title) on the left, a <live-pill> on the right showing one of three states: Live · synced (green pulse), Syncing… (blue), Stale · <ago> (amber, after stale_after_seconds).
  3. Page header: a Notion page-emoji (a single, semantically relevant emoji — never a generic 🚀 ✨ 🔥), a page-title at 40px weight 700 letter-spacing -0.01em, a meta row with last-edited-by + "Last refreshed <timeAgo>" + the auto-toggle button + the Refresh button.
  4. Callout explaining the Live Artifact contract — pulled-from-where, refresh-when. One line. No marketing language.
  5. KPI grid: respect inputs.kpi_count. 1px hairline grid, no shadows, no rounded internal cards. Numbers font-variant-numeric: tabular-nums, weight 600, letter-spacing -0.01em. Each KPI gets a small grey delta line (↑ 6 vs last week).
  6. Two-column block: a sparkline card (SVG, hand-rolled, no chart library) + the activity feed card. Sparkline shows a 7-day series with subtle accent fill at 10% alpha and a 2px stroke.
  7. Linked database: a Notion-style table — db-head (uppercase 12px label-grey) + db-row rows. Status pills use the Notion five-color set (Done / In progress / Blocked / In review / To do). Person chips use a colored 18px round avatar with two-letter initials.
  8. Footer: source attribution (Source: Notion API · workspace <workspace_name>) and connector slug.

Live behavior (the part that earns the "Live" in Live Artifact)

Wire these in a single <script> block at the bottom of index.html:

  • init() runs refresh({silent: true}) 600ms after mount — the "refresh on open" semantic.
  • The Refresh button calls refresh({silent: false}). Show a tween on every numeric KPI between old and new values, flash the changed row in the table for 1.4s, prepend a fresh activity row with a left-pad highlight for 2s, and surface a bottom toast describing the diff. The tween/flash hooks are already wired in assets/template.html (tweenText() + .flash + .db-row.changed + .feed-row.new); pass the prev snapshot into renderKpi(prev) and the changed-row id into renderRows(changedId) and the tween/flash fall out of the existing CSS. Do not rebuild this from scratch.
  • setInterval(refresh, refresh_seconds * 1000) when Auto is on.
  • After stale_after_seconds without a successful refresh, swap the pill to amber Stale · <ago>.
  • Real connector mode: POST /api/od/connectors/poll with a JSON body { project, read }, where project is the id from <meta name="od:project"> and read is one of the bindings[*].reads[].id values declared in connectors.json. The OD daemon resolves the primary binding, the auth source, and the live provider call server-side; the artifact never sees raw provider URLs or tokens. See references/connectors.md for the wire shape and the daemon resolution order. On error, fall back to the seeded mock so the

…

FAQ

What is a 'Live Artifact'?

It's an HTML page that acts like a real dashboard, showing updated data, rather than just being a static image.

How is the data updated?

The dashboard can be updated manually by clicking a 'Refresh' button or automatically at set intervals. It also updates when you open it.

What happens if the data source connection fails?

The dashboard uses pre-loaded sample data to keep functioning and displays a small message in the footer indicating the issue, without interrupting the view.

Details

Original description by the author

Notion-style team dashboard rendered as a Live Artifact. A single-page, self-contained HTML dashboard with KPIs, a 7-day sparkline, a real-time activity feed and a linked-database task table — wired to Notion via the Composio connector catalog. Refreshes on demand and when the artifact is opened. Falls back to seeded mock data when no connector is bound, so it works offline / in screenshots / in t

repo: nexu-io/open-design

Popularity

GitHub stars
101k
Ranking position
#479
License
Apache-2.0
Updated
10/16/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills