Cooking for Hackers
How I'm optimizing my cooking process and organizing my recipes.
![](/_astro/1713157492098_0.u-TbefAn_Vykvg.webp)
Introduction
In the past few years I’ve been trying to improve my cooking skills and streamline my overall process for preparing meals. Cooking wholesome meals for yourself is one of the best things you can do for your health and saves a lot of money. Plus, you can tailor your recipes to your exact preferences and cook really unique dishes that you can’t find anywhere.
Challenges
Over the years, I’ve found it challenging to consistently cook for myself. After starting to work in an office, I found myself eating out for lunch and picking up dinner more often. I struggled planning ahead and making sure I had fresh ingredients on hand and meals planned out.
I experimented with traditional “meal prep,” where you bulk prepare meals in advance. While this approach was efficient, as someone who appreciates good food, I got tired of eating the same multiple days in a row. Reheated meals just weren’t as appetizing as freshly cooked ones. I also tried different diets, like keto, but found the ingredient restrictions too limiting.
Eventually, I realized that I most enjoyed cooking meals daily and the key to success was proper planning.
Planning
The biggest improvement in my process has been planning all my meals and grocery shopping ahead of time. When I’m efficient with this, the daily cooking and cleaning become much less of an issue.
Here’s my process:
At the beginning of each week, I plan my recipes, trying to vary the proteins each day
I use Logseq to do my weekly planning and the cooklang app to manage my recipes.
![Planning my weekly recipes in Logseq](/_astro/1713158284017_0.BhMvk2Dt_hCPm5.webp)
I focus on meals that are primarily meat and vegetables but include a carb in every dish.
I enjoy baking items like garlic knots and dinner rolls, as having a few different food types makes the meal feel more complete. I love having fresh baked bread a few times per week but eat reasonable portions, like 1 or 2 dinner rolls.
Each week, I try one new recipe but mostly stick to favorites that I’m skilled at cooking.
I mostly focus on dinner, but have a few light meals throughout the day like a protein shake, sandwich, cold cuts with cheese, or assorted leftovers.
Freezing
I purchase most of my ingredients in bulk at Costco and freeze them. I find frozen meats taste just as good, as long as it’s not frozen too long, or frozen properly like in a vacuum sealer.
I recently found out a few staples like butter, cheese, and peeled garlic can be frozen, which makes it easier to have them on hand.
Another great thing is to freeze dough after it’s partially risen. One of my favorite hacks is to bulk prepare dinner rolls, let them rise as individual rolls, and freeze individual portions. You can then take a few out at a time and let them thaw and continue to rise to have fresh dinner rolls any time.
There’s a couple of other things I always have in my freezer that keep well, like pre frozen veggies, udon noodles, potstickers,
Basic Staples
There are certain things you can easily cook yourself that are much better than buying premade, like bread.
There’s also a number of add ons you can make that make your meals much tastier like pickled vegetables and homemade sauces.
Organizing my Recipes
As I’ve become more experienced in cooking, I’ve discovered recipes that I enjoy and started customizing them. While AI and recipe sites provide a good starting point, after cooking a dish a few times, I begin adjusting it to my preferences, such as adjusting cooking times or ingredient amounts.
To precisely store my recipes, I use a format called cooklang and manage them using Git, the same technology I use for my code. This allows me to carefully track modifications over time as I improve my cooking skills. See [this blog post on cooklang for for info] (cooklang)
I even created an AI ChatGPT bot that converts recipes into the Cooklang format. It still isn’t very reliable but it’s a good starting point for writing recipes.
My favorite feature of Cooklang is the ability to add multiple recipes to a shopping list, optimizing my grocery shopping. The app also provides step-by-step instructions while cooking.
My Recipe Site
Frustrated with the bloat of typical recipe sites, I decided to create my own. Since my recipes are in Cooklang format, it’s easy to publish and share them online.
When designing my recipe site, I kept the following in mind:
No bloat: The site should load quickly and not be jarring with ads. Simple descriptions or recipes, without long blog posts.
![Very short title and introduction to recipes](/_astro/1713161377131_0.CBM0zij8_21sEPG.webp)
Ingredients listed in the recipe list, allowing users to decide whether to make a dish without clicking on the recipe.
![Ingredients shown on recipe list](/_astro/1713161458559_0.B0y-7FPB_wg7xM.webp)
Ingredients and instructions at the top of the page.
![Simple ingredients, cookware, and instructions](/_astro/1713161535491_0.C1sW5mVX_Z11V2gW.webp)
Inline ingredient amounts in instructions to avoid the need to scroll back to the top of the recipe while cooking.
![Ingredients amounts are included with gray background in instructions](/_astro/1713161554003_0.CCBirfnd_Z26aate.webp)
Highlighting: I highlight the amounts and important values in gray, cookware in red, and times in yellow to make skimming easier.
![1713161605550_0.png){:height 406, :width 718}
At the bottom of each recipe, I include the cooklang code with a copy link so you can save the recipe in Cooklang format. I even got Cooklang specific syntax highlighting working in the code block.
![Copy cooklang recipe on any page](/_astro/1713162065176_0.DSFUSGh4_2w4vwg.webp)
Cooklang app
After I plan what recipes I want to make and get them in cooklang format. I can use the cooklang app to create shopping lists of lists of ingredients for all the recipes I plan on cooking.
By optimizing my meal planning, grocery shopping, and recipe management, I’ve been able to elevate my cooking skills and enjoy great, home-cooked meals without spending much time or money.