3DRelease engineeringGuide 08

Deploy skylines for release history

Turn deploy frequency into an isometric skyline that makes quiet weeks and launch spikes memorable.

A skyline of releases

Example data
Height shows the numerical value; colour shows its shade band. Zero and negative values are flat. Outlined tiles have no data. Drag to orbit. Focus the chart and use arrow keys to rotate, plus or minus to zoom, and Home to reset. Tab to enter the grid, then use arrow keys to inspect adjacent cells.Sunday, September 6, 2026. 2 deploysSunday, August 30, 2026. 0 deploysMonday, September 7, 2026. 16 deploysSunday, August 23, 2026. 3 deploysMonday, August 31, 2026. 0 deploysSunday, August 16, 2026. 2 deploysTuesday, September 8, 2026. 4 deploysMonday, August 24, 2026. 5 deploysSunday, August 9, 2026. 1 deploysTuesday, September 1, 2026. 45 deploysMonday, August 17, 2026. 27 deploysSunday, August 2, 2026. 4 deploysWednesday, September 9, 2026. 16 deploysTuesday, August 25, 2026. 16 deploysMonday, August 10, 2026. 58 deploysSunday, July 26, 2026. 1 deploysWednesday, September 2, 2026. 12 deploysTuesday, August 18, 2026. 2 deploysMonday, August 3, 2026. 57 deploysSunday, July 19, 2026. 3 deploysThursday, September 10, 2026. 19 deploysWednesday, August 26, 2026. 2 deploysTuesday, August 11, 2026. 7 deploysMonday, July 27, 2026. 10 deploysSunday, July 12, 2026. 4 deploysThursday, September 3, 2026. 50 deploysWednesday, August 19, 2026. 16 deploysTuesday, August 4, 2026. 35 deploysMonday, July 20, 2026. 12 deploysSunday, July 5, 2026. 1 deploysFriday, September 11, 2026. 19 deploysThursday, August 27, 2026. 18 deploysWednesday, August 12, 2026. 7 deploysTuesday, July 28, 2026. 59 deploysMonday, July 13, 2026. 1 deploysSunday, June 28, 2026. 3 deploysFriday, September 4, 2026. 22 deploysThursday, August 20, 2026. 4 deploysWednesday, August 5, 2026. 57 deploysTuesday, July 21, 2026. 37 deploysMonday, July 6, 2026. 16 deploysSunday, June 21, 2026. 1 deploysSaturday, September 12, 2026. 3 deploysFriday, August 28, 2026. 4 deploysThursday, August 13, 2026. 50 deploysWednesday, July 29, 2026. 0 deploysTuesday, July 14, 2026. 1 deploysMonday, June 29, 2026. 26 deploysSunday, June 14, 2026. 3 deploysSaturday, September 5, 2026. 3 deploysFriday, August 21, 2026. 36 deploysThursday, August 6, 2026. 1 deploysWednesday, July 22, 2026. 17 deploysTuesday, July 7, 2026. 36 deploysMonday, June 22, 2026. 36 deploysSunday, June 7, 2026. 1 deploysSaturday, August 29, 2026. 3 deploysFriday, August 14, 2026. 42 deploysThursday, July 30, 2026. 29 deploysWednesday, July 15, 2026. 2 deploysTuesday, June 30, 2026. 16 deploysMonday, June 15, 2026. 0 deploysSunday, May 31, 2026. 2 deploysSaturday, August 22, 2026. 1 deploysFriday, August 7, 2026. 55 deploysThursday, July 23, 2026. 23 deploysWednesday, July 8, 2026. 31 deploysTuesday, June 23, 2026. 46 deploysMonday, June 8, 2026. 4 deploysSunday, May 24, 2026. 2 deploysSaturday, August 15, 2026. 2 deploysFriday, July 31, 2026. 10 deploysThursday, July 16, 2026. 8 deploysWednesday, July 1, 2026. 0 deploysTuesday, June 16, 2026. 6 deploysMonday, June 1, 2026. 29 deploysSunday, May 17, 2026. 2 deploysSaturday, August 8, 2026. 3 deploysFriday, July 24, 2026. 0 deploysThursday, July 9, 2026. 6 deploysWednesday, June 24, 2026. 4 deploysTuesday, June 9, 2026. 27 deploysMonday, May 25, 2026. 0 deploysSunday, May 10, 2026. 4 deploysSaturday, August 1, 2026. 1 deploysFriday, July 17, 2026. 41 deploysThursday, July 2, 2026. 43 deploysWednesday, June 17, 2026. 3 deploysTuesday, June 2, 2026. 50 deploysMonday, May 18, 2026. 2 deploysSunday, May 3, 2026. 3 deploysSaturday, July 25, 2026. 4 deploysFriday, July 10, 2026. 28 deploysThursday, June 25, 2026. 37 deploysWednesday, June 10, 2026. 7 deploysTuesday, May 26, 2026. 47 deploysMonday, May 11, 2026. 55 deploysSunday, April 26, 2026. 1 deploysSaturday, July 18, 2026. 0 deploysFriday, July 3, 2026. 3 deploysThursday, June 18, 2026. 10 deploysWednesday, June 3, 2026. 40 deploysTuesday, May 19, 2026. 39 deploysMonday, May 4, 2026. 12 deploysSunday, April 19, 2026. 2 deploysSaturday, July 11, 2026. 2 deploysFriday, June 26, 2026. 0 deploysThursday, June 11, 2026. 42 deploysWednesday, May 27, 2026. 42 deploysTuesday, May 12, 2026. 56 deploysMonday, April 27, 2026. 1 deploysSunday, April 12, 2026. 1 deploysSaturday, July 4, 2026. 2 deploysFriday, June 19, 2026. 0 deploysThursday, June 4, 2026. 4 deploysWednesday, May 20, 2026. 20 deploysTuesday, May 5, 2026. 1 deploysMonday, April 20, 2026. 0 deploysSunday, April 5, 2026. 1 deploysSaturday, June 27, 2026. 0 deploysFriday, June 12, 2026. 14 deploysThursday, May 28, 2026. 42 deploysWednesday, May 13, 2026. 2 deploysTuesday, April 28, 2026. 29 deploysMonday, April 13, 2026. 8 deploysSunday, March 29, 2026. 0 deploysSaturday, June 20, 2026. 2 deploysFriday, June 5, 2026. 45 deploysThursday, May 21, 2026. 8 deploysWednesday, May 6, 2026. 20 deploysTuesday, April 21, 2026. 2 deploysMonday, April 6, 2026. 52 deploysSaturday, June 13, 2026. 1 deploysFriday, May 29, 2026. 35 deploysThursday, May 14, 2026. 6 deploysWednesday, April 29, 2026. 47 deploysTuesday, April 14, 2026. 39 deploysMonday, March 30, 2026. 53 deploysSaturday, June 6, 2026. 4 deploysFriday, May 22, 2026. 0 deploysThursday, May 7, 2026. 16 deploysWednesday, April 22, 2026. 24 deploysTuesday, April 7, 2026. 5 deploysSaturday, May 30, 2026. 4 deploysFriday, May 15, 2026. 15 deploysThursday, April 30, 2026. 9 deploysWednesday, April 15, 2026. 22 deploysTuesday, March 31, 2026. 4 deploysSaturday, May 23, 2026. 2 deploysFriday, May 8, 2026. 7 deploysThursday, April 23, 2026. 16 deploysWednesday, April 8, 2026. 4 deploysSaturday, May 16, 2026. 1 deploysFriday, May 1, 2026. 32 deploysThursday, April 16, 2026. 42 deploysWednesday, April 1, 2026. 44 deploysSaturday, May 9, 2026. 0 deploysFriday, April 24, 2026. 52 deploysThursday, April 9, 2026. 12 deploysSaturday, May 2, 2026. 3 deploysFriday, April 17, 2026. 4 deploysThursday, April 2, 2026. 7 deploysSaturday, April 25, 2026. 4 deploysFriday, April 10, 2026. 5 deploysSaturday, April 18, 2026. 0 deploysFriday, April 3, 2026. 41 deploysSaturday, April 11, 2026. 1 deploysSaturday, April 4, 2026. 1 deploys
lessmore
24 weeks of deploysDrag to explore · Keyboard accessible
Rows
Day of the week
Columns
Calendar week
Value
Deploy count → height

