Welcome to the Jose Madrid Salsa developer docs — explore features, APIs, and deployment guides.
Jose Madrid SalsaJMS Docs

Recipes

The recipe catalogue behind /recipes — fields, tags, and how recipes get indexed.

Recipes

Recipes are first-class content with their own public pages at /recipes, their own SEO template, and their own sitemap entries.

The model

FieldNotes
titleUnique
slugUnique — the public URL
descriptionRequired
category, difficultyFree-text classification
prepTime, cookTimeStored as strings ("20 min"), not durations
servingsInteger
ingredients, instructionsString arrays, ordered
featured, featuredImageHomepage and listing placement
metaTitle, metaDescription, ogImagePer-recipe SEO overrides

RecipeTag provides the tag join for filtering.

prepTime and cookTime are strings on purpose — they are display copy, not arithmetic. Do not parse them into minutes without changing the column.

Seeding

npm run db:seed:recipes    --workspace @jose-madrid/storefront
npm run db:seed:nutrition  --workspace @jose-madrid/storefront

API

/api/recipes serves the catalogue for the public pages.

Search indexing

Recipe URLs are built into the sitemap from Prisma in app/sitemap.ts. Metadata falls back to SeoConfiguration.recipeTitleTemplate / recipeDescTemplate when metaTitle / metaDescription are empty. Hold the overrides to 30–60 characters for the title and ≤160 for the description — the same limits enforced for blog posts.

How is this guide?

Edit on GitHub

Last updated on

On this page