Any recipe, any source.

A link, video, photo, or plain text. Norish reads it and turns it into a clean, structured recipe for you and everyone you cook with.

  1. 01

    Import

    A link, a video, a photo or plain text. Norish parses it into a clean readable recipe.

  2. 02

    Plan

    Drop meals onto a calendar shared by your household.

  3. 03

    Cook

    Use cooking mode to remove the clutter and focus on the task at hand.

  1. See all your recipes at a glance

    Have anything planned for the day, see it right on top. Underneath you can view all the recipes you ever saved.

  2. Customise it how you want

    Need to scale the recipe? Use the plus and minus icons for however many servings you need. Is the recipe metric whilst you need US? Let Norish adjust the ingredients.

  3. Need to focus?

    Open the cooking mode, and see the recipe one step at a time. The screen will remain on whilst you are in cooking mode, so no need to worry about your device turning off.

  4. Plan your week ahead

    Drop the recipes you would like to eat onto the calendar your whole household shares. Want to use your own calendar? Let Norish handle the syncing using CalDAV.

  5. A grocery list that learns

    Groceries that went into store 'Y' will go into store 'Y' the next time you need it. When doing groceries with your partner split up, the list stays in sync in realtime.

  6. Keep track of what is in your inventory

    Keep a pantry of what you already have. When you add a recipe to your groceries, your inventory stays off the list, even when the recipe names them in another language.

The Norish home screen: today's planned meals above a searchable grid of saved recipes
A recipe page in Norish, with scaled ingredients beside the steps
Cooking mode in Norish: one step filling the screen, with the ingredients it uses beneath it
The Norish meal calendar, with planned meals on each day and today picked out
A Norish grocery list under one shop, sorted by aisle, with tonight's Chicken Cacciatore on it
The Norish Pantry: the foods the household already has, each with its icon

Features

A recipe manager first, and then rather a lot more. All of it arrives in the same container; open whatever you are curious about.

Importing recipes

5
  • From a link

    Websites, blogs and recipe apps. Norish turns the structured data into a clean recipe, no clutter.

  • From a video

    YouTube, Instagram, Facebook and more. When a video has no audio, Norish reads its description instead.*

  • From a photo

    A screenshot, a page of a cookbook, a card in someone's handwriting. Up to ten photos are combined into a single recipe.*

  • From pasted text

    Free text or raw JSON-LD. Useful when a site will not cooperate and you can still copy what is on it.

  • Filled in afterwards

    Tags, meal categories, cuisines, allergens and provenance are worked out in the background once a recipe lands.*

Cooking and planning

8
  • Cookbooks

    Group recipes into cookbooks of your choosing, each with its own cover: the weeknight dinners, the Christmas baking, everything out of your grandmother's book.

  • Cooking mode

    Step-by-step and easy on the eye, with timers where the step needs them, quantities already scaled, and a screen that stays awake.

  • Linked ingredients in steps

    A step can carry the ingredient lines it uses and how much of each, like half the water or three of the five eggs. Scaled the recipe? The linked ingredients scale along.

  • Scaling and units

    Set the servings and every quantity re-does itself. Metric and US measurements swap with one tap, or automatically as a recipe opens.

  • Nutrition

    Calories, protein, carbs and fat per serving, calculated from food databases such as CIQUAL and USDA FoodData Central.

  • Plan together

    Drop recipes onto the calendar your household shares, or sync it to your own calendar over CalDAV.

  • Real-time, always

    Edit a recipe, tick an item, plan a recipe. The whole household sees it on every device, no refresh needed.

  • Works even when offline

    Your fifty most recent recipes, all groceries and the current calendar window stay on the device. Changes you make offline queue up and replay themselves when you come back online.

Groceries and pantry

3
  • Shop together

    One shared list, sorted by aisle, with recurring items and prices from the shop you use.

  • Pantry

    Keep track of what is already on the shelf. Adding a recipe to your groceries leaves those ingredients off the list.

  • Ingredient catalogue

    Ingredients are matched to foods from Open Food Facts, with an icon beside them. The pantry still recognises a food when a recipe names it in another language.

Running it

5
  • Bring your own AI or use the cloud

    OpenAI, Anthropic, or Ollama and LM Studio on your own machine. Use the model you like how you like.

  • Auth how you like it

    Any OIDC provider such as Authentik, Pocket ID, GitHub, Google, or plain email and password.

  • Fifteen languages

    English, Nederlands, Deutsch, Français, Español, Italiano, Português, Polski, Dansk, Norsk, Suomi, Русский, Українська, Български and 한국어, translated by the community.

  • Installs like an app

    Add Norish as a PWA and use it just like an app.

  • Native appssoon

    iOS and Android, on the same household you already share.

* Needs an AI provider, which you bring and configure yourself.

Your recipes, your server

Norish is free and fully open source under the AGPL-3.0 license. Run it on your own hardware with Docker: no subscription, no account with us, nothing to migrate away from later.

AGPL-3.0Self-hostedOne Docker command

docker-compose.yml
services:
  norish:
    image: norishapp/norish:latest
    restart: always
    ports: ["3000:3000"]
    volumes:
      - norish_data:/app/uploads
    environment:
      AUTH_URL: http://localhost:3000
      DATABASE_URL: postgres://postgres:norish@db:5432/norish
      MASTER_KEY: <openssl rand -base64 32>
      REDIS_URL: redis://redis:6379
      OBSCURA_ENDPOINT: ws://obscura:9222
      OBSCURA_CDP_TOKEN: <openssl rand -hex 32>
    depends_on: [db, redis, obscura]

  db:
    image: postgres:17-alpine
    environment:
      POSTGRES_PASSWORD: norish
      POSTGRES_DB: norish
    volumes:
      - db_data:/var/lib/postgresql/data

  redis:
    image: redis:8.10.1
    volumes:
      - redis_data:/data

  # Renders recipe pages for URL imports
  obscura:
    image: norishapp/obscura:0.2.4-norish.1
    environment:
      OBSCURA_CDP_TOKEN: <openssl rand -hex 32>

volumes:
  db_data:
  norish_data:
  redis_data:

Generating a unique secret key in your browser…

Keep your recipes yours.

A few minutes to set up, and everyone you cook with has one clean place to cook from.