Heat 4 cups whole milk (and 3 tablespoons heavy cream if using) over medium heat in a large saucepan with high sides and double or triple bottom.
Add 1 cup white granulated sugar when it’s warm and mix. Add ½ teaspoon baking soda and stir until it dissolves.
When it starts to boil, lower the heat to a minimum but keep it simmering.
Let it reduce, stirring every so often, about an hour, or an hour and a half. This depends on the amount of milk you’re using and the amount of heat.
It darkens from the bicarbonate and thickens. If you added a plate you can stir once in a while, but it not, you should stir more often.
At some point, usually an hour from the moment it starts to simmer, it gets quite dark and thickens. At this point, it’s almost ready. Maybe a few minutes more. Make sure you take out the plate and stir constantly during these last moments.
If you put a little on a plate it will run immediately, be quite liquid. It will thicken a lot as it cools and even more in the refrigerator.
Remove from the heat, add ¼ teaspoon vanilla extract and pinch of salt if using, transfer to a bowl and let cool. If you stir over a bowl with ice water it will cool faster and generally makes it creamier because there’s a smaller chance of crystallization.
Whisk at the end before refrigerating to make it as creamy as possible.
Fill a jar and keep refrigerated.