Jantt is a free, open source project & work management project written in TypeScript and released under MIT. It has 1,864 GitHub stars, 5 forks and 12 open issues, and was last pushed 4 days ago. On this registry it ranks #42 of 70 tracked projects in Project & Work Management, with 5 head-to-head comparisons available.

What is Jantt?

Jantt is an MIT-licensed, zero-runtime-dependency TypeScript engine that turns a declarative JSON document into an interactive, draggable Gantt chart for plain HTML, React and Next.js applications, Node.js CLIs and autonomous AI toolchains.

What it is

Jantt is a Gantt chart engine built around a declarative JSON document rather than an imperative drawing API. It lives in the Business Software / Project & Work Management category, is written in TypeScript 5.4 under the MIT licence, and centres on @jantt/core, a pure, zero-runtime-dependency package weighing under 14 KB gzipped. The engine ships with a formal JSON schema, a JSON cheatsheet, and several delivery surfaces: a React component, a script-tag build for plain HTML, and a Node.js CLI for use in pipelines and agent toolchains. It supports Node.js 18.0.0 and later, and the project reports 339 of 339 tests passing.

The concrete problem it solves is the gap between static diagram formats and heavyweight commercial charting suites. Prompting a model to emit React JSX or SVG coordinate maths tends to produce broken layouts and coordinate hallucinations while consuming large amounts of tokens on boilerplate UI code, and read-only DSLs such as Mermaid.js produce non-interactive images that cannot be dragged, edited, recalculated or synchronised back to project state. On the other side, commercial suites such as DHTMLX and Bryntum demand 200 KB to 800 KB of runtime dependencies, imperative calls like gantt.init() and gantt.addTask(), and recurring per-seat fees. Jantt replaces both with a schema contract: a JSON document goes in, an editable timeline comes out.

