jbrechtel 1b7f7b61aa
Build and Deploy / build-and-deploy (push) Successful in 1m40s
fix: tighten typography, fix parser brace leak, polish UI
- Drop italics on cookware/timer tags — they were over-emphasizing
  roughly a third of step text. Now plain with slight opacity.
- Fix parser bug: @salt{large pinch} braces no longer leak through
  as raw text. Non-numeric quantities are consumed silently,
  ingredient appears without displayed quantity.
- Remove duplicate '\342\206\227 Original' link from marginalia SOURCE block.
  Title-adjacent link is sufficient.
- Add tags to marginalia column for visual balance.
- Constrain content to 1120px max-width for a printed-cookbook feel.
- Add .container h2 CSS specificity override to beat Pico CSS defaults.
  Section labels (INGREDIENTS, METHOD) now properly render in Fraunces.
- Switch navbars from <div> to <nav> so Pico's own nav ul{list-style:none}
  suppresses gray square bullets. Add explicit li{list-style:none} override.
- Constrain content to 1120px max-width so parchment frames the page.
2026-05-20 22:31:23 -04:00
2026-05-19 23:05:58 -04:00
2026-05-20 12:55:21 -04:00
2026-05-18 22:00:30 -04:00
2026-05-19 07:25:59 -04:00

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.

S
Description
A recipe management site
Readme 1.8 MiB
Languages
HTML 82.5%
Haskell 15.7%
Python 1%
Shell 0.4%
Cooklang 0.3%
Other 0.1%