Full-Stack Venue & Building Management Platform
Hospitality / Venue Software — Available to License — Built 2024–2026
This is production software, not a demo: a full-stack platform built to run daily operations for a real multi-space venue — restaurant tables, golf simulators, batting cages, banquets, and a full tee sheet — and, as of version 2.0, the building around them: its clients, its staff, its stock, its money, and its know-how. It replaced a paper floor plan, a separate sim calendar, a standalone membership app, a hand-typed invoice for every event, a paper contract for every wedding, a shared drive of forms to print, the weeks of phone calls before every wedding, and a $240/month third-party tee-sheet subscription with one system. Nothing underneath is golf-specific. Table and event booking, booking packages, a full client CRM, a page of their own for every customer's event, event contracts signed online, card payments taken online, invoicing that feeds an accountant's books — exported straight into Sage 50 — membership sales and verification, management reports, privacy tools built to Canadian law, waitlist management, staff management and training, a knowledge base, a document library, staff-scheduling sync, contests, and inventory tracking are all in here, which is why the same platform fits a taproom with event space, a family entertainment center, a private club, or a restaurant that also runs banquets — not just a golf course.
What's built
- Bookings & scheduling: table, golf-simulator, and batting-cage bookings; a lead → inquiry → tentative → deposit_paid → confirmed → in_progress → completed pipeline that lets staff log a call before a date is even chosen; walk-ins seated in a tap — from the list or straight from the live map, across several tables for one group — with the table held for a set time or until it's cleared; rooms a party can have to themselves — closed to everybody else for their hours, the simulators too when they're in that room, and flagged in a coloured reminder to whoever books around them; auto-assignment by party size; per-table buffer time; blackout dates (whole-day or partial); a waitlist with SMS "reply YES" auto-booking; returning-guest lookup; one-click duplicate-booking; booking packages — a wedding or a corporate day set up once with its room, menus, add-ons, event details, deposit, contract and priced options, offered from the booking form or added to a booking later, each booking keeping the prices it was sold at; online simulator booking, paid ahead by card on busy days, that a manager can close for an event and have reopen on its own; a full-screen alert on every host's screen the moment someone books online for today, so the table is ready before they walk in; and confirmations, updates and reminders that a kind of event — a wedding, say — can have in its own words — texts and emails both — choosing which ones its guests get and what they leave out, previewed exactly as they will arrive — and every email the venue sends, from a confirmation to a contract to a password reset, in one branded layout with its logo and colours
- Golf tee sheet: a from-scratch replacement for paid tee-sheet software — a staff tee sheet with drag-to-move, bulk actions and a starter's desk; public tee-time booking with pay-now by card; rates, punch passes and settling up; self-service golfer accounts; tournaments and league draws, with teams entering and paying online and landing on the roster; tournament details and per-hole sponsor sheets on any booking; a cart fleet; member/public booking windows; templates and a template calendar for the season's days; reminders, thank-yous, a frost-delay shift and a golf waitlist; an importer that brings a season across from Tee-On; and reports with pace of play and a member tee sheet
- Real-time floor plan & live view: a multi-floor 2D layout editor feeding a live table-status view — tables move from available to a "cleaning" buffer to booked the moment anything changes, visible to every terminal at once, and shown beside the booking form whenever a booking is made or edited — and two printed run-sheets from it, the kitchen's (timings and food) and front of house's (everything else: contacts, set-up, dietary needs, the customer's own answers, contract status)
- Client CRM & search: a client database that follows each guest across every table, sim, cage, and tee time they've booked, with what they've spent and still owe, tags, a notes timeline, and pinned notes (an allergy, a favourite booth) that appear on the booking form the moment a returning guest's number is typed. Follow-ups land in one shared queue sorted by what's overdue, clients can be tagged, exported, or removed in bulk, and likely duplicates are flagged and combined in a guided merge that keeps every past booking linked — plus one search across clients, membership, bookings, and audit logs
- A page for every customer's event: one private link where the couple sees their booking, signs the contract, pays the deposit and what's left, sends files and reads what the venue wants them to know — every section set per kind of event to hidden, view-only or theirs to change until a set day before the event. A set number of days out, it asks them to confirm their final numbers, dietary needs and anything else the venue asks, and their answers land on the booking marked as the customer's. Balance reminders carrying a pay link, a branded thank-you with the review link the day after, and finished bookings moving to Completed on their own — each switched on by the venue, in its own words
- Invoicing that matches the books: every line of an event's invoice worked out from the booking itself — the room, the menus at the prices written in them, priced event details, add-ons folded into the meal they belong to, and the round on a tournament booking at what nine or eighteen holes cost that day of the week — each carrying the accounting account and tax code it posts to, tax worked out per line and rounded the way the accounting package does it, gratuities and liquor tax added, deposits and payments taken off. Any line can be re-worded, re-priced or left off without touching the booking. An invoices page and a dashboard list show who still owes money and how overdue it is, and the same invoice prints as a quote on the venue's letterhead — GST number, terms and all — to send the client before the official one is made, or as a numbered invoice made out to a company's accounts department with its PO number, and a deposit gets an invoice of its own that turns into its receipt once paid — printed, saved as a PDF, or emailed with the PDF attached and a pay link. Menus can be ordered by the item ("4 × pepperoni pizza"), and after the event, tip-outs are worked out from what the invoice says and tracked until they're paid. The whole thing is opt-in per booking — small events and old ones stay out of it
- Reports and approvals: a management view of any period beside the one before — money invoiced, collected and receipted kept apart, bookings and guests by event type, how many enquiries became bookings and how fast, cancellations and no-shows, deposits still owed, spend per head, the busiest days and hours, and how much each room was in use — every chart downloadable and the lot printable. Refunds, deleted payments, voided receipts, invoice discounts, waived deposits and the like can each be set to wait for a manager's approval, with a threshold and who is trusted to go ahead; approving does exactly what was asked, through the same path, and refuses if anything changed in the meantime. Invoices go into Sage 50 a batch at a time as the import file Sage reads, instead of being retyped
- Privacy first, by CyberConnect IT: a map of every piece of personal information the system holds, why and for how long; everything about a client downloaded in one file or erased in one step — with the financial records the tax rules require kept and the person taken out of them; a public "Your data" form that confirms who is asking before showing anything and never reveals whether someone is a customer, feeding a queue that tracks the 30-day legal deadline; consent to news and offers recorded the way Canada's anti-spam law asks, with unsubscribe handled; and retention rules that tidy old data away on a schedule the venue sets
- Card payments online, and a receipt for every one: one processor account (Elavon) behind a secure pay page — deposits, invoices, simulator time paid ahead, membership sign-ups, ticket sales, tournament entries and one-off amounts — with links staff send from a booking, refunds, and a list of problems to look at. Card numbers never touch the system. Every payment and refund, online or at the desk, gets a numbered receipt, kept for the years the tax rules ask and sent to the accountant as it happens or as a daily, weekly or monthly summary
- Contracts, signed online: the kinds of event that need a contract (a wedding, say) ask for what the contract needs that a booking does not have — the second person on it, the set-up, the agreed guests, the rental and deposit — and a manager's Send Contract emails both people a link to read it and sign it with a finger or a mouse, on a phone or a computer. Nothing goes out by itself; the button then waits a set time (a week to start with) before it can be pressed again, a manager can reset it, and a signed contract is never sent twice. The venue's own contract is the template — Markdown with the booking's details filled in, editable any time without changing a single contract already signed, which is kept word for word with its signatures — and the emails that carry it are written in the venue's own words too. Whether each one is sent, opened or signed shows on the booking, the dashboard lists the ones still to come back (past their sign-by date in red), a signed contract that has to change is withdrawn with its signed copy kept and a fresh one drawn up, and a wedding signed on paper before any of this existed has its tracking turned off
- Memberships, sold and verified: two programs (a course and a simulator side) with their own seasons; barcode scanning at the desk, Excel roster import/export, usage reporting, and a tamper-evident audit trail; a public sign-up form that takes the applicant's details, the terms and waiver, and a signature drawn on screen, which the office turns into a member by recording the payment and its receipt; members renew themselves online and pay by card when they apply; and simulator memberships sold as monthly or three-month packages, each carrying a set number of simulator hours a month — counted from the member's own bookings, enforced when they book online (their days, their hours, their end date), and shown to whoever takes the booking at the desk so a chargeable round is never a surprise on the bill
- Staff management & training: roles that staff follow — edit a role and everyone in it updates — with bulk account edits and a page per employee showing their access, training progress, sign-ins, and activity; money split into separate permissions, so the front desk can record a payment without seeing balances, what's owed or the reminders, and quote a package at its price without seeing what anybody owes; everybody's bookings in their own phone's calendar from a private link; two-factor sign-in, required per person or per role, with front-desk computers remembered so a PIN still works there; staff made inactive and brought back with nothing lost; and accounts that follow 7shifts — new front-of-house and event staff get one, people who leave are switched off; PIN login and self-service password reset; in-app training; and a Guides library of the venue's own how-tos and troubleshooting docs, with photos and video, downloadable as PDF
- Events, ticketing & contests: multi-tier ticketed events sold online with seats held while the buyer pays, plus door sales and check-in, markdown-based buffet/catering menus with per-person add-ons and per-menu head counts, and a QR-code contest-entry system with weighted prize draws
- Documents: the forms, checklists, menus and handbooks a building prints every day, kept in folders in the same system instead of a shared drive — PDFs and Word files read and printed straight from the browser (Word documents are converted on the server, so they read and print just like a PDF), downloaded as they were uploaded, and replaced with a new version without losing their place. Viewing, printing, downloading, uploading, changing and deleting are six separate permissions
- Operations: a card left on file for a group's tab — encrypted at rest, shown in full only to those allowed and recorded every time it is, and deleted on its own a month after the event — an internal change-request workflow, inventory tracking, staff-scheduling sync to 7shifts, post-event payouts with split food and alcohol gratuities and calculated tip-outs, calendar invites, printed booking run-sheets, and a full audit log
- Platform: a public API with per-key rate limits and copy-paste embeddable booking widgets, 18 feature modules toggleable per deployment and enforced server-side — not just hidden in the UI — a granular permission model, a branding system that restyles the whole app (colours, corners, typeface) from Settings, and self-hosted Docker deployment with a test-gated CI/CD pipeline, a page-by-page visual regression check, automated backups downloadable from Settings, and Prometheus metrics with a ready-made Grafana dashboard and alert rules
By the numbers
- ~188,900 lines of production code, ~158,700 lines of test code, 8,054 automated tests
- 148 database tables, 835 API endpoints, 18 toggleable feature modules
- Real integrations: Elavon (Converge) card payments, Sage 50 import files, Twilio SMS, SMTP email, Redis, MySQL, 7shifts (bookings and staff), Excel, QR codes, PDF generation and viewing, Word-to-PDF conversion, calendar invites and subscribable calendar feeds, authenticator-app two-factor, Prometheus/Grafana metrics
- 540 commits over four months of active development, through version 2.4
What it's worth, and what I'm asking
Rebuilt from scratch, 185,000+ lines of tested line-of-business software like this runs $700k–$1.8M at typical agency rates. A comparable stack of commercial subscriptions covering the same ground — event/banquet booking, restaurant reservations, a golf tee sheet, online payments, membership sales and verification, event invoicing, a client portal, staff scheduling — lands around $12k–$24k a year, every year. Priced instead as a perpetual license with the maintenance obligation bought out up front, that typically settles around $120k–$200k.
I'm not asking that. I built this once, for one venue, and would rather see it running somewhere else than sit idle — so I'm offering it to run, self-hosted on your own infrastructure, well below what building or subscribing your way to the same thing would cost. If your business runs on bookings, events, memberships, invoicing, or a tee sheet and the feature list above covers what you need, get in touch and we can talk about what that looks like for your operation.
Last updated 15 October 2026 — management reports; manager approvals; invoices exported to Sage 50; privacy tools by CyberConnect IT (data downloads and erasure, an online request form, CASL consent, retention rules); two-factor sign-in; inactive staff and accounts that follow 7shifts; downloadable backups and Grafana metrics. Earlier the same day: card payments online with a receipt for every payment, the full OpenTee tee sheet, tip-outs, booking packages, customer event pages and follow-ups, numbered invoices and deposit invoices, and front-of-house tools.