smakdown

Smakdown is a Firefox extension that turns unstructured recipe web pages into clean, structured notes. It strips a page down to its meaningful content, sends that to an LLM for structuring, formats the result as either Org-mode or Markdown, and writes to a file through a Python native-messaging helper. You can supply a file path and the recipe will be appended to that file, or supply a directory and then each recipe will get its own file within that directory.

The extension and source code are available here.

Smak” means taste in Norwegian, Swedish, Polish, and Middle English. I considered “Geschmackdown” or “Schmackdown” as the German option, but… it just sounds worse to me.

I don’t know if this is a common sentiment, but I’m usually annoyed by modern food blogs. It’s like they’re intentionally designed to be inefficient, to keep you on the site longer. You need to browse through the history of the food, and the history of the author’s relationship to the food, before getting to the recipe. I know it doesn’t bother everyone - my wife likes the extra context and doesn’t really understand why it bothers me. I considered - actually, I’m still considering - designing a food blog at the extreme end of this context spectrum, where the reader is likely to never even find the recipe…

In any case, I built Smakdown partially to get around this “feature” of modern recipe websites. But that’s really only half of the motivation. Even if you don’t mind all the reading, if you’re someone who prefers to work in plain text (as I do) and likes to keep organized markdown or Org-mode notes (as I do), then I’m sure you can see the benefit in using this.

The “native-messaging helper” I mentioned earlier is a real weak point of this program’s design, but it seemed like the most reliable way to write to arbitrary files on the user’s system. This means you can’t just download the extension from the extension store, you need to download/install the .xpi file directly, and then run the Python install script.

← Back to Projects