Complete Index
Recipe library
Every dish the planner draws from: {RECIPES.length} tested recipes across {CUISINES.length} cuisines. Search by ingredient (try “chickpeas” or “gochujang”) or filter strictly to the appliances in your kitchen.
import type { Metadata } from "next"; import { RecipeBrowser, type RecipeSummary } from "@/app/components/RecipeBrowser"; import { SiteHeader } from "@/app/components/SiteHeader"; import { CATALOG_BY_ID } from "@/app/lib/catalog"; import { CUISINES } from "@/app/lib/plan"; import { RECIPES } from "@/app/lib/recipes"; export const metadata: Metadata = { title: "Recipes", description: `Browse all ${RECIPES.length} budget-friendly recipes across ${CUISINES.length} cuisines.`, }; const SUMMARIES: RecipeSummary[] = RECIPES.map((r) => ({ id: r.id, title: r.title, description: r.description, cuisine: r.cuisine, kind: r.kind, styles: r.styles, appliances: r.requiredAppliances, prepTime: r.prepTime, ingredientText: r.ingredients.map((i) => CATALOG_BY_ID.get(i.itemId)?.name ?? i.itemId).join(" ").toLowerCase(), })); export default function RecipesPage() { return (
Complete Index
Every dish the planner draws from: {RECIPES.length} tested recipes across {CUISINES.length} cuisines. Search by ingredient (try “chickpeas” or “gochujang”) or filter strictly to the appliances in your kitchen.