The Sports Bar Co.
A full-stack reservations and events platform for sports bars - live scores across seven leagues, table booking, a live events calendar, and a party inquiry form. Built for owners who want a custom web presence without paying OpenTable's per-cover fees or being locked into a generic site builder.
The Problem
Sports bars run on events - game days, watch parties, private buyouts - but most manage reservations by phone and promote events through Instagram stories that disappear after 24 hours. OpenTable charges a per-cover fee on every booking and isn't built for the event-driven nature of sports bars. Generic site builders handle neither reservations nor events well, and leave the owner dependent on a platform they don't control. The goal was a custom site that makes reservations and events first-class features - one the owner controls completely, with no monthly platform fee and no commission per booking.
Try It
Previewing at tablet width. Open the full site ↗ for the desktop experience. Also fully optimized for mobile.
You're on mobile - open the full site ↗ for the best experience. Any display issues are caused by the embed, not the site itself.
Live Scores
Seven leagues - NFL, MLB, NBA, NHL, CFB, CBB, and MLS - pulled live from ESPN's official API. The "What's On" board shows how many games are live right now, how many are coming up today, and a live countdown to the next tip-off. Guests can filter by day (up to 7 days ahead) and by sport. The board pulls fresh data on every load with no page refresh needed.
What's Live Today
The homepage surfaces what's happening at the bar right now - games currently on, upcoming tip-offs, and the day's full schedule at a glance. Built to give guests a reason to check the site before they show up.
Happy Hour & Events
A live countdown to happy hour and a weekly events calendar pulled from Supabase - so the site always reflects what's actually happening at the bar that week. Recurring events (Trivia Night, Wing Night) always appear; one-off events like playoff watch parties or live acts drop off automatically the day after they pass. Private party and buyout inquiries come through a dedicated form routed straight to the owner's inbox - no lead sits unread in a platform dashboard.
Menu
The full menu with client-side category filtering - guests can browse by section without a page reload.
Mobile Experience
Client
Technical Implementation
Reservation Flow
Table reservations use a date/time/party-size form that validates required fields before writing the booking to Supabase. On confirmation, Resend fires a transactional email to the guest with their booking details. The owner sees all incoming reservations in the database without needing to check a third-party platform or pay a per-cover fee. Reservation data stays in a Supabase table the owner controls outright.
Events Calendar
The events page fetches live from a Supabase table via the webplatform-api. Recurring events (Happy Hour, Trivia Night, Wing Night) have no date and always appear. One-off events - a watch party for a specific playoff game, a live act on a specific Saturday - include a date and are automatically dropped from the public page the day after they pass. The owner adds or cancels events directly in the database, no code required.
Party & Buyout Inquiries
Private party and buyout leads come through a dedicated inquiry form separate from the table reservation flow. Submissions are written to Supabase and simultaneously routed to the owner's inbox via Resend, so no lead sits unread in a platform dashboard the owner has to remember to check.
Menu & Games
The menu page uses client-side filtering - all menu data loads into the DOM once, so category filtering is instant with no additional API call. The games page pulls from four live sports data sources covering seven leagues: the NBA CDN, the NHL API, the MLB StatsAPI, and the ESPN scoreboard API for NFL, MLS, CFB, and CBB. The webplatform-api normalizes all responses into a single unified format, so the frontend works the same regardless of which sport is in-season. For sports currently in their offseason, the page displays a dedicated banner with the most recent champion pulled from The Sports DB - so the schedule is never blank, and the page stays informative year-round.
Frontend Architecture
The frontend is built in vanilla HTML, CSS, and JavaScript with no framework. All dynamic features - live game scores, event listings, reservation submissions, the open/closed badge, and the happy hour countdown - connect to the webplatform-api, a shared multi-tenant Express backend also built for this suite. The sports bar routes run alongside bakery, inn, salon, and wellness routes on a single deployed API, with platform-level routes registered before tenant middleware so they resolve without a domain lookup. CSS custom properties handle theming; the mobile nav includes a backdrop-filter workaround to ensure the overlay covers the full viewport consistently across Chrome and Safari.
SEO
Schema.org BarOrPub JSON-LD structured data on the homepage with full address, hours, contact details, cuisine, and founding date. Verified passing in Google's Rich Results Test.
The Outcome
A sports bar web presence that handles reservations, promotes events, and captures private party leads - all in one place, at a fraction of what off-the-shelf reservation platforms charge. The owner controls everything: add an event, update the menu, check incoming bookings - no developer required and no monthly platform fee. Designed and built solo. Part of the Small Business Platform Suite.
Need a website for your business? I take on select freelance web projects.
Let's talk →