IAZ Dashboard vs GridStack.js

Benchmark Comparison

A detailed technical comparison between IAZ Dashboard and GridStack.js, two zero-dependency dashboard grid libraries.

Bundle Size (via Bundlephobia)

10.1 KB
gzipped (40.7 KB min)
22.7 KB
gzipped (83.9 KB min)
Size Difference
55%
smaller bundle
Dependencies
0
both libraries

Feature Comparison

Feature IAZ Dashboard GridStack.js
Grid-based Layout Yes Yes
Drag & Drop Yes Yes
Resize Handles 8 directions 8 directions
Collision Detection Yes Yes
Auto-positioning Yes Yes
Responsive Breakpoints Yes Yes
Nested Grids Yes v1.5 Yes (v7+)
Size-to-Content (Auto Height) Yes v1.5 Yes (v10+)
CSS Variable Positioning Yes v1.5 Yes (v12+)
Float Mode (Compact) Yes Yes
Theme System 6 built-in themes CSS only
Plugin System Yes No
Custom Render Hooks Yes No
Touch Support Yes Yes
TypeScript Native Native
Framework Wrappers Framework agnostic Angular, React, Vue
Serialization Yes Yes
Animation CSS transitions CSS transitions
Widget Constraints min/max W/H min/max W/H
Locked Widgets Yes Yes

API Syntax Comparison

IAZ Dashboard 10.1 KB
// Initialize
const grid = new IAZDashboard('#el', {
  columns: 12,
  rowHeight: 60
});

// Add widget
grid.addWidget({
  id: 1,
  x: 0, y: 0,
  w: 4, h: 2,
  content: 'Hello'
});

// Events
grid.on('widget:move', (w) => {});

// Edit mode
grid.setDraggable(false);
grid.setResizable(false);
GridStack.js 22.6 KB
// Initialize
const grid = GridStack.init({
  column: 12,
  cellHeight: 60
});

// Add widget
grid.addWidget({
  id: 1,
  x: 0, y: 0,
  w: 4, h: 2,
  content: 'Hello'
});

// Events
grid.on('change', (e, items) => {});

// Edit mode
grid.enableMove(false);
grid.enableResize(false);
IAZ Dashboard - Nested Grid
grid.addWidget({
  id: 'parent',
  x: 0, y: 0, w: 8, h: 6,
  subGrid: {
    columns: 4,
    rowHeight: 40,
    widgets: [
      { id: 'child', x: 0, y: 0, w: 2, h: 2 }
    ]
  }
});

// Access sub-grid
const nested = grid.getSubGrid('parent');
GridStack.js - Nested Grid
grid.addWidget({
  x: 0, y: 0, w: 8, h: 6,
  subGridOpts: {
    column: 4,
    cellHeight: 40,
    children: [
      { x: 0, y: 0, w: 2, h: 2 }
    ]
  }
});

// Access via DOM traversal
const nested = el.gridstack;

Live Performance Test

Widget Creation Benchmark

Creates 100 widgets programmatically and measures the time taken. Both libraries are loaded and tested in real-time in your browser.

IAZ Dashboard

--

GridStack.js

--
Note: Performance varies by browser, device, and system load. Both libraries are tested with animations disabled for fair comparison. Run multiple times for more accurate results.

Technical Details

IAZ Dashboard

  • Target: ES2020
  • Build: Vite + TypeScript
  • Output: ESM + UMD
  • CSS: Vanilla CSS
  • Collision: O(n) sweep
  • Positioning: CSS Variables

GridStack.js

  • Target: ES2020
  • Build: Custom + TypeScript
  • Output: ESM + UMD
  • CSS: Vanilla CSS
  • Collision: O(n) grid engine
  • Positioning: CSS Variables (v12+)

When to Choose

Choose IAZ Dashboard if you need:

  • Smallest possible bundle size
  • Built-in plugin system
  • Custom rendering hooks
  • Built-in theme system
  • Framework-agnostic approach
  • Simple, clean API

Choose GridStack.js if you need:

  • Official framework wrappers
  • Larger community & ecosystem
  • More mature codebase (since 2014)
  • Extensive documentation
  • Static grid variant option
  • Angular/React/Vue bindings