Bookarta

Bookarta — Digital Menus & Online Reservations

B2B SaaS platform I founded and built end to end — digital QR menus, 24/7 online reservations, and AI-powered menu extraction from photos. Live in production at bookarta.es and bookarta.eu with paying customers.

2026Next.js 16SupabaseStripeOpenAITypeScript

Bookarta: Digital Menus and Reservations for Restaurants

Project Overview

Bookarta ↗ is a SaaS platform I designed and built from scratch for restaurant owners who need a professional digital presence without technical complexity. Restaurants get a branded digital menu accessible via QR code, an online reservation system that works around the clock, and a dashboard to manage everything in one place.

The product serves two markets: bookarta.es for Spain and bookarta.eu for the UK, Ireland, and EU — with full internationalisation, locale-aware routing, and separate pricing in EUR and GBP.

Bookarta mobile menu experience

From the restaurant owner's perspective, the workflow is straightforward: sign up, pick one of ten curated design templates, add menu items and categories, configure reservation settings, and publish. A QR code and shareable link are generated instantly. Guests scan the code, browse the menu on any device, and book a table without phone calls or third-party commission fees.

What I Built

Public-facing product

  • Marketing site with pricing, FAQ schema, and conversion-focused landing pages
  • Public menu pages per restaurant (/{slug}) with multi-language menus
  • Online reservation flow with availability rules, party size, and confirmation emails
  • Custom domain support for premium plans (DNS verification via Vercel API)
  • PWA-ready with per-restaurant icons and manifest

Restaurant dashboard

  • Menu editor with drag-and-drop categories and items
  • AI menu extraction — owners photograph their paper menu and OpenAI structures it into categories, items, and prices automatically. The key onboarding differentiator: a full menu goes live in minutes instead of an evening of manual data entry
  • Reservation management with status workflow and Google Calendar sync
  • Plan-based feature gating (Basic, Pro, Premium, Group)
  • Stripe Checkout for subscriptions and billing portal
  • Settings for branding, opening hours, and notification preferences

Platform infrastructure

  • Supabase Auth with Google OAuth and email/password
  • Row Level Security policies isolating each restaurant's data
  • Stripe webhooks for subscription lifecycle events
  • Resend for transactional email (confirmations, reminders, plan changes)
  • Vercel Cron jobs for reservation expiry and reminder emails
  • Sentry for error monitoring across server and edge

Bookarta dashboard on desktop

Technologies Used

  • Next.js 16 (App Router): Server Components for fast marketing pages, dynamic restaurant routes, and API routes for Stripe, cron jobs, and webhooks.

  • Supabase: PostgreSQL database, authentication, and Row Level Security — handling restaurants, menus, reservations, and subscriptions in a single backend.

  • Stripe: Subscription billing with four plan tiers, Checkout Sessions, Customer Portal, and webhook-driven plan updates.

  • Resend: Transactional email delivery for reservation confirmations, reminders, and account notifications in ES and EN.

  • TypeScript + React 19: Strict typing across the full stack, with server actions and modern React patterns throughout the dashboard.

  • Tailwind CSS v4: Design system for both the marketing site and the restaurant dashboard, with ten distinct menu template themes.

  • OpenAI API: Powers the two AI features of the product — automatic menu extraction and structuring from photos, and menu translation into up to five languages for Pro and Premium plans.

  • Sentry: Production error tracking and performance monitoring on Vercel.

  • Vercel: Deployment, edge middleware for locale routing, and scheduled cron functions.

Design and Templates

Restaurants choose from ten professionally designed menu templates — each with its own typography, colour palette, and layout optimised for mobile-first browsing. The templates cover different restaurant styles, from minimalist noir to botanical and elegant fine dining.

Real restaurant menu built with Bookarta — Casa Caturra

Every template renders responsively on phone, tablet, and desktop. Menu items support photos, descriptions, allergens, and price variants. Premium plans unlock custom domains so restaurants can serve their menu at their own URL.

Reservations System

The reservation module lets restaurants define available time slots, maximum party sizes, and advance booking windows. Guests submit requests from the public menu page; the restaurant receives an email and can confirm or decline from the dashboard.

Confirmed reservations sync to Google Calendar via OAuth, keeping front-of-house staff aligned without manual data entry. Automated cron jobs send reminder emails to guests and expire stale pending requests overnight.

Reservation management interface

Internationalisation

Bookarta runs on two domains with locale-aware middleware:

  • bookarta.es — Spanish UI, EUR pricing, Spain-focused SEO
  • bookarta.eu — English UI, GBP/EUR pricing, UK and EU markets

Hreflang tags, alternate URLs, and locale-specific email templates ensure each market gets a native experience. The dashboard and public menus inherit the restaurant's configured languages independently of the marketing site locale.

Architecture Decisions

Separate repos, separate deploys. Bookarta lives in its own repository and Vercel project, independent of this portfolio. The product has its own release cycle, environment variables, and domain configuration — keeping production concerns isolated from personal branding.

Server-first data access. Sensitive operations — Stripe webhooks, reservation mutations, plan enforcement — run exclusively on the server. The Supabase service role key never reaches the client; RLS policies enforce tenant isolation at the database layer.

Plan gating at the source. Feature limits (translation languages, custom domains, number of restaurants) are checked server-side before any mutation, not just hidden in the UI. This prevents plan bypass via direct API calls.

Live Product

Bookarta is in production and accepting restaurant sign-ups:

14-day Pro trial · No credit card required · Setup in minutes