View & manage bookings, seat tables, take walk-ins, notify waitlist. Read-only on settings.
Frozen / Revoked
No login. Revoked accounts can be deleted. Frozen accounts can be reinstated.
Access log
Last 100 login and account management events.
Click Refresh to load.
— parties waiting
No one on the waitlist
Track features, bugs, and ideas across the venue tooling. Click any card to cycle status.
Manage your venue, team, and reservation rules
Appearance
Choose a palette and theme. Saved per device.
Palette
Theme
Venue details
Core venue identity, booking cadence, and the operational defaults that shape both guest and staff experiences. Owner-only — unlock via the PIN in Security & data tab to edit.
Require Admin Mutation API
If enabled, booking/staff mutations are blocked when Admin API is offline (no direct DB fallback).
Push notifications
Browser notifications
Off
Enable to receive instant alerts on this device when bookings arrive
Per-device setting. Enable on each device you want alerts on. Staff can enable independently on their own devices.
Install app
Add Tenkomori to home screen
Checking install availability on this device...
Email - Resend
Emails are sent via the venue-email Cloudflare Worker. Your Resend API key is stored as a Cloudflare Worker secret, never in the browser. No extra config needed here.
Auto-send triggers
Email guest when booking confirmed
Email venue when online booking submitted
Email guest when booking rejected/cancelled
Email guest when assigned section differs from preference
Edit lock
Security and data controls are locked by default so staff cannot change production settings by accident. Set a local PIN on this browser, then unlock before editing.
Locked
Security & Observability
Secure the public booking flow, control fallback behavior, and connect diagnostics only where they add operational value.
Public booking requests can be routed via this worker for rate limiting and captcha verification.
Require secure booking API
If enabled, booking form blocks direct DB fallback when secure API is unavailable.
Service rhythm
How fast bookings flow in, when they're locked out, and how the dashboard reads the night.
Deposit tools
Allow staff to request and manage deposits from booking details.
Rolling blockout
Block online bookings within X minutes of the requested time
Service seatings
Drives the Service progress card on the dashboard. A seating goes Live at its start, and Approaching when the lead-time window opens before it.
Closures & blockouts
Days, weeks, and time windows that override the booking rhythm — one-off shutdowns, weekly off days, public holidays, and short blackouts.
Weekly recurring closures
Days of the week you are always closed.
Recurring annual closures
Public holidays and annual closures — set once, blocked every year automatically.
Date blockouts
Block all bookings on specific dates (public holidays, private events).
Time blockouts
Block a time window on a specific date (e.g. fully booked 17:00–18:30). Both the start and end times are inclusive — a 5:30–7:00 PM blockout blocks the 7:00 PM slot too.
Customer booking page
Keep public booking guidance concise, reassuring, and easy to acknowledge on mobile. Owner-only — unlock via the PIN in Security & data tab to edit.
Used by the live customer booking page header so public service hours can be hot-updated without editing code.
Tonight's special
Drives the JP-stamped photo caption on the public booking page (本日 · TONIGHT). Maintain a list of menu items, then quick-swap which one shows tonight from the dropdown.
One per line. The active pick below populates from this list.
Calendar sync
Subscribe to a live calendar feed so confirmed bookings appear automatically in Google Calendar or Apple Calendar. Updates arrive every 15 minutes. PIN-locked because the worker URL is sensitive.
Setup: Deploy venue-calendar-worker.js as a new Cloudflare Worker named venue-calendar, add SUPABASE_SERVICE_KEY (service role key) as an env var, then paste your Worker URL in Settings below and save.
Google Calendar API push
Direct push to Google Calendar gives instant sync with no cache delay. Run once after setup, then all changes push automatically.
Data
Back up, import, and reset operational data carefully. These tools are powerful and should stay legible, not alarming.
Export
Import
Use Import bookings to add bookings from a formatted JSON file (new + merge, no duplicates).
Use Restore full backup to replace all data from a previous export.
Service hours
Per-day lunch and dinner windows. Toggle a daypart off to mark it closed.
Holidays & exceptions
One-off closures and reduced services that override the weekly pattern.
Current plan
Self-hosted · Free
Cloudflare Pages + Supabase. No SaaS subscription — you only pay for the underlying services.
Recent invoices
Aggregated monthly summaries from your provider dashboards.
Quick walk-in
Record a walk-in for cover tracking. No booking confirmation sent.
2
Add to waitlist
Notify customer
Sends an email when an email address exists. Phone-only entries open this device's SMS composer; there is no automated SMS gateway yet.
Request deposit
Mark deposit received
Import bookings
Select a bookings-import.json file. Duplicates are skipped automatically.
↑
Click to select file or drag & drop
bookings-import.json
Preview — bookings to import:
Booking
Guest profile
Loading…
Decline booking
—
Heads up: this booking has no email address (or guest email is disabled). The status change will still be saved, but no email will be sent.
Leave blank to send the standard rejection/cancellation email. Newlines and special characters are escaped automatically.