Delivery Hub Feature Evaluation

Gantt Chart Comparison

Three implementations evaluated side-by-side. Which one ships in the package, which stays as a power tool, and which gets retired?

1

The Three Contenders

Each takes a different approach to project timeline visualization

Frappe Gantt

MITShip It

Lightweight SVG-based Gantt. 50KB bundle. Native drag, dependency arrows, custom popups.

  • + MIT license — safe for package
  • + Tiny bundle (50KB)
  • + Native drag-to-reschedule
  • + Native dependency arrows
  • - No tree grid / left panel
  • - No swimlanes

DHTMLX Gantt

GPLPower Mode

Professional-grade Gantt with tree grid, drag-to-create-links, undo/redo. 217KB bundle.

  • + Most feature-rich
  • + Tree grid with columns
  • + Drag-to-create-links
  • + Undo/redo (Ctrl+Z)
  • - GPL v2 — cannot ship in package
  • - Cannot list on AppExchange

CSS Grid Timeline

CustomRetire

Custom-built with CSS Grid. No dependencies but every feature is manual work.

  • + Zero external dependencies
  • + Entity grouping works well
  • - Every feature manually built
  • - Will always lag behind libraries
  • - Not worth maintaining
2

Feature Comparison

Side-by-side capability matrix across all three implementations

FeatureFrappeDHTMLXCSS Grid
LicenseMITGPL v2BSL/Our code
Bundle Size50 KB217 KB0 KB
Drag to RescheduleYesYesPartial
Drag to ResizeYesYesNo
Dependency ArrowsYesYesPartial
Drag to Create LinksNoYesNo
Entity GroupingPartialYesYes
Tree Grid (left panel)NoYesNo
Progress BarsYesYesYes
Zoom LevelsYesYesYes
Quick-Edit ModalYesYesYes
Rich Tooltips/PopupsYesYesPartial
My Work FilterYesYesYes
Show Completed ToggleYesYesNo
Summary Stats BarYesYesYes
Today MarkerYesYesYes
Milestone MarkersYesPartialNo
Undo/RedoNoYesNo
localStorage PersistenceYesYesNo
3

Demo Data

What's loaded in the scratch org for testing

3
Clients
Acme, TechStart, Global Financial
18
Work Items
Various stages, dates, priorities
6
Dependencies
Realistic blocking chains
SSO Integration→ blocks →Payment Fix
SSO Integration→ blocks →Email Notifications
API MigrationKYC ValidationTransaction MonitoringRegulatory Export
Statement Optimization→ blocks →API Rate Limiting
4

Scratch Org Setup

How to launch the demo from scratch

1

Switch to branch

git checkout feature/gb-gantt-comparison
2

Check review org

cci org info review
3

Deploy (strip namespace tokens first)

sf project deploy start --target-org "Delivery Hub__review" --source-dir /tmp/deploy --ignore-conflicts
4

Load demo data

sf apex run --file scripts/load-gantt-demo-data-v2.apex --target-org "Delivery Hub__review"
5

Open the 3 tabs

Delivery_Timeline | Delivery_Frappe_Timeline | Delivery_DHTMLX_Timeline
5

Known Issues

What needs fixing before these are production-ready

Linter/Hook Revert Problem

A git hook keeps reverting DeliveryGanttController.cls to its original version, removing the getGanttData() and getGanttDependencies() methods. This breaks the Frappe and DHTMLX implementations since they import these methods.

ParentWorkItemId__c Not Deployed

The review scratch org doesn't have this field, so DHTMLX tree hierarchy only shows entity grouping, not parent-child nesting within entities.

Windows Source Tracking Errors

Every deploy shows a MetadataTransferError at the source tracking step. The actual metadata deploy succeeds (check “Components: X/X 100%”). This is a Windows file limit issue, not a deploy failure.

Features That May Not Work Yet

  • Quick-edit modal — depends on deliveryGanttQuickEdit being deployed
  • Dependency arrows — depends on Apex method not being reverted
  • DHTMLX drag-to-create-links — depends on board controller access
  • Shared toolbar — depends on deliveryGanttToolbar being deployed
6

Verdict

The recommendation based on license, features, and maintenance burden

Ship Frappe Gantt in the Package

MIT license, 50KB, covers 80% of use cases. It has native drag-to-reschedule, dependency arrows, custom popups, and zoom controls. It can go on AppExchange and be open-sourced. The shared toolbar and quick-edit modal bring it close to the deliveryHubBoard quality level.

Keep DHTMLX as Power Mode

For internal Cloud Nimbus use or clients who don't care about GPL. It's the most capable Gantt chart in any Salesforce app — tree grid, drag-to-create-links, undo/redo. Could offer as a premium internal tool or for consulting engagements where GPL is acceptable.

Retire CSS Grid Timeline

It served its purpose as a stepping stone and proof-of-concept. Libraries do everything it does but better, with less code and less maintenance. Delete the component and tab.

7

Next Steps

What to do when returning to this work

P0

Review all 3 in the scratch org

Dedicate 30 min to click around each one. Try drag, click bars, toggle dependencies.

P0

Decide: Frappe only? Frappe + DHTMLX? All 3?

License is the deciding factor. Frappe can ship, DHTMLX can't.

P0

Fix the linter/hook revert issue

DeliveryGanttController.cls keeps getting reverted. Need to investigate the git hook.

P1

Deploy ParentWorkItemId__c to review org

Enables tree hierarchy in DHTMLX (parent-child nesting within entities).

P1

Debug what's broken

Quick-edit modal, dependency arrows, shared toolbar — test each feature.

P2

Polish the winner

Match deliveryHubBoard quality — animations, mobile responsiveness, keyboard shortcuts.

P2

Add Gantt to Workspace

Put the Gantt tab inside deliveryHubWorkspace alongside the Board tab.

8

Shared Infrastructure

Components that work with any Gantt implementation

ComponentPurpose
deliveryGanttQuickEditEdit modal with lightning-record-edit-form, advanced fields toggle, escape to close
deliveryGanttToolbarConfigurable toolbar with zoom buttons, entity filter, toggle icons
getGanttData()Rich DTO — hours, developer, entity, progress, dates with fallback chain
getGanttDependencies()Flat dependency list from WorkItemDependency__c for arrow rendering
updateWorkItemDates()Save drag-to-reschedule date changes
updateWorkItemSortOrder()Save vertical reorder position

Delivery Hub Gantt Comparison — Generated 2026-03-26

Branch: feature/gb-gantt-comparison — Cloud Nimbus LLC