The seat map your buyers deserve, without building it yourself.

Canvas renders Studio-authored charts with the signature three-level zoom, live seat states, and your theme, on web, mobile, and inside any framework. Licensed, self-hostable, and never priced per seat.

One renderer, every kind of venue

The demo is Seatmap Canvas Next running on this page. Pick a venue and zoom from the bowl down to a single seat.

From Studio canvas to the buyer's screen

Charts are authored once in Seatmap Studio and rendered pixel-identical by Canvas. Here are both sides of that pipeline.

The live demo. The full Canvas experience, floor switching, three-level zoom and live seat holds. Click the screenshot to open it.
Seatmap Studio
Screenshot of the Seatmap Studio chart editor
Studio-authored charts. Drawn once in Seatmap Studio. Canvas renders the same document with rich tooltips, price categories and floors.

Sound familiar?

Double-booking is a trap

Read-then-write selection races under load, and a cache alone can lose a hold on failover. Canvas plugs into holds and DB-backed reservations that make selling the same seat twice structurally impossible.

Per-seat meters that punish growth

Seat-map SaaS bills per used seat and lets unused seats expire. Canvas is licensed flat, a 300-seat hall or a 30,000-seat bowl on the same terms.

Cloud-only widgets hit a wall

When procurement demands data residency, hosted-only tools are a dead end. Canvas runs on your infrastructure, under your branding.

Compare

What seatmap-canvas v1 can hold, and what Seatmap Canvas Next opens
seatmap-canvas v1Seatmap Canvas Next
How far it can goA hall of a few thousand seatsA stadium bowl that still pans and zooms
Above and belowOne floorNine floors — balcony over stalls, cabin over cabin
What the night can holdSeats in blocksSeats, standing room, booths, banquet tables
The ground it can sit onAn indoor planA theatre, a festival field, a racetrack on a map
The path to a seatVenue, then block, then the seatFrom the map, through the floors, down to the seat
How the venue is bornYou write it in JSONYou draw it in Studio. The map plays it back.
What a seat can sayA title and a notePrice, category, a picture — the offer on the seat
When the house fillsYou send a new JSONSold and held land on the map as they happen
Without a pointer—Walk the map with a keyboard

Technical

Engine, API, and packaging: seatmap-canvas v1 and Seatmap Canvas Next
seatmap-canvas v1Seatmap Canvas Next
RendererD3.js · SVGWebGL2
Chart formatblocks[] + seats[]Studio ChartDocument (blocks, objects, floors, geo)
Selection APISEAT.CLICK, select / unselectSame host-toggle events
Seat statusHost rewrites JSONsetSeatStatus, applyObjectAvailability
TooltipTitle / noteresolveTooltipOffer
Framework packagesReact, Vue 3, Next.js, AngularVanilla JS
Pretix parserBuilt-inNot shipped
LicenseMITCommercial
Installnpm i @alisaitteke/seatmap-canvasLicensed bundle, not on npm

Author once, render everywhere

  1. 01Draw it in StudioSections, floors, tables, and GA areas, authored once as the canonical chart.
  2. 02Render pixel-identicalCanvas renders the same chart document buyers will see, down to the theme.
  3. 03Wire it into your flowAround thirty typed events and a programmatic API. Zoom, floors, and selection stay under your control.
seatmap.ts
import { SeatMapCanvas } from "seatmap-canvas";
import "seatmap-canvas/dist/seatmap.canvas.css";
const seatmap = new SeatMapCanvas("#seatmap", {
theme: "dark",
legend: true,
});
seatmap.data.replaceData(chart);
seatmap.eventManager.addEventListener("SEAT.CLICK", (seat) => {
if (!seat.item.salable) return;
seat.isSelected() ? seat.unSelect() : seat.select();
});
TypeScript · seatmap-canvasSEAT.CLICK
  • Commercial license
  • Not on npm
  • TypeScript types
  • ESM + CJS builds
  • Vanilla JS API
  • WebGL2

See your venue in Canvas

Open the demo and zoom from the bowl down to the exact seat.