Key capabilities

  • Renders a declarative JSON document as a draggable, touch-enabled Gantt chart, with the document structure defined by a formal JSON schema and a published JSON cheatsheet.
  • Runs with zero runtime dependencies through @jantt/core, consuming under 14 KB gzipped, and targets plain HTML, React, Next.js and the Node.js CLI from the same data format.
  • Includes a topological DAG solver and a Critical Path Method (CPM) implementation for schedule calculation.
  • Provides Earned Value Management aligned with ANSI/EIA-748 and DCMA-14 schedule health audits for programme-level reporting.
  • Supports multi-user CRDT collaboration in cloud rooms with role-based permissions.
  • Offers CSS-variable-driven theming, including Swiss Light and Swiss Dark palettes, an OLED Swiss Noir background (#080D18), 90-degree orthogonal routing and glassmorphic HUD cards.
  • Persists chart state to local storage for browser-only use, and generates timelines from LLM output with the schema contract instead of JSX.

Who uses it and how

  • Autonomous AI agents and LLM pipelines that emit a JSON timeline document instead of JSX or SVG, using the schema as the generation contract.
  • Individual students, hobbyists and creators who want a lightweight chart in a single HTML page, with drag-and-drop editing, touch gestures and local storage persistence.
  • Engineering teams and programme directors who need CPM scheduling, EVM reporting and DCMA-14 health audits on a plan rather than a static image.
  • Distributed teams that use the CRDT cloud rooms and role-based permissions to edit a shared schedule concurrently.
  • Developers embedding the React component or the script-tag build in existing apps, and Node.js users driving chart generation through the CLI.

Getting started

Install the @jantt/core package from npm on Node.js 18 or later and render a chart from a JSON document, or load the script-tag build / React component directly. A hosted Live Playground is linked from the project homepage for trying the JSON format before installing anything.

How it compares

Against DHTMLX Gantt and Bryntum, Jantt is MIT-licensed rather than commercially licensed, and it carries no recurring per-seat fee. Its core is a zero-dependency package under 14 KB gzipped where those suites ship 200 KB to 800 KB of runtime dependencies and expose imperative APIs such as gantt.init() and gantt.addTask(). Because the project is a self-hostable library operating on JSON documents, the schedule data stays in the user's own files or application rather than in a vendor's charting runtime.

When to use it — and when not to

Choose Jantt when a JSON-defined, self-hosted timeline with dependency-free rendering and operations-research scheduling fits the stack, and when AI-generated plans need a schema to land in. Teams that want vendor-backed commercial support, a fully managed service, or a WYSIWYG editor that never exposes JSON should look at the commercial suites instead. The repository is young — 1,864 stars but only 5 forks and 12 open issues — so the contributor base and third-party ecosystem are small, and the collaboration and CLI surfaces should be evaluated directly before relying on them.

project readme (upstream, from github) — read inline

The Declarative JSON Gantt Chart Engine

Where human intuition meets declarative AI planning.

License: MIT TypeScript 5.4 Zero Runtime Dependencies Tests Passing Node.js Support PRs Welcome


Turn any declarative JSON document into a high-performance, interactive, draggable Gantt chart.
Zero runtime dependencies. 100% pure TypeScript.
Runs everywhere: Plain HTML, React, Next.js, Node.js CLI, and autonomous AI toolchains.

Designed from the ground up for:

  • Autonomous AI Agents & LLMs — Declarative JSON schema contract eliminates UI hallucinations; models generate timeline data with 10x fewer tokens than fragile JSX code.
  • Students, Hobbyists & Creators — Lightweight, beautiful Swiss Noir dark mode, intuitive drag-and-drop, touch gestures, and instant local storage persistence.
  • Engineering Teams & Program Directors — Operations Research Critical Path solver, EVM (Earned Value Management), DCMA-14 schedule health audits, and multi-user CRDT collaboration with secure role-based permissions.

Live Playground • JSON Cheatsheet • Architecture • Schema Specification • API Docs • Roadmap • Changelog



Why Jantt? The Declarative Revolution

Traditional project management and timeline tools force an impossible choice:

  1. Enterprise Bloat: Commercial suites (DHTMLX, Bryntum) demand 200KB to 800KB runtime dependencies, complex imperative APIs (gantt.init(), gantt.addTask()), and expensive recurring per-seat fees.
  2. Brittle AI Generations: Prompting LLMs (ChatGPT, Claude, Gemini) to generate React JSX or SVG coordinate math produces broken layouts, coordinate hallucinations, and wastes thousands of tokens on boilerplate UI code.
  3. Static Limitations: DSLs like Mermaid.js are read-only, non-interactive images. They cannot be dragged, edited, recalculated, or synchronized back to living project state.

The 4 Superpowers of Jantt

  • Zero Runtime Dependencies: The core math and layout engine (@jantt/core) is pure, zero-dependency TypeScript weighing under 14 KB gzipped.
  • AI-Native & 10x Fewer Tokens: Declarative JSON schema contract eliminates UI hallucinations; models generate timeline data with 10x fewer tokens than fragile JSX code.
  • Swiss Modernism 2.0 Aesthetics: Deep OLED Swiss Noir (#080D18), 90-degree CAD orthogonal routing, glassmorphic HUD cards, and high-contrast typography.
  • Defense-Grade Operations Research: Built-in topological DAG solver, Critical Path Method (CPM), Earned Value Management (EVM - ANSI/EIA-748), DCMA-14 schedule health audits, and multi-user CRDT cloud rooms.

Visual Showcase & Curated Themes

Jantt features a fully reactive, CSS variable-driven theming architecture with out-of-the-box support for light modes, sleek dark modes, and high-contrast vibrant styles:

Swiss Light Mode

Daylight clarity, high contrast typography, and subtle glassmorphic tooltips.


Swiss Dark Mode

Sleek obsidian palette with glowing critical path indicators and 90° right-angle routing.

Color Theme Gallery

Cyber Emerald

Midnight Rose

Sunset Crimson

Master Specification Benchmark


Comparison Matrix

Capability Jantt Engine (@jantt/core) DHTMLX Gantt Frappe Gantt Mermaid.js
Runtime Dependencies 0 (Zero) Multiple Multiple Multiple
State Paradigm 100% Declarative JSON Imperative JS API Imperative JS API Text-based DSL
Interactive Drag-to-Link 90° Orthogonal Step Supported Not Supported Static only
Timeline Zoom Scales 5 (Day to Year) Supported Limited Not Supported
Critical Path Analysis Built-in Solver Commercial tier Not Supported Not Supported
Milestones & Baselines Native in Schema Commercial tier Not Supported Milestones only
Inline Progress Dragging Interactive Handle Supported Read-only Not Supported
Bi-directional CLI Sync Built-in Not Supported Not Supported Not Supported
Bundle Size (gzip) **
10× 0 100% 2-Way
Fewer LLM Tokens vs JSX Runtime Dependencies Deterministic DAG Solver Bidirectional State Sync

Schema Contract: https://raw.githubusercontent.com/AhmadHassan-BTed/Jantt/main/schema/jantt.schema.json (v1.4.0)

flowchart LR
    A["<b>Step 1: Feed Cheatsheet to LLM</b><br/>Compact schema contract (WBS, dates, DAG, budget)"] --> B["<b>Step 2: AI Outputs Pure JSON</b><br/>10x fewer tokens, type-safe, 0 hallucinations"]
    B --> C["<b>Step 3: Instant Interactive Suite</b><br/>Deterministic DAG solver, Gantt, Kanban & Analytics"]
    C --> D["<b>Step 4: Bidirectional Loop</b><br/>Humans adjust visually, syncs clean JSON back to AI"]
    D --> B
  • Step 1: Feed Cheatsheet to LLM — Give the AI the compact schema contract (WBS, dates, DAG dependencies, milestones, budget). See the full Jantt JSON Cheatsheet.
  • Step 2: AI Outputs Pure JSON — Uses 10× fewer tokens than JSX. Machine-checkable, type-safe, and zero UI hallucinations.
  • Step 3: Instant Interactive Suite — Jantt resolves topological DAG schedules, routes orthogonal wires, and renders Gantt, Kanban, Notes & Analytics.
  • Step 4: Bidirectional Loop — Humans drag and adjust visually. Jantt syncs clean JSON back to localStorage/disk for the AI agent.

LLM System Prompt

Hand this prompt to ChatGPT, Claude, Gemini, Cursor, or your autonomous AI agent pipelines. The model will output 100% valid, constraint-checked Jantt JSON schedules without hallucinating UI code:

You are a precision project management schedule generator.
Output ONLY raw, valid JSON conforming strictly to the Jantt JSON Schema (https://raw.githubusercontent.com/AhmadHassan-BTed/Jantt/main/schema/jantt.schema.json).

# JANTT JSON SCHEMA BENCHMARK & SPECIFICATION CHEATSHEET (v1.4.0)

## 1. Top-Level Root Structure
{
  "$schema": "https://raw.githubusercontent.com/AhmadHassan-BTed/Jantt/main/schema/jantt.schema.json",
  "meta": {
    "title": "<Project Title>",
    "description": "<Project narrative and objectives>",
    "person": "<Lead Program Manager / Owner>",
    "organization": "<Enterprise / Organization Name>",
    "start": "YYYY-MM-DD",
    "end": "YYYY-MM-DD",
    "defaultGapDays": 2,
    "scale": "day" | "week" | "month" | "quarter" | "year",
    "linkRouting": "orthogonal" | "curved" | "direct",
    "showCriticalPath": true,
    "showBaselines": true,
    "autoCascade": true,
    "currency": "USD",
    "budget": 450000,
    "version": "1.4.0"
  },
  "categories": {
    "<category_id>": {
      "label": "<Category Display Name>",
      "color": "#HEX_COLOR",
      "soft": "#BG_TINT_HEX",
      "icon": "<lucide_icon_name>"
    }
  },
  "people": [
    {
      "id": "@alex",
      "name": "Alex Mercer",
      "username": "@alex",
      "role": "Lead Architect",
      "email": "alex@org.com",
      "teamId": "core-team",
      "color": "#3B82F6"
    },
    {
      "id": "person-contractor",
      "name": "Sarah Miller",
      "role": "External Specialist",
      "teamId": "core-team",
      "color": "#10B981"
    }
  ],
  "teams": [
    {
      "id": "core-team",
      "name": "Core Platform Squad",
      "color": "#3B82F6",
      "description": "Backend services and architecture"
    }
  ],
  "notes": [
    {
      "id": "note-unique-id",
      "title": "Architecture RFC & Specs",
      "content": "Detailed markdown requirements, meeting minutes, and acceptance criteria.",
      "color": "#3B82F6",
      "pinned": true,
      "category": "Architecture",
      "tags": ["RFC", "Architecture"],
      "task_ids": ["task-1"],
      "updatedBy": "@alex",
      "createdAt": "YYYY-MM-DDTHH:mm:ssZ",
      "updatedAt": "YYYY-MM-DDTHH:mm:ssZ"
    }
  ],
  "documents": [
    {
      "id": "doc-unique-id",
      "label": "<Document or Deliverable Title>",
      "status": "have" | "pending" | "missing",
      "owner": "<Owner Name>",
      "url": "<Documentation Link>",
      "note": "<Review notes / status>"
    }
  ],
  "tasks": [
    {
      "id": "task-unique-id",
      "wbs": "1.1",
      "label": "Task Name / Title",
      "category": "<matching_category_id>",
      "start": "YYYY-MM-DD",
      "end": "YYYY-MM-DD",
      "assignee": "@alex",
      "phase": "Phase 1: Foundation",
      "priority": "low" | "medium" | "high" | "urgent",
      "estimatedCost": 28000,
      "actualCost": 15000,
      "dependsOn": "prereq-id" | ["prereq-1", "prereq-2"] | null,
      "gapDays": 2,
      "locked": false,
      "progress": 0.75,
      "milestone": false,
      "status": "not-started" | "in-progress" | "submitted" | "completed" | "blocked",
      "urgent": false,
      "color": "#EC4899",
      "baseline": {
        "start": "YYYY-MM-DD",
        "end": "YYYY-MM-DD"
      },
      "notes": "Detailed task description, acceptance criteria, and technical specs.",
      "fields": {
        "jira": "JANTT-101",
        "storyPoints": 13,
        "repo": "github.com/org/repo",
        "deliverable": "schemas/v1.json"
      }
    }
  ]
}

## 2. Critical Constraints & Validation Rules:
1. DATES: All dates must be ISO "YYYY-MM-DD" format. "end" must be >= "start".
2. CATEGORIES: Every task "category" must match an existing key in the "categories" dictionary.
3. DEPENDENCIES (DAG):
   - "dependsOn" can be a single task ID string, an array of strings ["t1", "t2"], or null.
   - All referenced dependency IDs must exist in the "tasks" list (no dangling references).
   - Strict Directed Acyclic Graph: NO circular dependency loops (e.g. A -> B -> C -> A).
   - Timing Sanity: A task's "start" must be on or after prerequisite "end" + gapDays.
4. MILESTONES: For zero-duration milestone gates, set "milestone": true and "start" equal to "end".
5. PROGRESS: Must be a decimal float from 0.0 (0%) to 1.0 (100%).
6. BASELINES: Optional planned timeframe object { "start": "YYYY-MM-DD", "end": "YYYY-MM-DD" } for baseline variance tracking.
7. LOCKED: Set "locked": true on fixed gates or hard-deadline milestones to prevent accidental drag shifts.
8. SINGLE SOURCE OF TRUTH & ZERO DATABASE IDS IN JSON:
   - Real registered teammates use canonical "@username" for both "id" and "username".
   - Non-account individuals are defined as offline personas (e.g. "id": "person-contractor", without "username").
   - Tasks assigned to real accounts reference the handle in "assignee": "@username".
   - NO INTERNAL DATABASE IDS OR UIDs IN JSON: Private database keys, Firebase UIDs, auth tokens, and secret keys are strictly stripped from JSON. The ONLY exception is public "@username" mentions.

Minimal JSON Template

Provide this minimal benchmark template directly to any code or LLM pipeline:

{
  "$schema": "https://raw.githubusercontent.com/AhmadHassan-BTed/Jantt/main/schema/jantt.schema.json",
  "meta": {
    "title": "Master Delivery Plan",
    "person": "@ahmadhassan",
    "start": "2026-09-01",
    "end": "2027-02-28",
    "scale": "week",
    "linkRouting": "orthogonal",
    "showCriticalPath": true,
    "currency": "USD",
    "budget": 250000
  },
  "categories": {
    "core": { "label": "Core Dev", "color": "#38BDF8" },
    "qa": { "label": "QA & Release", "color": "#10B981" }
  },
  "tasks": [
    {
      "id": "t1",
      "wbs": "1.0",
      "label": "Engine Architecture",
      "category": "core",
      "start": "2026-09-01",
      "end": "2026-09-20",
      "progress": 1.0,
      "status": "completed",
      "assignee": "@ahmadhassan"
    },
    {
      "id": "gate-1",
      "wbs": "1.1",
      "label": "Architecture Approved",
      "category": "core",
      "start": "2026-09-21",
      "end": "2026-09-21",
      "milestone": true,
      "dependsOn": "t1"
    },
    {
      "id": "t2",
      "wbs": "2.0",
      "label": "Core Implementation",
      "category": "core",
      "start": "2026-09-23",
      "end": "2026-10-30",
      "dependsOn": "gate-1",
      "gapDays": 2,
      "progress": 0.4,
      "status": "in-progress"
    }
  ]
}

System Architecture

Jantt operates on a strictly decoupled, unidirectional data flow. Raw JSON is validated, topologically solved, mapped into coordinate space, and presented via modular DOM and SVG layers.

flowchart TD
    classDef input fill:#0B111E,stroke:#38BDF8,stroke-width:2px,color:#F1F5F9;
    classDef core fill:#141D2F,stroke:#24324B,stroke-width:1px,color:#F1F5F9;
    classDef algo fill:#1E293B,stroke:#10B981,stroke-width:1px,color:#ECFDF5;
    classDef render fill:#1A263D,stroke:#F59E0B,stroke-width:1px,color:#FFFBEB;
    classDef target fill:#0F172A,stroke:#EC4899,stroke-width:1px,color:#FFF1F2;

    JSON["Declarative JSON Document<br/>(Jantt v1 Schema)"]:::input
    
    subgraph CoreEngine ["@jantt/core (Zero Runtime Dependencies)"]
        VAL["1. Schema & Graph Validator<br/>(Cycle & Integrity Diagnostics)"]:::core
        RES["2. Topological Schedule Resolver<br/>(Constraint Relaxation & Critical Path)"]:::algo
        LAY["3. Multi-Scale Layout Engine<br/>(90° Orthogonal Line Routing)"]:::algo
        
        subgraph Renderers ["Modular Presentation Layer"]
            REN_TBAR["Toolbar Subsystem"]:::render
            REN_GRID["Sticky Data Grid & Splitter"]:::render
            REN_HEAD["Multi-Tier Date Header"]:::render
            REN_BARS["Task Bars & Milestones"]:::render
            REN_SVG["SVG 90° Dependency Overlay"]:::render
            REN_TIP["Glassmorphic Tooltips"]:::render
        end
        
        CTRL["4. Interaction Controller<br/>(Pointer Event State Machine)"]:::core
    end

    JSON --> VAL
    VAL --> RES
    RES --> LAY
    LAY --> Renderers
    Renderers --> CTRL

    CTRL -- "Immutable Commit" --> JSON

    subgraph Targets ["Deployment Surfaces"]
        T_REACT["@jantt/react<br/>(<Jantt /> Component)"]:::target
        T_STAND["@jantt/standalone<br/>(UMD / IIFE Script Tag)"]:::target
        T_CLI["jantt CLI<br/>(Two-Way Live Sync)"]:::target
    end

    Renderers --> Targets

Interaction & Request Lifecycle

When dragging task bars, resizing durations, connecting dependency handles, or adjusting progress, the event cycle flows cleanly through the state machine:

sequenceDiagram
    autonumber
    actor User as User / Contributor
    participant DOM as DOM / SVG Canvas
    participant Controller as Interaction Controller
    participant Resolver as Topological Resolver
    participant AppState as JSON State
    participant Callback as onCommit / Disk

    User->>DOM: PointerDown on Drag Port / Task Bar
    DOM->>Controller: startDrag(mode: move | resize | progress | link | split)
    
    loop Live Interaction (PointerMove)
        User->>DOM: Drag pointer across timeline
        Controller->>DOM: Update temporary visual draft (90° preview wire / coordinate shift)
    end

    User->>DOM: PointerUp (Release)
    Controller->>Resolver: resolveSchedule(mutatedTasks, defaultGapDays)
    Resolver-->>Controller: Return schedule-consistent tasks
    Controller->>AppState: Generate new immutable JanttData state
    Controller->>DOM: Re-render layout with updated constraints
    Controller->>Callback: Emit onCommit(finalData) / Write to file on disk

Feature Matrix & Capabilities Guide

Jantt bridges the gap between declarative machine data and human project intuition with high-performance visualization across timelines, agile boards, and documentation.

Visual & Interactive Experience (Up Front)

Surface Core Capabilities Highlights
Interactive Gantt Timeline 90° CAD orthogonal dependency wiring, live drag-to-link anchor ports, baseline ghost bars, inline progress drag handle, split-pane resizer. 60/120fps smooth canvas, 5-tier zoom (Day to Year) + continuous slider, fit-to-height mode.
Agile Kanban Board 4-state workflow columns (pending, in-progress, completed, blocked), priority badges, category color dots, drag & drop status transitions. Multi-rule sorting (by Priority, Start Date, Assignee, WBS), live progress indicators.
Todo Checklist & Cards 1-click [x] completion checkboxes, strikethrough styling, expandable task cards, category tags. Quick status switching, assignee avatars, team squad badges.
Shared Notes & Docs Markdown editor & preview, @person tagging, /task mentions, attached tasks lists, color palettes, pin to top. Real-time debounced auto-save into JSON, sectioned attached & mentioned task views.
Executive PM & KPIs Dual-mode dashboard: Essential (progress velocity, health readiness) vs Advanced (EVM, Critical Path, DCMA-14). Quick status filters (Ready, Blocked, Bottleneck), schedule buffer diagnostic cards.
Personalization & AI Features Highlights
Curated Theme Engine 7 handcrafted themes: Swiss Noir (True OLED Black), Nordic Frost, Cyber Emerald, Midnight Rose, Sunset Crimson, Swiss Light, Beenie. Clean dark & light mode grouping, high-contrast typography, zero emojis.
Resources & Squads Automatic assignee discovery from tasks[].assignee, squad groupings (Engineering, Design, QA), workload counts. 1-click "Save to JSON" sync directly into root people[] and teams[] arrays.
Time Blocking & Focus Universal 1-click filter bar: Today, This Week, Specific Date, Date Range. Dim Mode (fades non-matching tasks) vs Filter Mode (hides non-matching tasks).
AI Agent Toolchains JSON-as-Interface: $10\times$ token reduction vs JSX/HTML, zero graphical hallucinations. Copy-paste benchmark prompts for Claude 3.5 Sonnet, GPT-4o, and Gemini 1.5 Pro.

Core Engine & Algorithmic Internals (Under the Hood)

Algorithmic Engine Mathematics & Standards Description
Topological Solver Graph constraint resolution ($ES(T) = \max(EF(P) + \text{gap})$) Automatically paces successor chains when predecessors shift; respects locked: true milestones.
Critical Path & Float Dual-pass forward / backward scheduling Computes early/late start, early/late finish, and total slack/float ($TF = LS - ES$). Zero-float bottleneck glow.
PERT Estimation $\mu = \frac{O + 4M + P}{6}, \quad \sigma = \frac{P - O}{6}$ 3-point probabilistic duration calculations using optimistic, most likely, and pessimistic bounds.
Earned Value (EVM) $CV = EV - AC, \quad SV = EV - PV, \quad CPI = \frac{EV}{AC}, \quad SPI = \frac{EV}{PV}$ ANSI/EIA-748 standard cost & schedule variance monitoring and forecasting ($EAC = \frac{BAC}{CPI}$).
DCMA-14 Schedule Audit Defense Contract Management 14-point audit metrics Flags missing logic, negative float, high float (>44 days), invalid leads, and relationship inconsistencies.
Enterprise & Developer Tooling Description
Client-Side Exporters 1-click RFC-4180 CSV spreadsheet export, high-resolution vector SVG extraction, and raw JSON export.
Cloud Remote URL Sync Bidirectional synchronization with remote JSON endpoints, ETag caching, background polling, and conflict warnings.
Split Monaco Editor Built-in VS Code-grade Monaco code editor with real-time JSON schema validation and error diagnostic squiggles.
Bidirectional CLI (jantt) CLI runner (npx jantt open ) providing live file-watching and bidirectional browser-to-disk synchronization.
Zero Runtime Dependencies @jantt/core is 100% pure TypeScript with zero external packages (Tab / Shift+Tab
ArrowLeft / ArrowRight Move task start & end by 1 day (or defaultGapDays with Alt)
Shift+ArrowLeft / Right Resize task duration
Enter or Space Open task detail modal
Escape Close modal / cancel active drag

Local Development & Contributing

New contributors are welcomed. Please review CONTRIBUTING.md and CODE_OF_CONDUCT.md.

# Clone the repository
git clone https://github.com/AhmadHassan-BTed/Jantt.git
cd Jantt

# Install dependencies
npm install

# Run verification test suite (339/339 passing across 22 test suites)
npm test

# Typecheck all packages
npm run typecheck

# Launch local interactive development playground
npm run dev

Author & Maintainer

Ahmad Hassan (B-Ted)


License

This project is licensed under the MIT License — see the LICENSE file for details.

Frequently asked questions

Is Jantt free to use?

Jantt is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Jantt do?

The AI-native JSON Gantt chart engine. Dependency-free interactive timelines with React, script-tag, CLI, topological DAG solver, and formal JSON schema.

What is Jantt written in?

Jantt is primarily written in TypeScript. Its source is publicly available at https://github.com/AhmadHassan-BTed/Jantt, and it has 1,864 GitHub stars.