In a small bowl, whisk together the yeast, warm milk and sugar. Set aside.
In a food processor, pulse together the flour and salt to combine. Add the butter in chunks. Pulse to combine. The butter should still be visible in small quantities, so make sure to pulse until it is crumbled, but don’t work it in too much.
Add the milk-and-yeast mixture and pulse a few more times, just until a dough starts to form. Don't expect a perfect dough; it should still be sticky and not fully combined.
Pour the dough onto a large piece of plastic wrap and loosely shape it into a square. Wrap it well and refrigerate for an hour, or more.
On a floured board, place the dough and roll it out into a rectangle. Fold the left side of the rectangle halfway in, and then fold the right side of the rectangle halfway in. Rotate and repeat so you are left with a square.
Flip the dough seam-side down and repeat previous step 2 more times.
Wrap and refrigerate the dough for at least 2 hours, or overnight.
On a floured surface, roll out the dough on a large rectangular shape and cut the dough into 6 to 12 triangles, depending on whether you are making large croissants or minis.
Roll the triangles from the widest part to the tip, and then bend slightly to achieve the croissant's crescent shape.
Cover with plastic wrap and allow the croissants to rise in a warm place for 2 hours.
Preheat oven to 400° F.
Beat the egg with a splash of water then brush the egg wash over the croissants. Bake the croissants for 12 to 15 minutes, until puffed up and golden.