Homemade bagels are SO GOOD. They're also pretty easy, albeit time-consuming.
4 cups bread flour
1 TBS sugar
1.5 tsp salt
1 TBS vegetable oil
2 tsp instant yeast
1.25-1.5 cups of warm water
Toppings! (I like kosher salt, caraway, dried onion bits, dried garlic flakes, and poppy seeds)
Put all of the ingredients in a bowl. I put it directly into my mixer's bowl to save time. If you have a mixer with a dough hook, you should use it.
Use the dough hook for 10 minutes (or knead on a floured counter for 10 minutes) until smooth and uniform.
Split the dough into 8 equal sized balls, and let them rest in the bowl for 10-20 minutes.
Preheat your oven to 425.
Poke a hole through the middle of each dough ball and work until it looks twice as big as you want it - it'll close up. You could also roll it out into a long snake, then press the ends together, but honestly it's easier to poke a hole in the middle and stretch it out. I did it both ways and the ones I poked holes in turned out better looking (in the picture above, the nice round everything bagels on the left are the ones I poked holes in. The uneven-looking ones are my attempt at making a snake and pinching the ends).
Let your bagels rest in a warm place (I did it on top of the preheating oven) for about 20 minutes.
Bring a large pot of water to boil, and grease a large cookie sheet.
Your bagels should have puffed up by now (you can tell because the holes close up a bit). If so, it's time to boil them.
Add two at a time to your pot, boil for a minute, turn over, and boil for another minute, then take out with a slotted spatula.
If you're topping them, now's the time to do that. You can get a plate set up with the toppings and just plop the bagel onto it or you can sprinkle - whatever suits you better. I started with the plop method, but then the salt all melted, so I started sprinkling.
Place the bagels on the baking tray, bake for 10 minutes, flip, and bake for 10 more.
Let them cool for 10-20 minutes if you can resist.