Tablrr
--role="Co-founder & Engineer"
Rails 8
Hotwire
Turbo Streams
Tailwind 4
PostgreSQL
Solid Queue
Solid Cache
Redis
Stripe
MCP
RubyLLM
Kamal
cat README.md
Rails 8 SaaS for restaurant reservations and menu management. Multi-tenant, with a slot-based availability engine, live floor management over Turbo Streams, AI menu extraction, and two MCP servers written from scratch so external AI agents can run the restaurant as a tool.
cat features.txt
•
Two MCP servers written from scratch rather than pulled from a library — one for restaurant owners (25 tools), one for diners (8 tools) — including the tool registry, token auth, repeat-request protection, audit logging, and stripping personal data out of logs
•
Availability engine working in 15-minute slots, resolving conflicts across tables that can be combined, honouring blackout periods, and locking rows so two people can't be seated at the same table
•
Live floor management over Turbo Streams for walk-ins, arrivals and departures, built so each action sends exactly one update
•
Multi-tenant across 66 tables, with access controlled by restaurant membership across five staff roles
•
Guest records with VIP levels, allergy tracking, phone-based deduplication, a permanent consent history, and GDPR deletion that stays reversible for 30 days
•
AI menu extraction from PDFs and images, forced to answer in a fixed shape, tagging allergens only where the menu marks them explicitly — never guessed from ingredients
•
Guest segmentation rules (visits, last visit, birthday, VIP level, no-shows) turned into database queries to target email campaigns
•
Stripe billing (subscription and lifetime), passwordless email-code login and Google sign-in
•
595 spec files / ~5,800 test examples, plus Sentry error tracking and rate limiting
cat outcomes.log
The largest of the products at ~104k lines of Ruby: multi-tenant SaaS with an MCP layer written from scratch rather than pulled from a library, careful handling of personal data, and a ~5,800-example test suite.
ls screenshots/
10 files · click to enlarge