Soak the Soybeans: Place the soybeans in a large bowl and cover with about 2-3 inches of water. Soak them overnight or for at least 8 hours (12 hours for best results). The beans will double in size and soften.
Drain and Rinse: Drain and rinse the soaked beans thoroughly under cold water. Remove any beans that haven't softened properly. Optionally, remove the outer skin as much as possible.
Boil the Soybeans (Optional): To reduce bean flavor, boil the soaked and rinsed soybeans in fresh water for 5-10 minutes before blending.
Blend the Soybeans: Add the soybeans and 4 cups of water to a blender. Blend until smooth and creamy, about 1 minute on high speed.
Cook the Soy Milk: Pour the blended mixture into a large pot. Add the remaining 4 cups of water. Heat over medium heat, stirring occasionally, until it comes to a gentle boil. Be careful as it can foam up quickly. Reduce heat to low and simmer for about 20 minutes*, stirring occasionally. Skim off any foam that form on the surface.
Allow to Cool Slightly: Before straining, let the soy milk cool slightly in the pot for about 10-15 minutes. This will help prevent burns during the straining process and make handling the hot liquid safer.
Strain: Strain the slightly cooled soy milk through a cheesecloth or a nut milk bag into another pot or a large bowl. Squeeze out as much liquid as possible. The leftover pulp (okara) can be saved for other recipes.
Flavor the Soy Milk (Optional): After straining, while the milk is still warm, add your choice of flavoring such as maple syrup, vanilla extract, or a pinch of salt. Adjust the amount according to your taste preference.
Cool and Store: Allow the soy milk to cool at room temperature. Once cooled, transfer it to a sealed container and refrigerate. Consume within 3-5 days for the best taste and freshness.