Visit the site

Visit the site

Organizations Involved

TableIn is a restaurant reservation and management platform used by venues and guests worldwide. The product combines a back-office application for restaurant staff with a public portal where diners search locations and book tables online. As user volume grew on the existing Drupal 7 foundation, the platform needed performance recovery, new commercial features, and a decoupled guest experience built on REST APIs and a React frontend.

About the project

TableIn is a restaurant reservation and management platform used by venues and guests worldwide. The product combines a staff application for calendars, subscriptions, and venue settings with a public portal for search and online table booking. Implementation work focused on stabilizing a high-traffic Drupal 7 backend, extending commercial features, and delivering a decoupled React experience for end users.

The client

TableIn serves restaurants that manage bookings, table layouts, opening hours, and guest communications from one system. Diners use the public site to find venues by location, filter results, and reserve tables without calling the restaurant. The platform supports multiple account roles (manager, sub-manager, waiter), integrations with payment and marketing tools, and more than 20 language versions for international growth.

Challenge

The platform needed to:

  • Restore acceptable response times as active users and booking volume increased on the existing Drupal 7 codebase.
  • Add subscription plans, recurring billing, and payment gateway connections including PayPal Express Checkout.
  • Launch a separate guest portal with fast search, filters, and mobile-friendly booking flows.
  • Serve accurate table availability during peak periods when cached stale data would show free tables that were already booked.
  • Continue shipping UI improvements, reviews, loyalty features, and notification workflows without blocking daily operations.

Solutions

Performance analysis, refactoring, and caching

The implementation team reviewed slow paths in the Drupal codebase, refactored selected components, and tuned database queries and server request patterns. A caching and indexing strategy balanced Drupal's strength at serving cached pages with the need for current availability during busy service hours. Turnaround times for some requests dropped by up to nearly a minute after optimization.

REST API on Drupal 7 for decoupled booking

Custom REST endpoints on the Drupal backend expose restaurant metadata, opening hours, photos, categories, and live availability to a React single-page application. The same API accepts reservations created in the browser and writes them into the core booking engine, so guest-facing and staff-facing data stay in sync.

React guest portal for search and booking

A React frontend delivers the public portal: homepage, location-based search, result filters, and restaurant detail pages with galleries and reviews. The component-based UI supports large restaurant lists and frequent iteration as TableIn adds markets and features. Mobile-first interaction patterns match how guests book on phones during evenings and weekends.

Commercial features and integrations

Development extended the platform with subscription plans, automatic recurring payments, and connections to Stripe, PayPal Express Checkout, Paysera, MailChimp, MailerLite, and other services. Staff tools cover table layout wizards, exception handling for holidays, SMS and email notifications with customizable content, CSV export, and dashboard statistics per venue.

Result

The platform runs markedly faster despite continued user growth. The production guest portal at tablein.com drives rising online bookings, and diners can locate restaurants and complete reservations through filters and preferences without phone contact. TableIn remains competitive in the restaurant booking market with ongoing feature delivery on the Drupal and React stack.

Examples of implemented features:

  • REST-backed React portal for restaurant search, filters, and online table booking.
  • Performance tuning that cut some request turnaround times by up to nearly a minute.
  • Subscription plans with automatic and recurring payment support.
  • PayPal Express Checkout, Stripe, and Paysera payment integrations.
  • Table layout and room visualization wizard for venue staff.
  • Reviews module, loyalty program, and rating-based restaurant ranking.
  • Role-based access for managers, sub-managers, and waiters.
  • SMS and email notifications with customizable templates.
  • Support for more than 20 language versions across the platform.
  • CSV export of customer and booking data for restaurant operators.

Why Drupal was chosen

TableIn already ran its reservation engine on Drupal 7, with restaurant profiles, booking rules, role-based access, and operational workflows in one codebase. Rebuilding that logic on another platform would have delayed fixes and new features while traffic was growing.

Drupal's entity model, REST support, and extensibility let the team expose booking and restaurant data to a React guest portal without duplicating business rules. Custom endpoints could return live table availability, accept reservations from the browser, and stay aligned with the back-office calendar. Targeted caching and query tuning addressed performance limits while keeping data accurate during peak booking windows.

TableIn homepage hero with the headline "Table booking system for smart restaurants", online reservation features, and Try it free call-to-action on the public booking platform.

Technical Specifications

Drupal version: