Share and collaborate on recipes, manage household shopping lists and meal planning, and import recipes from anywhere on the web instantly.
Documentation | Hosted Version | Selfhost Resources
You can access the hosted version of RecipeSage here: https://recipesage.com
You can also selfhost your own copy or RecipeSage (see https://github.com/julianpoy/recipesage#ramen-self-hosting)
All of your recipes in one place, and access them from any device.
Feels native on every device, and can be installed to the homescreen.
Import recipes from any website out there (see RecipeClipper for more info on how it does this).
A built-in meal planner makes it easy to plan your meals. Meal plans and shopping lists can be shared between multiple people!
Meal plans support drag and drop, shopping lists support automatic item categorization.
See the translations section below if you'd like to contribute!
To selfhost RecipeSage, I recommend that you use the preconfigured docker compose files available here: https://github.com/julianpoy/recipesage-selfhost
You're welcome to configure or set up your own selfhost config based on this repository, but you may run into complications. The selfhost repository is setup to be easy to spin up, while this repository is oriented towards development.
RecipeSage is dual-licensed.
For all non-commercial usage, RecipeSage is available for use under the terms of the AGPL-3.0 license.
For all commercial usage, RecipeSage is only available for licensing upon request. You may contact me at julian@recipesage.com to request a license. Pricing for commercial licenses will depend on usage, and all associated fees/proceeds are intended to support the project and community as a whole.
Contributor license agreement.
This allows RecipeSage to continue to provide the hosted instance, as well as license the API to other projects that may not have compatible licenses with AGPL.
When contributing or suggesting code for RecipeSage, you irrevocably grant RecipeSage all rights to that code. See the CLA file in the repo for the complete CLA.
Translations can be contributed via the RecipeSage Weblate instance at https://weblate.recipesage.com which automatically syncs to this repository. You can login there with a Github account and get started translating.
Entirely AI-generated translations are not currently accepted, since they very frequently produce low-quality and inaccurate results. When using AI to assist in your translation efforts, please use DeepL or Google Translate - do not translate using ChatGPT.
Code contributions are always very, very welcome. I'm very open to collaborating, and if there's a feature you'd like to see come to RecipeSage I'd love to help you facilitate that.
Although you don't have to reach out before starting work and contributing a PR, either opening an issue and tagging me (@julianpoy), or commenting on an existing issue is a good idea. I may have suggestions for how to approach the problem, where one might look to implement a feature, or general guidance of how to "fit" the RecipeSage UX.
Below are some notes for getting setup to contribute code.
.env
file in the root of the repository using example.env
as a template. These can be left as placeholders, but the dependent functionality will not work without a real key in place.npm install
at the root of the repo.docker compose up -d
in the cloned repodocker compose exec backend npx prisma migrate dev
localhost
on port 80
packages
directory.trpc
package rather than the backend
package, unless it's an update to an existing behavior that does not merit moving.Backend API tests can be run via docker compose exec backend env NODE_ENV=test POSTGRES_LOGGING=false npx nx test backend
.