typescript-data-visualization-engineering

Design typed data contracts and renderer architecture for TypeScript data visualizations.

5.3k|765|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/openai/plugins --skill typescript-data-visualization-engineering
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: typescript-data-visualization-engineering
Source: https://github.com/openai/plugins/tree/main/plugins/build-web-data-visualization/skills/typescript-data-visualization-engineering
Command: npx skills add https://github.com/openai/plugins --skill typescript-data-visualization-engineering

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Building visualizations in TypeScript applications often leads to untyped data boundaries, ad hoc library choices, and tangled render logic. This Skill provides rules for typed data contracts, renderer selection, and maintainable component architecture so charts, diagrams, and scrollytelling scenes stay reliable as the product grows.

Core Features & Use Cases

  • Typed Data Contracts: Define schemas for input rows, derived marks, scales, selections, tooltips, URL view-state codecs, and persisted preferences with validation at the boundary.
  • Renderer and Library Selection: Choose between D3, Observable Plot, Vega-Lite, Recharts, ECharts, Canvas2D, WebGL, Three.js, deck.gl, PixiJS, Sigma.js, and diagramming tools like Mermaid, React Flow, or Cytoscape.js based on data shape and product surface.
  • Architecture Guidance: Separate data loading, transformation, scale creation, rendering, and interaction state, with explicit contracts for scrollytelling scenes, generated imagery, mobile layouts, and reduced-motion fallbacks.
  • Use Case: When converting a D3 prototype into a maintainable React charting system, use this Skill to define the typed interfaces for chart data, tooltip payloads, and shareable URL state before writing render code.

Quick Start

Ask the agent to design the TypeScript types and renderer architecture for your visualization, for example: design typed contracts for selections, tooltips, and URL state for an interactive dashboard chart.

Frequently Asked Questions about typescript-data-visualization-engineering

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a TypeScript data visualization project?

Define the data schema before rendering, validate external data at the boundary, and keep derived chart geometry in typed functions. Separate data loading, transformation, scale creation, rendering, and interaction state into distinct layers with explicit interfaces.

Which TypeScript charting library should I choose?

Use Observable Plot or Vega-Lite for standard declarative charts, D3 for custom geometry and interactions, and Recharts, ECharts, or Chart.js when integration speed matters. Choose Canvas2D or WebGL only when mark density, particles, or GPU picking justify the complexity.

D3 vs Vega-Lite for React visualizations?

Vega-Lite suits fast declarative 2D charts embedded in React, while D3 fits bespoke SVG geometry and custom behaviors. When combining D3 with React, let React own structure and lifecycle while D3 owns math and narrowly scoped imperative rendering.

How do I model shareable chart state in TypeScript?

Define a canonical view-state codec that parses, validates, normalizes defaults, and serializes in stable order with schema versioning. Keep ephemeral state like hover and drag-in-progress separate from durable URL or persisted workspace state.

When should I use WebGL instead of SVG for charts?

Use WebGL when mark count, smooth pan/zoom, particles, flow animation, custom shaders, GPU picking, or true 3D justify GPU complexity. Avoid it for small, static, label-heavy charts where accessibility and export matter more than frame rate.