Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This repo holds my lasagna recipe. It tracks changes to it over time, as it evolves a bit every time I make it. Please make this, suggest changes, and enjoy!

A Love Letter to Lasagna

In January of 2015, I was house sitting for my sister and wanted to leave her something to eat when she got home. I thought, lasagna should be easy, and it keeps! I'll make that.

What I found was that lasagna is a sum of its parts: meat, red sauce, noodles, cheese, and white stuff ™️. I started down the path of tweaking each individual component, to formulate my favorite lasagna. I made a lot of lasagna in 2015, and the year of experimentation culminated in me cooking lasagna for my family on Christmas eve.

The first thing I tweaked was the meat. I tried all beef, all sausage, and a combination. I found that the combination of the two was best - you have richness from the beef and some bite from the sausage.

I didn't touch the red sauce much. The origin recipe had you cook your own sauce - I think that's really important. Simmering tomatoes and meat for a long time is the best way to do it. Throw out the jars.

Noodles are an easy pitfall. Often times, you end up with big, ugly, chewy gross noodles. It sucks. The best thing I found was to use oven ready noodles. They don't require any pre-boiling, they are a little bit thinner, and they soak up more sauce when you bake the lasagna because there isn't as much moisture in them to begin with.

For cheese, I played around with a few options. Obviously, freshly gradted, real parmigiano reggiano is important, but I tried a few different mozzarellas. I tried the bagged, shredded kind, fresh, and the low moisture stuff that comes in blocks. That last one is the best - shred it yourself so you don't have all the cornstarch they throw in to keep the bags from clumping. I like using one block of whole milk and one block of part skim.

Next is white stuff ™️. I was intentionally vague about this in the introduction, but there are 2 opposing ideas about what white stuff goes into lasagna. Traditional Italian lasagnas use bechamel, a cream sauce, somewhat famously used to turn a grilled cheese into an amazing thing called a croque monsieur. American lasagnas opt for ricotta cheese (or, if they're really gross, cottage cheese). I don't really like ricotta, so I knew going into it what I would pick here, but I tried both. The bechamel won.

As a software engineer, I iterate on things. I experiment and tweak and measure. One of the things I love about cooking is that I can take the same experimentation and create food that I know I will love, in a way that we know we can replicate every time. My brain just works like that, so letting it do its thing and not fighting it usually works out really well. If nothing else, at least I can eat lasagna whenever I want.

Without further ado, here is my lasagna recipe.

The Recipe


  • 6 tablespoons butter
  • 6 taplespoons all-purpose flour
  • 3 cups whole milk
  • 1 bay leaf
  • 1/8 teaspoon ground nutmeg
  • 1/2 teaspoon salt
  • 2 packages oven-ready lasagna noodles, or one recipe of fresh noodles
  • 1 pound ground beef
  • 1 pound loose italian sausage
  • 6 minced anchovy fillets
  • 1 medium onion, diced
  • 4 cloves garlic, minced
  • 1 28-ounce can whole tomatoes, undrained and crushed by hand
  • 2 6-ounce cans tomato paste
  • 2 teaspoons dried basil (use about 4 times this in fresh basil if it's in season)
  • 1 bunch finely chopped parsley, divided
  • 3/4 cup freshly grated parmesan cheese
  • 4 cups shredded mozzarella cheese


Start the Meat Sauce

  1. Brown beef and sausage in the bottom of a stock pot.
  2. Add anchovy, onion and garlic, cook until soft.
  3. Stir in tomatoes, tomato paste, and basil.
  4. Bring to boil then reduce heat and simmer uncovered for 30 minutes. Mix in some of the parsley. Season to taste with salt and pepper.

Make the Bechamel (while the meat sauce simmers)

  1. Warm the milk in the microwave for 2 minutes.
  2. Melt butter in a small saucepan until foamy over medium heat.
  3. Reduce heat to low, add flour and whisk until smooth and the roux smells cooked, about 1 minute.
  4. Gradually whisk in milk.
  5. Add the bay leaf and cook until just thickened, stirring frequently, about 10 minutes.
  6. Stir in the salt and nutmeg. Season with black pepper, and discard the bay leaf. Set the sauce aside until needed. You can gently reheat the sauce over low heat if needed.

For the Lasagna

  1. Put a layer of meat sauce in a 9x13 pan, a layer of bechamel, and a layer of grated parmesean and mozzarella. Top with a layer of noodles to fully cover the pan (overlap if necessary). Repeat all the layers twice more, but do not put the lasagna noodles on the top layer (you should have cheese on the top). On the second layer, after the cheese, add a layer of parsley.
  2. Cover the pan with foil.
  3. Bake at 400 degrees for 30 minutes. Uncover, bake 20 minutes more. Let stand 15 minutes before cutting.

You can also prepare this lasagna the day before and store it in the fridge. Increase the first baking step to 50 minutes.


There is no :lasagna: emoji






No releases published


No packages published