The pattern

What the data tells you

Taller buildings mark release-heavy days. Drag to orbit, or focus the scene and use the arrow keys.

The 3D calendar uses height for the raw value and colour for its band. Readers can orbit the SVG scene, focus a cell, and still access the same date and value through tooltips.

A release timeline is often a story, not just a metric. A skyline makes the shape of a release cycle tangible while keeping the data queryable and accessible as SVG instead of hiding it in a canvas.

Build it in React

From data to heatmap

TypeScript / React

Prepare your data

One dated deploy count per day. The same calendar values can be rendered flat or as an isometric scene without changing the data model.

Make the component yours

Start with this example. Adjust the labels, colours, and tooltips to fit your product.

deploy-skyline.tsx
import { CalendarHeatmap3D, type CalendarDay } from "@thilakbhat/heatmap-ui";
import "@thilakbhat/heatmap-ui/styles.css";

export function DeploySkyline({ deploys }: { deploys: CalendarDay[] }) {
  return (
    <CalendarHeatmap3D
      values={deploys}
      to="2026-09-12"
      weeks={24}
      blockStyle="building"
      theme="night"
      maxHeight={70}
      animation="grow"
      interactive
      unitLabel="deploys"
    />
  );
}
Key props
CalendarHeatmap3DblockStyle="building"animation="grow"interactive
API reference

A few more details

Common questions

Deploy skyline heatmaps, explained.

What is a 3D calendar heatmap?

A 3D calendar heatmap keeps dates in a calendar layout while using height for the raw value and colour for its band, turning activity peaks into a readable skyline.

Why use a 3D heatmap for release history?

A release skyline makes quiet periods, launch spikes, and changes in deployment cadence immediately visible while preserving the underlying date and value for tooltips.

Does the deploy skyline require WebGL?

No. The heatmap-ui 3D pattern is rendered as SVG, so it can stay serializable, themeable, and accessible without adding a WebGL scene to the application.

How do I make a deployment heatmap interactive?

Pass dated deploy counts to CalendarHeatmap3D, enable interactive mode, and provide a unit label such as deploys so hover and keyboard users can understand each block.