31 lines
1.2 KiB
Org Mode
31 lines
1.2 KiB
Org Mode
* 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.
|