Welcome to Pragmatic.Cooking! The purpose of this site is to help you keep track of your favorite recipes and what is required to cook them. This is not meant to replace your favorite recipe site, but rather to help you keep track of what you enjoy making. Keeping track of recipes and the ingredients you need enables you to know what you can cook with what you have, or helps you plan your shopping list. Get started by browsing recipes on the Recipes page, or creating an account on the Account page.
Key Features:- Knowing what ingredients are needed for a recipe
- Knowing what you can make with each ingredient
- Links to the original recipe
Technical Features:- User authentication using magic links
- Sending magic links to users using the Mailgun API
- Storing JWT tokens in cookies for later use
- Storing content in a Postgres database
- Listing ingredients and recipes from the database using templ
- Adding ingredients and recipes to the database and refreshing the list using HTMX
- Deleting ingredients and recipes from the database and refreshing the list using HTMX
- Preventing users from deleting other users' content
- Preventing ingredients in use by a recipe from being deleted
- A list of recipes owned by the current user displayed on their account page
Future Features:- Options for each ingredient, including price and retailer
- User ingredient option preferences
- Using the Kroger API to get current ingredient prices
- Cost estimates for each recipe, using user ingredient option preferences
- Bookmarked Recipes list on User's Account Page
- Shopping list
- Weekly meal plan
Several of the recipes on this site are from https://pragmatic.recipes. This is another site that I own, but it is a simple static recipe site, whereas this site is designed to keep track of recipes from any website. The sites are related by name and owner, but have a different technical architecture and purposes.
This website was created for the 2025 boot.dev Hackathon. While this site is not in what I would consider a finished state right now, I'll be improving it after judging has concluded.