Plugin screenshot thumbnail 1/7
Plugin screenshot thumbnail 2/7
Plugin screenshot thumbnail 3/7
Plugin screenshot thumbnail 4/7
Plugin screenshot thumbnail 5/7
Plugin screenshot thumbnail 6/7
Plugin screenshot thumbnail 7/7

Hitz

Interactive hall plans for Craft CMS.

Draw your venue's halls, stands and facilities on a real-unit floor plan in the control panel, relate exhibitors to stands, and publish a zoomable, searchable plan with one line of Twig.

Hitz grew out of the Donkeytail idea — content-managed hit areas on an image — and takes it where a trade fair needs it to go. A stand is not a pin on a picture. It is a shape with a size in square metres, it sits inside a hall, it has a number visitors look for, it is available, reserved or booked, and the exhibitor list has to be able to point at it.

{{ craft.hitz.render('spring-fair', { linkField: 'exhibitor' }) }}

Craft 5.3+, PHP 8.2+. Leaflet and Leaflet-Geoman ship inside the plugin — no CDN, no API keys, no third-party requests.

What it does

  • A designer in the control panel. Draw rectangles, polygons and circles on a Cartesian plane in metres or feet (Leaflet CRS.Simple + Geoman). Snap to the plan grid and to neighbouring stands, drag, rotate, reshape. Every change saves as you let go.
  • An underlay you can replace. Put the venue's drawing underneath. Areas are stored in plan units, not image percentages, so a new drawing never moves a stand.
  • Areas are elements. Halls, stands and features have titles, codes, their own field layouts per area type, search, the trash, per-site titles, and Craft's slideout editor.
  • The boring parts, done. Surface area, dimensions ("6 × 4 m", even rotated), automatic numbering (Hall A → A-01, A-02…), and which hall each stand is in — derived from where it is, re-derived whenever anything moves.
  • A front end in one call. Labels that appear as you zoom, tooltips, popups (or your own popup template), a legend, search by code or exhibitor, highlighting, and shareable deep links (#hitz=B-07). Everything is a CSS custom property; everything is available as data for your own renderer.
  • Relations both ways. Hitz Plans and Hitz Areas relation fields, and ordinary relatedTo from either end — "the plan, with this exhibitor's stand picked out" is one option.

Pro

  • Availability — available / reserved / booked / unavailable, coloured on the map, in the legend and as index sources.
  • GeoJSON import and export (plan units, round-trippable, upsert by code) and a stands CSV for the sales team.
  • A JSON endpoint (/hitz/plans/<slug>.json) for an event app.
  • Console import/export.
  • Unlimited plans and areas (Lite: one plan, 40 areas).

Install

composer require justinholtweb/craft-hitz
php craft plugin/install hitz

A fresh install creates three area types — Hall, Stand, Facility. Go to Hitz → Plans → New plan, set its size, and open the designer.

Documentation

justinholt.com/plugins/craft-hitz/docs — also in docs/.

Editions

LitePro
PriceFree$79, then $59/year
Plans1Unlimited
Areas40Unlimited
Designer, front end, search, relations✓✓
Availability✓
GeoJSON / CSV / JSON endpoint / console✓

Credits

Built on Leaflet (BSD-2-Clause) and Leaflet-Geoman free edition (MIT). Inspired by Good Work's Donkeytail.

Brought to you by Justin Holt.

Lite

Pro

Plus $59/year after one year.

Installation Instructions

To install this plugin, copy the command above to your terminal.

Reviews

This plugin doesn't have any reviews.

Active Installs
1
Version
5.0.0
License
Craft
Compatibility
Craft 5
Last release
September 29, 2026
Activity (30 days)
0
Closed Issues
0
Open Issues
0
Merged PRs
0
Open PRs