There's one Vite app per React Gantt. Each has the same 14 scheduling scenarios, and each scenario renders the same data in both products.
gantt-comparison/
├── bryntum/ — Bryntum React Gantt app
└── svar/ — SVAR Pro React Gantt app
The scenario data lives in shared/scenarios.js. Each app adapts that same data to its own Gantt API in src/scenarios/index.js.
Run the shared scenario checks from this folder:
npm testThe test verifies that:
- all 14 article scenarios exist in the expected order
- every scenario renders the project with child tasks
- dependency links point at real tasks and use valid link types
- the Bryntum adapter preserves the same rows and has date-pinning enabled
- the SVAR adapter preserves the same rows and has forward auto-scheduling enabled
| # | Scenario | Capability tested |
|---|---|---|
| 01 | SS dependency | Start-to-Start link |
| 02 | FF dependency | Finish-to-Finish link |
| 03 | SF dependency | Start-to-Finish link |
| 04 | FS with lag | Lag semantics (minimum gap vs exact gap) |
| 05 | must-start-on | Inflexible constraint mode |
| 06 | start-no-earlier-than | Semi-flexible constraint mode |
| 07 | Weekend calendar | Project-level working time |
| 08 | Resource calendar | Per-resource working time |
| 09 | Backward scheduling | ALAP / direction = Backward |
| 10 | Critical path | CPM correctness |
| 11 | Conflict handling | Circular / invalid link handling |
| 12 | Lunch break | Intra-day calendar intervals |
| 13 | Effort-driven scheduling | FixedEffort mode, effort field |
| 14 | Inactive tasks | Excluding a task from scheduling but keeping it in plan |
Run the following commands in your terminal:
# Terminal 1
cd bryntum
npm install
npm run dev # serves on http://localhost:5173
# Terminal 2
cd svar
npm install
npm run dev # serves on http://localhost:5174There's a dropdown menu in each app's header that let's you select the scheduling scenario.
Trial packages are used for both React Gantt libraries.