I have found that unsalted butter works much better than salted butter, so be sure to get unsalted butter.
Here I started with 1 pound / 4 sticks of organic, unsalted butter, but I've done 5 (maybe more) pounds in my stockpot.
Melt butter and then turn heat to medium low or low, depending on how hot your stove runs.
About 5 Minutes
The butter will foam up soon after it has all melted down.
DO NOT STIR ANYMORE
Continue heating butter at a low simmer, bubbles barely breaking the surface. My stove has a quick boil burner that is too hot, even on it's lowest setting. I use a "regular" burner set on medium low to low.
About 15 Minutes
Continue simmering at a low heat as the solids slowly separate from the ghee.
In this photo the foam has gone down and I've gently pulled aside some of the residual foam to show you that the ghee is very clear and the bottom of the pan is still pretty clear.
There is some browning just starting to form around the edges.
About 10 Minutes
Here is a photo of the milk solids browning at the bottom of the pan. This is a good thing and the reason you don't want to stir the ghee after it starts simmering. To take the picture I gently tilted the pan.
I did not stir it.
About 10 Minutes
Note that the foam is also browning some around the edges. You want to watch the ghee closely at this point as it can burn if left at this phase for too long.
The ghee will foam up one more time at this point. That's a sign that the ghee is ready to strain. I typically let it foam for a minute or two and then strain.
About 45 minutes
Time to strain! I strain through a small, tight weave strainer to catch the initial browned bits so they don't clog the larger strainer. I place an unbleached coffee filter into a larger strainer that is placed on a large, glass measuring cup to further strain the browned bits from the finished ghee. I have found that straining the ghee immediately after taking it off the heat helps it to strain easier.
Here is a photo of the browned bits left in the pot and in the smaller strainer. Note how browned (not black) they are. While the pan is still warm, scrape out the pan with a metal spatula and wipe out with a paper towel (very carefully as it is hot). Add dish soap and hot water to the pan and set aside to soak for a few minutes before washing.
Here is my straining set up: Unfiltered coffee filter in a large strainer in a glass measuring cup large enough to hold the finished ghee. Note how dark the ghee looks at this point.
After the ghee has finished straining, pour it into a jar and let cool completely, uncovered. That's it!
Here is the ghee after it has cooled. Look at the lovely, light color it becomes. It is the tastiest "butter" you will ever use on toast. And because the milk solids have been removed, it has a very high burn point. I use it when frying potatoes (or anything else) in a frying pan and for roasting vegetables. It will keep indefinitely unrefrigerated, as long as it stays clean.