If you're interested in my most recently-updated, experimental recipe, go here.
First, I do use some specialized ingredients and equipment, including high-gluten bread flour, diastatic malt powder, and barley malt syrup. For completeness' sake, I use this yeast, Morton Table Salt, and Crystal Geyser Alpine Spring Water, which has a pH of 7.3 and is bottled in Weed, California. I don't think that last part matters, but it does mean that when someone compliments my bagels, I get to say, "it's the Weed water." I also have a really intense mixer, a pizza stone, a kitchen scale, and bagel boards. I think you definitely need the flour, the kitchen scale, and the pizza stone. If, like me, you lack upper body strength, you also need a stand mixer. In my experience, a KitchenAid produces fine results, and you can get them inexpensively on Facebook Marketplace. (My Bosch mixer is kind of overkill, but I make dozens of bagels every week, so I was actually in danger of burning out the motor on my old 325W KitchenAid; as an occasional thing, it should be fine.) Malt powder and syrup can be replaced by honey, sugar, or molasses.
This recipe produces "fluffier" bagels with a moderately chewy interior and a few larger holes. They have a thin, lightly crackly crust with lots of tiny surface blisters. The dough is 55% hydration, which is on the lower end for bread (not to mention challenging for a stand mixer), so I would not recommend reducing the moisture further unless you are willing to knead a very stiff dough by hand. If you want a denser bagel, use less yeast. Including baking soda in the boiling liquid reliably produces a dark, burnished crust; if you prefer a lighter bagel, skip it. These are baking soda bagels and these are bagels with just malt syrup. This recipe gets you about 11 large bagels. Here are some more photos.
Alternatively, in baker's percent (using 1/3 of the flour, yeast in the poolish):
Begin by making a poolish, which a 50-50 mix of water and flour that helps develop flavor in the dough prior to primary fermentation. Combine, in order, 270g water with the same amount of flour and 1/4 tsp instant yeast. Mix well. Loosely cover. Make sure your vessel is a lot bigger than your poolish: old plastic soup containers are good for this. Allow the poolish to rise at room temperature until it collapses when dropped onto the counter from a height of six or so inches (as a general guideline, this takes about 8 hours at a temperature of 71F, and just 4 hours at a temperature of 87F). You can speed or slow this process by putting the poolish in warmer or colder places.
When the poolish is ready, add it to the bowl of your stand mixer, followed by 245g water and 1/2 tsp instant yeast. Then add 655g flour, 8g diastatic malt, and 20g salt. Combine all ingredients and mix at speed 2 in increments of 2 minutes for a total of 8 minutes, pulling out the dough and kneading it by hand a few times between mixing periods. (We do this to give the mixer a rest, and to make sure the dough is evenly-kneaded throughout.) By this point, the dough should be very smooth, satiny yet slightly tacky (it's fine if it sticks to the bowl of the stand mixer, or your cutting board), and stiff. It should pass the windowpane test: that is, you should be able to pull off a small piece of dough and stretch it until light passes through without tearing.
Now, it's time to shape the dough. I like bagels that are about 130g, which is big but not huge, comparable to a typical New York bagel. If you're being precise, you can portion out the dough and roll it into balls, resting shaped balls under a damp towel. Once all the dough is portioned, roll each ball into a rope on an unfloured counter, working from the center outward so that the rope is thinner at each end than in the middle. Wrap the dough around your hand so that the ends overlap, then roll the ends against the counter to seal, applying a lot of pressure (you don't want the bagels to unfurl during boiling or baking, and the dough will resist you; I lean pretty much my whole body weight into it). Alternatively, you can do this, which is faster and more fun. Either way, place shaped bagels on a parchment-lined baking sheet misted with oil, keeping them covered with a damp towel.
At this point, the bagels are ready for primary fermentation in the fridge. Cover the pans: I like to put them in garbage bags, but you can also use plastic wrap. Rest overnight. I find that approximately 14 hours is the ideal proofing time in my fridge, but yours may be different.
The next day, preheat the oven, with the pizza stone, to 500F. Allow it to remain at this temperature for some time, ideally about an hour. Remove the bagels from the fridge and drop one in a small bowl of water: if it floats, the bagels are ready to be boiled; otherwise, allow them to sit outside for a few minutes before trying again. Here is a picture of what my unboiled, unbaked bagels look like after an overnight rest. Soak the bagel boards in cool water. Separately, bring 1.5L (a medium-sized saucepan's worth) of water to a boil, reduce to a simmer, and add (optionally) 1 tsp baking soda and a good spoonful of barley malt syrup. Use a spoon to skim the scum that forms from the top of the boiling liquid. Boil bagels, approximately 10 seconds per side, placing them in an ice water bath as they come out of the boiling liquid. (I do this to bring the temperature down and preserve as much of the yeast as possible prior to the bake, but this is more important if you have a lot of bagels and you're going to take a while; otherwise, they can go straight on the boards.) When all the bagels are boiled, arrange them face down on the bagel boards. Slide the boards onto the pizza stone and bake for 5 minutes. After 5 minutes, flip the boards so that the bagels' bottoms have direct contact with the stone, and bake an additional 5 to 10 minutes, until they are evenly colored and lightly crusty.
Allow the bagels to rest in a well-ventilated place for at least 15 minutes before consuming.
Miscellaneous notes and observations: