My events team had been complaining about layout software for years. Floorplans, table counts, where the bars go, where the band goes, where the buffet lands when the client moves the head table the week of.
We tried the tools everyone tells you to use. @cvent Prismm. Allseated before it. A couple others in between. Same story every time: expensive, limiting, annoying, and somehow still not built around how a real catering and events operation works.
Here is the thing nobody building those tools seems to understand. For us a layout is not a pretty diagram. It is an operational document. The floorplan has to know how many guests, which tables seat how many, how many servers that headcount needs, where the kitchen stages out of, whether the room actually holds the count with a dance floor. We run events across a stack of venues, and every venue has its own walls and its own rules. The off-the-shelf tools draw circles for tables. They do not know any of that. So my team would build the layout in one tool, then re-key half of it into a proposal, then re-key it again for the staffing sheet. Three versions of the same event, none of them talking to each other.
And every year the invoice went up to keep doing it badly.
So I built ours.
It runs in the browser on an HTML5 canvas, drawn with Konva. No heavy 3D, no enterprise login wall, just a fast 2D editor that opens on a laptop in the office and on an iPad on the venue floor. It detects a touch device and swaps to finger-sized drag handles so a coordinator can move a table standing in the actual room. The whole editor is one file I can hold in my head, a few thousand lines of plain JavaScript, no framework I have to fight.
The part the rented tools could never do is the venues. Each one is a real floorplan, not a stock rectangle. I took the surveyed linework from each venue's original master drawing and rendered the actual walls, registered to the real scale, with a 20-foot bar on every sheet so the specialists have a true size anchor. When you drop a 60-inch round it knows it seats eight; a 72-inch round seats ten. Kings tables, banquets, highboys, the wood tables specific to one venue, the prep racks and ovens behind the catering line — that is my team's real equipment list, scoped per venue, so you only see what that room actually has. Drop a table and the seat count tallies. Lay a ceremony arc and it does the geometry to fan the chairs and hold your target count. It even draws the two-and-a-half-foot clearance lanes my team asked for, so nobody designs a room you physically cannot walk.
And it is the same system underneath the proposal. Every event carries one identity, an event number, and that number is what ties the layout to the rest of the event. The headcount you build on the canvas is the headcount that drives the staffing and feeds the proposal. Nobody re-keys anything. Save it and it syncs to the team off that event number. The coordinator who opens it tomorrow on the floor is looking at the same room you priced.
The part that surprised me was not that I could build it. It is how much better it got just because it was built around us instead of the average of every events company in the country. Prismm has to work for a hotel ballroom in Dallas and a wedding barn in Vermont, so it works for nobody in particular. Ours only has to know our rooms, our tables, our rules. That is the whole advantage.
This is the realization I keep landing on with every one of these. I had all the tools. I was paying for all of them. And I still felt like I was working around the software instead of the software working around me. The layout tool was just the clearest case, because the gap between what my team needed and what we were renting was so wide.
I am not buying niche software again. Not the layout tool, not the next one. When my team tells me the thing they pay for does not fit how they work, that is not a complaint anymore. That is a spec. I would rather build the thing that fits than keep renting the thing that almost does.
The events team stopped complaining. That is how I know it worked.