* Roux Roux is a personal/family recipe management site. It's intended to be low friction for entering recipes and tracking when you've cooked them. ** Cooklang Roux uses Cooklang (https://cooklang.org/) as a source of truth for all recipe content. Any recipe either starts in Cooklang or is immediately converted to Cooklang by one mechanism or another. ** Other details *** Cook history Roux lets you track when you cook recipes. I like this because we cook a lot of different recipes and I like to be able to go back to find things I liked in the past so I don't forget about them. ** Technical details *** Development environment Docker is used for all development tools. Nothing is required to be installed on the local machine except Docker. *** Backend API: Haskell + SQLite *** Frontend: Static HTML + Pico CSS The actual backing for recipes themselves is a single cooklang directory with an in-process search index that gets rebuilt whenever a file is added to the directory. *** Project structure: **** cooklang-hs A Cooklang parser written in Haskell. **** roux-server The webserver for Roux. Parses Cooklang files on disk, indexes them, renders HTML templates for presenting recipes.