A word on texture: One really great thing about making my own yogurt is that it doesn't have all the thickeners and stabilizers that contribute to the sometimes-very-weird texture of commercial vegan yogurt. Homemade yogurt is often a little runny, and there are a number of things you can do to make it thicker. I tried straining the first batch I made (like how you'd make Greek yogurt) which was cool but I found the very extreme thickness disconcerting, so I actually mixed a little bit of the strained whey right back in because I guess Greek yogurt just isn't my thing. (Isn't it crazy that I've been vegan so long that I completely missed the Greek yogurt craze, by the way? That makes me feel old.)
The other option is to add soymilk powder to the milk, and/or to evaporate off some of the water by extending the heating step by a few minutes before cooling your milk & adding the starter yogurt. I've included instructions for these thickening steps in the recipe below.
I also like having more control over the sweetness of the yogurt-- it's easy, just don't add a whole bunch of sugar. Achieving a really satisfying level of tartness has been a little trickier. While I haven't been able to make a batch of soy yogurt with the same tartness as dairy yogurt, I think my homemade yogurt does usually have a little bit more tang than the commercial yogurt. However, this is something that I'm continuing to work on.
Now for a quick lecture on fermentation. The difference between (soy) milk and (soy) yogurt is bacteria! Our cast of friendly bacterial characters, if we're using the Trader Joe's yogurt as our starter, are Lactobacillus acidophilus, L. bifidum, L. bulgaricus, and Streptococcus thermophiluis. Your yogurt will have the same bacteria as the starter you use-- although since the conditions in your kitchen aren't exactly the same as the conditions at the TJ's yogurt factory, they might be present in different proportions. It's even possible that after a generation or two, you might have fewer species that your starter. I don't know if this has any particular health implications, but there's lots of reading material about probiotics if you'd like to learn more. (Just be warned, there's lots of speculation about what bacteria are "good" and what bacteria are "not good," and a lot of it seems to be written by people who don't actually know a whole lot about science, and throw around the C word a whole lot in a way that to me seems a little reckless. And by C word, I mean cancer, but they might also talk about other words that start with a c such as colitis and Celiac's. Read at your own risk.)
To me, the main thing to take into account is that in order for your yogurt to turn out right, you really have to pay attention to the thermal needs of those bacteria that are working so hard to ferment the sugars in your soymilk and produce lactic acid, which is what you want. If you don't make sure these guys are nice and warm, they won't eat that sugar rapidly enough, and you won't get yogurt. If you add them while the milk is too hot, they'll get burned up and die and then you really won't get yogurt. Be nice to your little bacterial friends, or no yogurt.
Here's what you'll need
The milk: 4-5 cups plain soy milk (I haven't tried this with other non-dairy milks, besides coconut, which was a fail. I know lots of people want to avoid both dairy and soy, but I really have no experience (yet) with making a good non-soy vegan yogurt, so I'm probably not the person to ask.
The starter: 1/4 cup starter yogurt-- I've used plain Whole Soy and Trader Joe's Vanilla, which both work well but if you use a flavored starter, some of that flavor will be present in the final product. After the first batch, you can use your homemade yogurt for the starter.
A container: A glass or plastic container to make the yogurt in. I use a pyrex 1.5 quart bowl with a tight-fitting lid, which is perfect. I've also used a quart-sized plastic tupperware. You could also use a wide-mouth jar.
A warm place: I use my oven with the light turned on, and I put the bowl pretty close to the bulb. I also tried the oven with just the pilot light, but it was too cold. If you have an oven that you can set to the very low temperature of 118 degrees F, or a dehydrator or proofing box that can be set to this temperature, you're very lucky and you should do just that. Alternately, you can use a slow cooker or an insulated cooler with a heating pad, but you'll have to google the directions for doing it that way, sorry!
And a thermometer is kind of a must for this, too-- either an instant-read or candy thermometer will work great.
Optional: 2 Tbsp. soy milk powder-- this gives you a thicker yogurt, but it's just fine without it.
2. Now for the boring part: place your bowl in whatever warm location you've chosen and wait. You'll want to checck the temperature periodically to make sure it's still warm. I just touch the side of the bowl to do this-- what you want is for the bowl to feel just a little warmer than body temperature. After four hours, start giving the bowl a little jiggle to check the texture. You can also taste-test it with a clean spoon. (Seriously, make sure the spoon is clean, and no double dipping!) If it's still runny, continue to keep it warm. This can take a long time, and that's ok! I find that it typically takes 12-16 hours to get to the consistency I'm looking for. Just be patient! Once it's thickened, put it in the fridge to chill.
3. Optional: Straining, to make Greek-style yogurt
If you want to strain your yogurt to make it thicker, you'll need a mesh strainer and some cheesecloth or large basket-style paper coffee filters. Line the strainer with the coffee filter or cheesecloth, place it over a bowl, and pour in the yogurt. Cover it with plastic wrap and put it in the fridge to drain for 2-4 hours. Keep checking it until it's the thickness you like. The translucent, pale yellow whey that drains into the bowl can be used for cooking or smoothies, if you want.
4. Now you get to eat yogurt! Put some granola and fruit on there and enjoy! It also makes an awesome yogurt sauce for savory dishes (think raita, tzatziki, that kind of thing) but that's a post for another day.
A note about yogurt failures: Sometimes a batch just doesn't turn out. If your yogurt never thickens, if you want you can reheat, cool it down again, and re-inoculate with some more of the starter yogurt, and try again. This sometimes works, but not always. And don't be too bummed if it doesn't turn out! Cultured foods can be tricky, but you'll get the hang of it as you make more batches.