A 35,000-Seat Stadium on a Phone: What We Measured
How long a 34,476-seat stadium takes to open in Seatmap Pro, how zoom holds 60 fps on a mid-range Android phone, and what changed after a mobile memory incident.
Draw chamfered and curved venue shapes, rebuild a converted arena from its seats, run event series through the Booking API, and keep embedded saves in draft.
This release is mostly about venue shapes. They can now have chamfered corners, sections can spread their back rows, and a chart converted from a drawing can get its venue shape back from the seat positions alone. Beside that, the Booking API gains event series, row labels get their own color, size and font, the embedded editor can keep a chart in draft when it saves, and a long list of undo, save and rendering fixes makes large charts calmer to edit. If you self-host, reuse booking references across sessions, or provision organizations and sign users in through the Booking API, read the last section before you upgrade.
Until now a venue shape was a rounded rectangle, and path-based sections followed rings that rounded every corner. Many arenas are built differently: the rows stay straight along each side and kink at a 45-degree corner. Those could not be modelled.
The Venue shape panel now has a corner style. Round behaves exactly as before. Chamfer cuts each corner at 45 degrees, and rows on that shape stay straight along the sides and turn sharply on the corner bisectors. A Back row dispersion control lets the rows further from the venue spread out. Sections inherit the venue’s value or set their own.
Polygons also learned to bend. With the polygon tool, press, drag and release to draw an arc; a plain click still makes a straight edge. The polygon keeps its corners and the bend of every curved edge when you save, so the structure you drew survives a reload.
A chart converted from a drawing arrives as absolute seat positions with no venue shape, so its sections cannot be edited as path-based blocks. Recognize from Seats, in the Venue shape panel, fits a rounded or chamfered shape to the seats and picks whichever reproduces more of them. It then converts every section whose seats it can rebuild within one pixel of where they were. Everything else, tables included, stays exactly as it was. The panel tells you how many sections it converted, and one undo puts everything back.
On the arena that prompted the work, a concentric octagon with 219 sections, the fit picks the chamfered shape on its own and converts more than 200 of them.
A series groups events that share a published template. You create the series once, then create each date with a start and an end in the series time zone. Every new event is published with the template’s prices, seat assignments and assignment properties already in place. Creating the same start twice returns the existing event, so a retry is safe. You can list a series’ events and every booked seat across all of them, filtered by your own booking reference.
Confirmed booking sessions now take private JSON properties alongside the reference, and a confirmed session can be released to return its seats to sale. A reference identifies one confirmed session per event, so check how your integration uses references before you upgrade.
An editor embedded with hideNavbar=true used to publish on every save, so there was no draft step for a host application that wanted one. Add draft=true and Save keeps the chart in draft while the publishing controls stay available for an explicit Publish. Without the parameter nothing changes. The iframe guide shows both URLs.
endDate next to killAfter, and endDate wins when both are sent.@seatmap.pro/editor-cli builds charts from JSON and ships a Model Context Protocol server that is read-only by default.lock and sale.Three changes reach integrations on any deployment. A booking reference identifies one confirmed session per event: a second confirmation with the same reference gets 409 REFERENCE_TAKEN, so send a distinct reference for each session. Autologin accepts organization accounts only: an account with the super-admin or global-admin role gets HTTP 403 and must sign in to the Editor with its own password, so an integration that autologins as such an account needs a regular organization account. Creating an organization through the management API reuses an existing account with the administrator email only when it is the only account with that email, belongs to one or more organizations, all owned by your tenant, and holds neither of those roles; any other existing account gets 409 ACCOUNT_EMAIL_IN_USE and nothing is created.
Self-hosted deployments have a few more things to check.
Seven migrations, V121 to V127, run when editor-service starts, and the editor frontend moves to 1.74 with it. Let editor-service finish them before the new booking-service starts, because booking-service reads the new event end date but does not migrate the database itself. Then upgrade booking-service straight away: the earlier version cannot read events once V121 has run, so plan that gap as booking downtime. If your tooling starts both at once, gate booking-service on the migration.
V122 makes a booking reference unique among the confirmed sessions of one event. The deployment guide has a read-only query that lists any duplicates; resolve them through your normal booking workflow first.
The editor frontend image now runs Node and serves the editor core next to the static files. Helm installs mount the public key from the existing RSA Secret and probe /healthz for you, so set the 1.74 frontend image in the same upgrade as the chart. Custom installations, Docker Compose included, run the new image entrypoint, point editor-service at the frontend’s core address, and mount the matching public key at /keys/public-key. The Docker Compose bundle for 1.74 does this and comes with an upgrade guide.
Password-reset email needs the mail host and sender address set: the Helm chart has no defaults for them any more, and global.mail.socket.port can go from your values. Editor settings now take an apostrophe as written, so write it once: a doubled apostrophe stays doubled. If your Helm values set editor.ingress.apiPaths, or a reverse proxy of your own fronts the editor, send /media to editor-service so bitmap backgrounds load. Super-admin and global-admin users sign in again once after the upgrade.
Charts are not backward compatible with older editors once they use the new shapes. Library snapshots with chamfered shapes are version 2, which older editors decline, and exports with polygon corner data need the matching editor. Sections that follow a venue shape can lay out slightly differently when reopened, so review their seats and labels before saving. Booking pages keep the saved geometry and row label fonts until the next save.
The deployment guide covers the editor runtime settings, and the full detail is in the release notes.
How long a 34,476-seat stadium takes to open in Seatmap Pro, how zoom holds 60 fps on a mid-range Android phone, and what changed after a mobile memory incident.
Go from venue schema to confirmed booking with the Booking API, one call at a time: event, prices, map, hold and sale, with the error case at each step.
Stop two buyers from holding the same seat. A server-held booking session owns the seats in its cart and, after payment, sells all of them or none.