A monorepo for recipe extraction tools and services. Supports both single-tenant (self-hosted) and multi-tenant (SaaS) deployments.
kitchenmate/
├── apps/
│ └── kitchen_mate/ # FastAPI backend API
│
└── packages/
└── recipe_clipper/ # Recipe extraction library + CLI
Python library and CLI tool for extracting recipes from websites using recipe-scrapers for broad website support, with optional LLM-based fallback parsing.
FastAPI backend that wraps the recipe-clipper library, providing HTTP endpoints for recipe extraction with support for multiple output formats.
This repo uses uv for dependency management.
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install all dependencies
uv sync --all-extrasuv run --directory packages/recipe_clipper recipe-clipper <URL># Development server
uv run --directory apps/kitchen_mate uvicorn kitchen_mate.main:app --reload
# Using Docker
docker compose up --buildKitchen Mate supports two deployment modes:
Run your own instance with no authentication required. All features are available to anyone with access.
# No Supabase configuration needed - just run the app
docker compose up --buildDeploy as a multi-tenant service with Supabase authentication. Public features (clip, export) work for everyone; user-specific features require sign-in.
# Set Supabase environment variables
export SUPABASE_JWT_SECRET="your-jwt-secret"
export VITE_SUPABASE_URL="https://your-project.supabase.co"
export VITE_SUPABASE_ANON_KEY="your-anon-key"The mode is determined automatically by whether SUPABASE_JWT_SECRET is set.
# Library tests
uv run --directory packages/recipe_clipper pytest
# Backend tests
uv run --directory apps/kitchen_mate pytest