Inspiration

Restaurants spend countless hours creating, updating, translating and maintaining their menus.

A menu changes constantly. Dishes change, prices change, seasonal items appear, new languages are needed, and customers increasingly expect a fast and accessible digital experience.

Yet most digital menus are still essentially static PDFs or simple QR pages.

We wanted to build something different.

SaCarta started with a simple question:

What if a restaurant could have an AI employee dedicated to its menu?

Instead of manually rebuilding a menu every time something changes, SaCarta lets restaurant owners provide their existing content and uses AI to structure it, write descriptions, translate it, analyze it and continuously suggest improvements.

That idea became SaCarta, an AI-native digital menu platform built for restaurants, hotels, bars, beach clubs and coffee shops.

What it does

SaCarta turns a restaurant's menu into an intelligent digital experience.

Restaurant owners can upload their existing menu and use AI to:

  1. Import their menu and transform unstructured content into structured categories and dishes.
  2. Build polished menu content with AI-generated descriptions.
  3. Translate their menu while preserving culinary context.
  4. Optimize their menu through AI-powered analysis, insights and recommendations.
  5. Manage their restaurant through an AI Copilot that can interact with the menu using natural language.
  6. Help customers discover dishes through an AI-powered assistant.

The result is more than a QR code.

It is a menu that understands its content, helps its owner improve it and helps customers discover what to order.

How we built it

We wanted SaCarta to be a real SaaS product rather than a standalone AI demo.

The frontend is built with React, TypeScript and Vite, with Tailwind CSS and shadcn/ui providing the design system.

Supabase provides the core backend infrastructure, including PostgreSQL, authentication, storage and Edge Functions.

For longer-running AI menu imports, we use Vercel serverless functions with a step-based process that allows complex imports to be processed reliably.

One of the most important architectural decisions was separating the AI layer from the rest of the application.

The AI functionality is organized into a dedicated package containing agents, pipelines, tools, providers and validation schemas. This allows AI-powered features to evolve independently from the rest of the application and keeps the product architecture modular.

The platform also integrates Stripe for subscription billing and Resend for transactional email.

AI Architecture

SaCarta uses AI where language understanding and reasoning provide real value, while deterministic application logic remains responsible for structured business operations.

AI handles tasks such as:

  • Menu understanding and import
  • Description generation
  • Translation
  • Menu optimization
  • Recommendations
  • Business insights
  • Restaurant owner interactions
  • Customer interactions

Deterministic logic handles:

  • Authentication
  • Permissions
  • Persistence
  • Billing
  • Menu state
  • Business rules
  • Data validation

Generated AI data is validated before it reaches the application, creating a clear boundary between probabilistic AI output and structured business data.

This was important because a restaurant menu is not just text. It contains prices, categories, availability, languages and other information that must remain consistent.

Challenges

One of our biggest challenges was integrating AI into a product that manages structured business data.

Generating a description is easy. Making sure an AI system can safely interact with a restaurant's structured menu is much harder.

We therefore designed the AI layer around clear boundaries between AI generation and deterministic business logic.

Another challenge was processing larger menu imports reliably. A restaurant may upload a complex menu containing many dishes and images, so the process cannot simply be treated as a single short request.

We built the import process as a step-based pipeline using serverless infrastructure so that larger operations can be processed reliably.

We also wanted the AI experience to feel simple despite the complexity underneath it. Restaurant owners should not need to understand models, prompts or pipelines. They should simply be able to tell SaCarta what they want and get a useful result.

What we learned

The biggest lesson was that AI becomes much more valuable when it is integrated into an existing workflow instead of being presented as a standalone chatbot.

We also learned that AI-generated content needs strong boundaries when it interacts with structured business data.

A restaurant menu is not just text. It contains prices, categories, availability and other information that needs to remain consistent.

Building SaCarta forced us to think about AI not just as a model call, but as an actual product architecture.

We also learned how important UX is when introducing AI into a business workflow. The complexity should stay behind the scenes while the user experiences a simple and intuitive product.

What's next

SaCarta's long-term vision is to become the AI operating system for restaurant menus.

The current platform provides the foundation for restaurants to create, manage, translate and optimize their menus, while the AI layer can continuously help restaurants improve their digital presence and customer experience.

The goal is simple:

Give every restaurant an AI employee that understands its menu.

Built With

  • ai-agents
  • ai-copilot
  • deno
  • document-processing
  • generative-ai
  • llm
  • multilingual
  • ocr
  • opencode-zen
  • pdf
  • postgresql
  • qr-code
  • react
  • resend
  • restaurant-technology
  • saas
  • shadcn/ui
  • stripe
  • supabase
  • supabase-edge-functions
  • tailwind-css
  • typescript
  • vercel
  • vite
  • zod
Share this project:

Updates

Submission history