Grain of Salt (Work in Progress)

A recipe app with version control

Link Source

This application is meant to make developing recipes and tracking experimentation organized. No more scribbling in the margins of a recipe. Each recipe is a node on a graph. The nodes contain only the changes to a recipe. The recipes that the user sees are built from the node’s and its ancestor’s changes.

My friends asked for an app they could share recipes on and make tweaks to each other’s recipes. A coworker of mine also made the statement that the real trick to improving a recipe read online is to look at the comments for necessary changes. This is an attempt to implement those ideas.

Technologies used:

  • React Svelte
  • Next.js
  • Dexie.js (IndexedDB wrapper) Supabase

9/14/2026

This is back and progress, currently deployed, and very useable. I’d describe this as in alpha right now. Rough around the edges but users are able to log in, add some recipes or use the seeded recipes, view the recipes as graphs, make changes to their recipes, etc.

This is also creeping into making a recipe site that has all the features I wish others had.

For example, inline amounts for ingredients. So many recipes has a line like “Add sugar to bowl” in it, and you’re left to go back to the top of the recipe to look at how much sugar it calls for. For this, I’m adding ingredient references to recipe directions.

Another one, not currently implemented but planned, is a substitution list. Sometimes you don’t always have what you need for a recipe so you have to go searching for potential substitutes if the recipe doesn’t call one out. Given the data structure of the recipes, users should be able to look at substitutes any other user has added to a recipe. Say a recipe calls for a large shallot, but one of the recipe node’s children has a substitute change on the shallot ingredient for half an onion instead. We can crawl the recipe graph looking for substitute changes looking substitutes changes that target the onion ingredient and display them at the current recipe node for the user.

The last month I’ve been working on this has been exciting because of the progress and the greenfield-ness of the project. Being able to setup proper CI/CD pipelines and having supabase do all the backend work instead of having to manage a vps to host everything like I did on GreekUtils has been so nice. I’ve been improving my AI assisted development process, but it still gets frustrating.

I need to sit down and write a devlog for this.

Backburner-ed for now, as of 12/2025

I almost want to expose some sort of git-diff-branch like frontend for editing the recipes. This is borderline what I was doing just with red and green colored divs showing additions, replacements, and removals for ingredients and directions. The recipes would be in plain YAML just to avoid an overcomplicated ui. I’ve heard somewhere that text files are the best ui.