
This coffee cajeta ice cream brings together rich, dark coffee flavor with the caramel sweetness of cajeta for a dessert that feels both sophisticated and indulgent. The streaks of caramel and chunks of chocolate make every spoonful a delightful surprise.
I first made this recipe during a particularly hot summer when my usual coffee shop was closed for renovations. Now it's become our family's favorite weekend dessert project, with everyone taking turns to layer in the cajeta.
Ingredients
- Whole milk or half-and-half: Provides the rich base for our custard
- Heavy cream: Creates that luxurious mouthfeel essential for premium ice cream
- Medium-ground coffee beans: Give better flavor than instant coffee; look for freshly roasted beans
- Cajeta or dulce de leche: Adds sweet caramel ribbons throughout the ice cream
- Chopped chocolate or chocolate chips: Add texture and bittersweet contrast
- Egg yolks: Create a custard that freezes with the perfect scoopable texture
- Sugar: Balances the bitterness of coffee without overwhelming it
- Salt: Enhances all the flavors and balances sweetness
Step-by-Step Instructions
- Infuse the cream:
- Combine milk, part of the cream, sugar, coffee grounds, and salt in a saucepan. Warm gently until steam appears but before it simmers. Cover and allow the coffee to steep for exactly 15 minutes. This extracts maximum flavor without bitter notes.
- Prepare the egg mixture:
- Whisk egg yolks and remaining sugar until pale yellow and slightly thickened. This creates the base for our custard and helps prevent the eggs from curdling when heated.
- Set up for cooling:
- Create an ice bath with a bowl of ice water and place a clean bowl inside it with the remaining cream. The strainer on top will catch any coffee grounds and egg solids. Having this ready ensures you can cool the custard quickly.
- Make the custard:
- Slowly add the warm coffee mixture to the egg yolks while whisking constantly. This process called tempering prevents the eggs from scrambling. Return everything to the saucepan and cook until thickened enough to coat the back of a spoon. When you run your finger through the custard on the spoon, it should leave a clear path.
- Cool the mixture:
- Strain the custard into your prepared cream bowl. The ice bath stops the cooking process immediately, preventing overcooked eggs. Stir occasionally to help release heat, then refrigerate thoroughly. Patience here yields better texture.
- Churn the ice cream:
- Follow your machine's instructions for churning. The custard will gradually thicken and increase in volume as air incorporates. It's ready when it resembles soft-serve ice cream.
- Layer and freeze:
- Create alternating layers of ice cream, cajeta, and chocolate chips in your freezer container. Avoid stirring to maintain distinct cajeta ribbons. Freeze until firm, at least 4 hours.

The first time I served this ice cream at a dinner party, my friend who claimed to dislike coffee desserts ate two full servings. The cajeta softens the coffee's bitterness just enough while maintaining that roasted flavor we coffee lovers crave.
About Cajeta
Cajeta is a Mexican caramel made from goat's milk, giving it a slightly tangy complexity compared to regular dulce de leche. Traditional cajeta has been made in Mexico for centuries, often in copper pots that help develop its distinctive flavor. While you can substitute dulce de leche, seeking out authentic cajeta will give your ice cream a more nuanced flavor profile.
Storage Tips
Homemade ice cream is best consumed within two weeks for optimal texture. Store in a shallow container rather than a deep one to maintain proper temperature throughout. Place parchment paper directly on the surface of the ice cream before covering to prevent ice crystals. Allow 10 minutes at room temperature before serving for the ideal scooping consistency.
Variations Worth Trying
For a spiced version, add 1 teaspoon of cinnamon and a pinch of cayenne to the milk mixture during steeping. You can substitute the coffee grounds with espresso powder for a more intense flavor. For texture contrast, consider adding 1/2 cup of toasted chopped pecans along with the chocolate chips during layering.
Serving Suggestions
Serve this ice cream between two soft chocolate cookies for an elevated ice cream sandwich. For extra indulgence, warm additional cajeta and drizzle over scoops just before serving. Pair with a shot of espresso for an after-dinner affogato variation that will impress coffee enthusiasts.

Frequently Asked Questions
- → What is cajeta and can I substitute it?
Cajeta is a Mexican caramel made from goat's milk. The recipe notes that dulce de leche (cow's milk caramel) can be used as a substitute if cajeta is unavailable. Both provide a rich, sweet caramel flavor that complements the coffee ice cream.
- → How long should I steep the coffee in the cream mixture?
The recipe calls for steeping the coffee grounds in the warm cream mixture for 15 minutes. This allows enough time for the coffee flavor to infuse without becoming bitter.
- → Why layer the cajeta rather than mix it in?
Layering the cajeta (rather than mixing it in) creates distinct ribbons of caramel throughout the ice cream. The recipe specifically instructs to avoid swirling or stirring to maintain these distinct layers for both visual appeal and taste experience.
- → Can I use pre-ground coffee for this recipe?
Yes, the recipe calls for medium-ground coffee, so standard pre-ground coffee works well. Using freshly ground coffee beans might provide a more vibrant flavor, but either option will work.
- → How do I know when the custard is properly thickened?
The custard is properly thickened when it coats the back of a spatula. A good test is to run your finger through the custard on the spatula - if it leaves a clear path that doesn't immediately fill in, the custard is ready.
- → Should I remove the coffee grounds before churning?
The recipe notes that you can strain the custard again right before freezing to remove any remaining coffee grounds for improved texture and appearance, though they are edible. This is optional based on your preference.