Venue Seating Wizard — automatic seating charts for weddings and events
Venue Seating Wizard turns a guest list and a room full of tables into a seating arrangement that respects who has to sit together, who would rather not, and how many chairs each table actually has. It is free, needs no account, and runs entirely inside your browser: guest names never reach a server, because there is no server to reach.
How it works
Import your guests and tables from CSV, or add them by hand. Describe the structure that matters — families, the bride's side and the groom's side, colleagues, tables of friends — as nested groups, each with its own cohesion strength. Add seating preferences that point a guest at a particular table, an area of the venue, or another guest. Lock the placements you have already promised. Then run the optimizer.
The solver runs in a Web Worker so the interface stays responsive. It builds a good arrangement greedily and then improves it with simulated annealing over relocate, swap, ejection-chain and group-move neighbourhoods, streaming each improvement into the venue view as it finds it. Every arrangement it reports fits within table capacity; you watch the penalty fall and stop whenever the result is good enough. Export the arrangement as a CSV your venue can print.
What it optimizes
- Group cohesion — a penalty for every extra table a group is spread across, scaled by the group's cohesion strength and the square root of its size.
- Seating preferences — a penalty proportional to how far a guest ends up from the table, area or person they asked to be near.
- Table usage — a small penalty per table used, so the venue prefers fewer, fuller tables.
For agents and developers
The documentation covers the CSV formats, group semantics, the objective function and the export format. The developer portal covers the read-only JSON API: its endpoints, error format, versioning policy and sandbox. Machine-readable descriptions of the same material live at /llms.txt, /openapi.json and /api/v1/index.json, so an agent can prepare a valid guest list without opening the interface. No credential is required — /auth.md explains why.
The source is public at github.com/doodledood/seats-app, where an AGENTS.md tells AI coding agents how the project is laid out and which gates to run, an agent skill under skills/ walks through preparing an import, and a plugin.json bundles both as an Agent Plugin.
Frequently asked questions
- How do I create a seating chart with Venue Seating Wizard?
- Upload a guests CSV and a tables CSV (or add them by hand), describe the groups and seating preferences that matter, then run the optimizer. The solver runs in a Web Worker in your browser and streams improving arrangements into the venue view until it converges or you stop it. Export the result as CSV when you are happy with it.
- Does my guest list get uploaded to a server?
- No. Venue Seating Wizard is a static site with no backend. CSV parsing, optimization and export all happen locally in the browser, so guest names and preferences never leave the device.
- What does the optimizer actually optimize?
- It minimizes a penalty made of three parts: group cohesion (keeping a group together, weighted by its size and cohesion strength), unmet seating preferences (weighted by the distance between tables or from a table to an area), and the number of tables used. Only arrangements that respect every table capacity are ever reported.
- How large an event can it handle?
- The solver is built for real event sizes — hundreds of guests across dozens of tables. It constructs a good arrangement greedily and improves it with simulated annealing, so a usable arrangement appears within seconds and keeps improving while the search runs.
- Can I pin some guests and optimize the rest?
- Yes. Lock a guest to a table and the optimizer treats that placement as fixed while it rearranges everyone else around it.