Based on this recipe, which has two major problems: wordiness, and calling for all-purpose flour.
1 cup flour
1/8 tsp yeast
1/2 cup water
2 cups flour
1 1/2 tsp salt
1/2 tsp yeast
3/4 cup water
1/4 cup milk
Combine the sponge ingredients until homogeneous. Cover and let rest at room temperature for 8-24 hours.
Combine the sponge and the dough ingredients. Knead with a stand mixer (~15 min until the dough forms a cohesive mass and is smooth and shiny) or by hand (basically using a series of cuts and folds, as detailed here). Cover dough and let rise at room temperature until doubled in size, about 1 hour.
Fold the dough over itself 8 times, rotating the dough a quarter turn after each fold. Cover and let rise for 30 min. Repeat the 8 folds and rise.
Divide the dough in half. One half at a time, shape the dough into a 12″x6″ rectangle. Fold the rectangle into thirds to form a squat rectangle. Let loaves rest seam-side down for 30 min on a floured baking sheet.
Using your fingertips, poke the loaf out to form a 10″x6″ rectangle. Spray the surface of the loaf with water. Bake for 25 min at 450°F.
You will get the best texture by using bread flour, however some amount of whole wheat flour can be added. In general, up to half of the flour can be whole wheat without significantly affecting the texture of a loaf. You can also add some amount of vital wheat gluten to lift the whole wheat flour.
Using a pizza stone (or unglazed tile or cast iron griddle or upside-down cast iron skillet) will improve the crust. Preheat the stone or substitute in the oven for at least 30 min. The loaves can be baked directly on a pizza stone or griddle; it is easiest to transfer the loaves on parchment paper. If using an upside-down skillet, place the baking sheet holding the loaf on top of the skillet. (This seems janky but totally works.)
Bread is best when left to cool slightly (usually for an hour) after baking. This helps the bread finish cooking, and keeps the crumb from being overly moist, which causes clumping during cutting.