technology-stack
AG Charts Technology Stack
This document outlines the preferred technologies and architectural constraints for the AG Charts monorepo.
Critical Requirement: Zero Runtime Dependencies
The main AG Charts libraries (ag-charts-core, ag-charts-community, ag-charts-enterprise) MUST have ZERO third-party runtime dependencies. Only internal AG Charts packages and dev dependencies for build/test tooling are allowed.
Core Libraries
| Package | Runtime Dependencies | Purpose |
|---|---|---|
ag-charts-types |
NONE (zero dependencies) | TypeScript type definitions |
ag-charts-core |
ag-charts-types only |
Core rendering engine and utilities |
ag-charts-locale |
NONE (zero dependencies) | Internationalization (40+ languages) |
ag-charts-community |
ag-charts-core, ag-charts-types, ag-charts-locale |
MIT licensed charts library |
ag-charts-enterprise |
ag-charts-community, ag-charts-core |
Commercial charts with advanced features |
Core Technologies:
- TypeScript: Primary language with strict mode enabled
- Canvas API: Custom high-performance rendering with scene graph
- Pure JavaScript: No external runtime dependencies
Framework Wrappers
| Package | Runtime Dependencies | Peer Dependencies |
|---|---|---|
ag-charts-react |
ag-charts-community |
react ^18.0.0 || ^19.0.0 |
ag-charts-angular |
ag-charts-community, tslib |
@angular/common >= 17.0.0, @angular/core >= 17.0.0 |
ag-charts-vue3 |
ag-charts-community |
vue ^3.5.0 |
Documentation Website (ag-charts-website)
| Technology | Purpose |
|---|---|
| Astro (v5.8.2) | Static site generator |
| Markdoc | Content authoring for documentation |
| React | Interactive components within Astro |
| Vite | Development server and build tool |
| Prism.js | Syntax highlighting |
| Algolia | Documentation search |
| Nanostores | Lightweight state management |
| Cheerio | Server-side HTML parsing |
Development & Build Tools
| Tool | Purpose | Used By |
|---|---|---|
| Nx (v20.3.1) | Monorepo orchestration and caching | All packages |
| TypeScript (v5.4.5) | Type checking and compilation | All packages |
| SWC | Fast transpilation | Build system |
| ESBuild | High-performance bundling | Production builds |
| Jest | Unit testing with visual snapshots | Core libraries |
| Playwright | E2E testing | Website |
| Vitest | Fast unit testing | Website components |
| ESLint | Code linting with custom rules | All packages |
| Prettier | Code formatting | All packages |
| Size Limit | Bundle size monitoring | Core libraries |
Version Requirements
- Node.js: ^22.21.1
- Yarn: ^1.22.21
- Build Target: ES2020 (excludes IE)
- TypeScript: Strict mode enabled across all packages
More from ag-grid/ag-charts
estimate-jira
Estimate complexity, effort, and risks for JIRA tickets, features, or projects. Generates structured reports with time estimates, dependencies, risk analysis, and known unknowns. Use when user asks to "estimate", "size", or "analyze complexity" of work items.
43pr-split
Split a branch into a logical sequence of stacked PRs for easier review
27batch-lint-cleanup
Analyze ESLint violations and auto-fix specific rules in isolation
23recall
Load branch context and browse project memory for session resumption
22plunker
Create and manage Plunker (plnkr.co) code examples for AG Charts and AG Grid. Use this skill whenever the user mentions plunker, plnkr, or plunk, wants to create a shareable code demo or bug reproduction, needs to fork or modify an existing plunk, or asks for a live code example they can share via URL. This includes creating repros for JIRA tickets, building demos for stakeholders, downloading plunks to inspect them, or making any interactive code example hosted on plnkr.co. Also trigger when users ask for "a shareable example", "a repro", "a demo I can send", or "a live example" — even without explicitly saying "plunker".
22sync-ag-shared
Sync ag-shared subrepo changes across ag-charts, ag-grid, and ag-studio repos
22