In a large mixing bowl, combine the warm water, instant yeast, and molasses (or honey). Stir gently and let it sit for about 5-10 minutes until it becomes frothy.
Add the all-purpose flour and kosher salt to the yeast mixture. Mix with a wooden spoon until a shaggy dough forms.
Transfer the dough to a lightly floured surface. Knead for about 8-10 minutes until the dough is smooth and elastic. If it’s too sticky, sprinkle a little extra flour as needed.
Incorporate the room-temperature salted butter into the dough, kneading until fully combined and smooth. This will take about 2-3 minutes.
Place the dough in a greased bowl, cover it with a clean kitchen towel, and let it rise in a warm area for about 1 hour or until doubled in size.
Once risen, punch down the dough to release air. Divide it into 12 equal pieces. Roll each piece into a ball, then poke a hole in the center with your finger and gently stretch it to form a bagel shape.
In a large pot, bring water to a boil and add the baking soda. This solution will give the bagels their pretzel-like crust.
Carefully drop the bagels into the boiling water, cooking them for about 30 seconds on each side. Use a slotted spoon to remove them and place them on a baking sheet lined with parchment paper.
Brush each bagel with the beaten egg and sprinkle them with pretzel salt or flaky sea salt.
Preheat your oven to 425°F (220°C). Bake the bagels for 20-25 minutes until they are golden brown and cooked through.
Let the bagels cool on a wire rack for at least 10 minutes before enjoying them warm or at room temperature.