There is a particular kind of magic in pulling a tray of golden, puffed choux from the oven. What went in as a pale, sticky dough comes out transformed into hollow, crisp shells that practically beg to be filled. Profiteroles have graced the dessert tables of French patisseries for centuries, and for good reason: the contrast of that feather-light pastry shell, the cool, custardy crème pâtissière inside, and the warm, bittersweet chocolate sauce poured over the top is one of the great textures and flavour combinations in all of baking. Every bite is simultaneously warm and cool, crisp and creamy, delicate and deeply indulgent.
What sets this recipe apart is the attention paid to each of the three components. The choux paste is cooked on the stovetop until it pulls cleanly away from the pan, which drives off excess moisture and ensures a proper steam-driven rise in the oven. The crème pâtissière is made with both cornstarch and egg yolks, giving it that characteristic thick, spoonable body that holds its shape inside the puffs without feeling heavy. And the chocolate sauce uses a high-percentage dark chocolate (70% cocoa solids) combined with a little butter for gloss and a touch of cream, resulting in something that pours like silk and sets gently on the cool pastry below.
This recipe sits firmly in the intermediate category, not because any single step is frightening, but because it involves three separate preparations that each benefit from a little confidence and patience. It is a perfect weekend baking project, and an absolutely showstopping dessert for dinner parties, holidays, or any occasion where you want to genuinely impress. The components can be made ahead, which actually makes the day-of assembly wonderfully relaxed.
12
servings
Ingredients
- Egg Wash
- 240 mlwater (1 cup)
- 115 gunsalted butter, cut into cubes (about 8 tbsp or 1 stick)
- 1 tspcaster sugar or granulated sugar
- 0.5 tspfine sea salt
- 150 gall-purpose flour, sifted (about 1 cup plus 2 tbsp)
- 4 largeeggs, at room temperature
- 500 mlwhole milk (2 cups plus 2 tbsp)
- 1 wholevanilla bean, split and scraped (or 2 tsp pure vanilla extract)
- 120 gcaster sugar (about 0.5 cup plus 1 tbsp) for the pastry cream
- 5 largeegg yolks, at room temperature
- 40 gcornstarch (about 5 tbsp)
- 30 gunsalted butter, cubed (about 2 tbsp) for the pastry cream
- 200 gdark chocolate, 70% cocoa solids, finely chopped (about 1.25 cups)
- 200 mlheavy cream (about 0.75 cup plus 1 tbsp) for the chocolate sauce
- 30 gunsalted butter (about 2 tbsp) for the chocolate sauce
- —1 egg beaten with 1 tbsp milk
- Dusting (optional)
- —Powdered sugar
Ingredient Substitutions
Instructions
🔧 Equipment
- Make the crème pâtissière first so it has time to chill. In a medium saucepan, heat the milk and vanilla bean pod and seeds (or extract) over medium heat until it just begins to steam and small bubbles form at the edges. Do not boil. Remove from heat and let the vanilla infuse for 10 minutes, then remove the pod.
- In a heatproof bowl, whisk together the egg yolks and caster sugar until pale and slightly thickened, about 2 minutes. Whisk in the cornstarch until smooth. Slowly pour about one-third of the warm milk into the egg mixture while whisking constantly to temper the eggs, then pour the egg mixture back into the saucepan with the remaining milk.
- Cook the custard over medium heat, whisking constantly, until it thickens and large bubbles begin to plop at the surface (about 4 to 6 minutes). Continue cooking and whisking vigorously for 1 full minute after the first bubble appears to cook out the cornstarch flavour. Remove from heat and whisk in the cubed butter until melted and glossy. Pour into a clean bowl, press plastic wrap directly onto the surface (to prevent a skin from forming), and refrigerate for at least 1 hour until completely cold and firm.
- Preheat your oven to 400°F (200°C) and line two large baking sheets with parchment paper. Make the choux paste: combine the water, butter, sugar, and salt in a medium saucepan over medium-high heat. Stir occasionally until the butter melts completely, then bring to a rolling boil.
- Remove from the heat and add all the sifted flour at once. Stir vigorously with a wooden spoon or silicone spatula until the dough comes together into a smooth ball. Return to medium heat and cook, stirring constantly, for 2 minutes. You will see a thin film form on the bottom of the pan and the dough will pull cleanly from the sides. This step is crucial: it drives off steam so the eggs can be incorporated without making the batter too loose.
- Transfer the dough to the bowl of a stand mixer fitted with the paddle attachment (or a large bowl if using a hand mixer). Beat on medium speed for 2 minutes to cool the dough slightly. Add the eggs one at a time, beating well after each addition and scraping down the bowl. The final batter should be smooth, glossy, and thick enough to hold a slow, reluctant drip from the spatula. When you lift the spatula, a V-shaped ribbon should hang and hold its shape briefly before falling. If the batter is still too stiff after 4 eggs, beat in 1 tablespoon of beaten egg at a time.
- Transfer the choux batter to a piping bag fitted with a 1.5 cm (about 0.5 inch) plain round tip. Pipe 30 to 36 small mounds about 3.5 cm (1.5 inches) in diameter onto the prepared baking sheets, spacing them at least 5 cm (2 inches) apart. Smooth the peaks with a wet fingertip. Brush gently with egg wash, being careful not to let it drip down the sides (this would glue the puffs to the tray and prevent them rising evenly).
- Bake for 28 to 32 minutes until deeply golden brown and completely firm to the touch. Do not open the oven door during the first 20 minutes. Once baked, use a skewer or small knife to pierce a small hole in the base of each puff to release steam, and return them to the turned-off oven with the door ajar for 10 minutes. This prevents them from going soggy. Cool completely on a wire rack before filling.
- Make the chocolate sauce: heat the cream in a small saucepan over medium heat until steaming but not boiling. Pour over the finely chopped chocolate in a heatproof bowl. Let sit for 2 minutes, then stir gently from the centre outward until smooth and glossy. Stir in the butter. Keep warm over a bowl of warm water or reheat gently as needed.
- To fill the profiteroles, transfer the chilled crème pâtissière to a piping bag fitted with a small round tip. Insert the tip into the steam hole in the base of each puff and pipe until you feel slight resistance (the puff will feel heavier and plump). Alternatively, slice each puff horizontally and pipe or spoon in the cream. Arrange 3 filled puffs per plate, dust with powdered sugar if desired, and pour the warm chocolate sauce generously over the top. Serve immediately.
- Prepare the crème pâtissière and allow it to chill completely in the refrigerator as described in steps 1 to 3 of the oven method. This component is made on the stovetop regardless of cooking method.
- Make the choux paste following steps 4 to 6 of the oven method exactly. The paste itself is always made on the stovetop. Allow to cool slightly before piping.
- Cut a piece of parchment paper to fit the base of your air fryer basket. Pipe choux mounds approximately 3.5 cm (1.5 inches) in diameter, spacing them at least 4 cm (1.5 inches) apart. Work in batches of 8 to 10 puffs depending on your air fryer size. Smooth the peaks with a damp finger and brush very lightly with egg wash.
- Air fry at 375°F (190°C) for 18 to 22 minutes, without opening the basket during the first 15 minutes. The puffs are done when deeply golden brown and firm when gently pressed. Important: resist the urge to check early. Opening the basket releases the steam that is lifting the puffs and can cause them to collapse.
- Pierce the base of each puff immediately with a skewer, then return to the air fryer basket (heat off) with the basket slightly open for 5 minutes to allow the insides to dry out. Cool completely on a wire rack before filling. Prepare the chocolate sauce on the stovetop while the last batch cools, then fill and serve as in the oven method.
- Bake the choux puffs completely following the full oven method, including the steam-release step and the period in the turned-off oven with the door ajar. Allow them to cool completely to room temperature on a wire rack.
- Arrange the cooled, unfilled puffs in a single layer on a baking sheet and freeze uncovered for 1 hour until solid. Transfer to a zip-seal freezer bag or airtight container, label with the date, and freeze for up to 6 weeks. Do not fill before freezing as moisture from the filling will make the pastry soggy.
- On the day you plan to serve: preheat your oven to 325°F (160°C). Spread the frozen puffs in a single layer on a parchment-lined baking sheet and bake for 8 to 10 minutes until heated through and crisp again. Let cool for 15 minutes before filling. They will regain their crunch beautifully.
- Make the crème pâtissière up to 2 days ahead (or make it fresh on the day) following steps 1 to 3 of the oven method. Keep refrigerated with plastic wrap pressed directly onto the surface until needed. Before piping, whisk briefly to loosen if it has become very firm.
- Warm the chocolate sauce gently in a small saucepan or in a heatproof bowl set over simmering water, stirring until pourable. Fill the crisped puffs as described in step 10 of the oven method, plate, and sauce generously. Serve within 1 hour of filling for the best texture contrast.
Nutrition Per Serving
Per 1 serving (makes approximately 30 to 36 small profiteroles, serving 12 as a dessert (3 puffs per person))
Why This Recipe Works
Choux pastry is one of the most fascinating doughs in baking because it relies entirely on steam for its rise rather than yeast or chemical leaveners. When the batter hits a hot oven, the high water content in the eggs and the paste itself converts to steam, inflating the puffs from the inside and creating that characteristic hollow shell. This is why getting the batter consistency exactly right matters so much: too much moisture and the structure cannot set before the steam escapes; too little and there is not enough steam to puff them properly. Cooking the paste on the stovetop for two minutes after adding the flour gelatinises the starch, drives off a measured amount of water, and creates a stable structure that can then absorb the eggs evenly. That thin film you see forming on the pan is the sign that you have cooked it long enough.
The crème pâtissière sets firmly because of two parallel thickening systems working together. The cornstarch granules absorb liquid and swell when heated (gelatinisation), providing the primary body of the custard. At the same time, the egg yolk proteins gently denature and bond, contributing richness and helping the cream hold its structure without feeling gluey. The crucial step of cooking the custard for a full minute after the first bubble appears is not optional: raw cornstarch has a starchy, pasty flavour, and it takes sustained heat to break down the amylase enzymes and cook that flavour out completely. The butter stirred in at the end emulsifies into the warm cream, adding gloss and a slightly softer, more luxurious texture as it cools.
For the chocolate sauce, using 70% dark chocolate alongside cream and butter creates a ganache-style sauce that has excellent body and shine. The cocoa butter in the chocolate and the fat in the heavy cream form a stable emulsion, while the added butter contributes extra gloss and a silkier pour. If your sauce ever appears split or grainy, it is almost always because the cream was overheated or the chocolate was added to cream that was too cold. The fix: add 1 to 2 tablespoons of warm (not hot) water and stir gently from the centre outward until smooth again.
Baker’s Tips
- Use a kitchen scale for the choux paste, particularly for the flour. Too much flour produces dense, underpuffed shells that will not hollow out properly.
- The dough must cool for at least 2 minutes in the mixer before you begin adding eggs. Adding eggs to dough that is too hot will cook them and scramble the batter.
- Pipe consistently sized mounds for even baking. Slightly different-sized puffs will have different bake times, leading to some undercooked and some overbaked in the same batch.
- Do not open the oven during the first 20 minutes of baking under any circumstances. The puffs rely on internal steam pressure to hold their shape. Any drop in temperature will cause them to deflate before the structure sets.
- Piercing a hole in the base immediately after baking and returning them to the turned-off oven is not optional. This step releases the trapped steam that would otherwise condense inside and make the shells soft and chewy.
- When filling, work quickly. Once filled, profiteroles begin to soften within an hour as the moisture from the cream migrates into the pastry shell.
- For a very smooth, pipeable crème pâtissière, pass it through a fine mesh sieve before chilling to remove any overcooked egg bits.
- The chocolate sauce can be made up to 1 week ahead. Reheat gently over low heat or in a double boiler, stirring occasionally, until just pourable. Do not microwave on high as it can cause the chocolate to seize.
Variations
- Coffee crème pâtissière: Dissolve 2 tsp instant espresso powder in the warm milk before tempering the eggs. The bittersweet coffee cream pairs magnificently with the dark chocolate sauce.
- Chantilly cream filling: For a lighter, quicker option, fill the puffs with lightly sweetened whipped cream (300ml heavy cream whipped to soft peaks with 2 tbsp powdered sugar and 1 tsp vanilla). Best served immediately.
- White chocolate and raspberry: Fill puffs with vanilla crème pâtissière and a teaspoon of raspberry jam, then drizzle with a white chocolate ganache (200g white chocolate melted with 100ml warm cream) and finish with fresh raspberries.
- Salted caramel sauce instead of chocolate: Drizzle with a homemade salted caramel sauce for a different but equally stunning presentation.
- Croquembouche: Stack the filled profiteroles into a cone shape and bind with threads of spun caramel for the classic French celebration tower.
Troubleshooting & FAQ
My choux puffs collapsed after I took them out of the oven. What went wrong?
My choux batter looks too runny after adding the eggs. Can I fix it?
My crème pâtissière has lumps in it. Is it ruined?
My chocolate sauce is grainy and looks split. How do I fix it?
Can I pipe the profiteroles ahead and refrigerate the raw batter before baking?
Storage & Make-Ahead
- Storage: Filled profiteroles are best served within 1 to 2 hours of assembly. Unfilled baked choux puffs can be stored in an airtight container at room temperature for up to 24 hours (re-crisp in a 325°F/160°C oven for 5 minutes if needed). Crème pâtissière keeps refrigerated for up to 3 days with plastic wrap pressed directly on the surface. Chocolate sauce keeps refrigerated for up to 1 week and reheats beautifully in a small saucepan over low heat.
- Make-Ahead: Choux shells can be baked up to 6 weeks ahead and frozen unfilled (see the Freeze-Ahead method above). The crème pâtissière can be made up to 3 days ahead and refrigerated. The chocolate sauce can be made up to 1 week ahead and reheated. On the day of serving, simply crisp the shells, fill with cold pastry cream, and pour over warm sauce.






