You received’t imagine this caramel apple dip recipe till you style it! Stir simply 4 components right into a shiny peanut butter caramel that’s vegan and gluten-free. It’s so easy and the most effective wholesome snack!
Why we love this recipe
Hiya and welcome to our present obsession: this no-cook caramel apple dip recipe! Simply 4 components come collectively right into a shiny caramel texture that tastes like peanut butter, nevertheless it’s fully no prepare dinner and dairy free. It’s like some type of kitchen sorcery!
Our children go loopy over these things, and it couldn’t be less complicated to combine along with components you in all probability have already got readily available. It’s the proper wholesome snack and it’s additionally good as a fall appetizer. As cookbook authors every fall we create some apple recipes with apples we decide at an orchard: that is the #1 favourite of the season!
Featured reader feedback
“This dip was an enormous hit! I like dipping apple slices in plain pure PB, so this was an actual particular improve! Tastes like a sweet apple with out the mess and stickiness!” -Tanvee
Ingredient notes for apple dip
This caramel apple dip has simply 4 components that stir collectively into a fast caramel texture—it’s like magic! A typical caramel recipe has heavy cream and sugar that make the candy, sticky texture. This recipe makes use of peanut butter (sure!) and maple syrup to imitate this frequent ingredient, making it a more healthy different utilizing a pure sweetener. Right here’s what you’ll want:
- Creamy peanut butter: We used no sugar added peanut butter. A high quality peanut butter makes a nicer tasting apple dip. For peanut allergic reactions, attempt a top quality creamy almond butter or cashew butter. (Be happy to experiment with sunflower butter for nut free.)
- Pure maple syrup: For all of our recipes with maple syrup, we desire utilizing Grade A: Darkish Coloration and Sturdy Taste. We discover it tastes higher than bottles labeled Amber or Golden.
- Impartial oil: The oil on this recipe makes the shiny texture; we don’t advocate leaving it out. We used natural grapeseed oil; it’s also possible to substitute melted coconut oil.
- Vanilla extract: The vanilla brings the traditional taste to the caramel.
- Salt (optionally available): Relying on the saltiness of the peanut butter model you employ, you might need to use a pinch of salt. Don’t go overboard, as a result of all you want is a bit of!
Oil alternate options
Whereas olive oil is a more healthy oil, it does carry fairly a robust taste to the caramel (we examined it and appreciated the flavour higher with impartial oil). It’s also possible to use melted coconut oil, however be mindful it does change into stable when refrigerated, whereas grapeseed or vegetable oil keep mushy.
Methods to serve apple dip
This apple dip is the proper fall appetizer for a celebration or nice as a wholesome snack anytime! It’s child pleasant and grownup pleasant, and everybody we’ve served it too gobbles it proper up. Aside from sliced apples, listed below are a couple of extra methods to serve this wholesome caramel dip:
- Pear slices
- Contemporary strawberries
- Graham crackers
- Vanilla cookies or ginger cookies
- Pretzels
- With chopped peanuts on prime
Storing leftovers
This caramel apple dip shops very properly refrigerated. Take pleasure in it instantly, or refrigerate it for as much as 2 weeks.
Extra dip recipes
Relating to events and snacks, we love dip recipes, from fruit dips to veggie dips to chip dips and extra! Listed below are a few of our favorites:
- Fruit dips like our simple fruit dip or chocolate hummus
- Veggie dips like veggie dip, dill dip or hummus
- Chip dips like ranch dip, taco dip, spinach dip, bean dip, dill pickle dip or spinach artichoke dip
Dietary notes
This apple dip recipe is vegetarian, vegan, plant-based, dairy-free and gluten-free.
Continuously requested questions
Tart apples like Granny Smith, Honeycrisp, or Pink Girl work properly with this candy dip as they supply a pleasant steadiness of flavors.
Sure, you can also make this dip forward of time and retailer it in an hermetic container within the fridge. We advocate serving inside a couple of days, however leftovers last as long as 2 weeks.
If the dip is simply too skinny, add a bit of extra peanut butter. If it’s too thick, add a bit of extra maple syrup and even water to skinny it out.
Apple Dip (4 Substances)
Prep Time: 5 minutes
Cook dinner Time: 0 minutes
Whole Time: 5 minutes
Yield: 1 cup
Description
You received’t imagine this caramel apple dip recipe till you style it! Stir simply 4 components right into a shiny peanut butter caramel that’s vegan and gluten-free. It’s so easy and the most effective wholesome snack!
Substances
- ½ cup creamy peanut butter (no sugar added)
- ½ cup pure maple syrup
- 2 tablespoons impartial oil (like grapeseed or vegetable, or melted coconut oil; see Notes)
- ½ teaspoon vanilla extract
- 1 pinch salt (optionally available)
- Sliced apples, for serving (we like Pink Girl or Granny Smith)
Directions
- Combine the peanut butter, maple syrup, oil, vanilla extract, and salt in a small bowl. Take pleasure in instantly with apple slices, or refrigerate for as much as 2 weeks.
Notes
For the oil, a impartial oil is greatest. Whereas olive oil is a more healthy oil, it does carry fairly a robust taste to the caramel (we examined it and appreciated the flavour higher with impartial oil). It’s also possible to use melted coconut oil, however be mindful it does change into stable when refrigerated, whereas grapeseed or vegetable oil keep mushy.
For the maple syrup, we desire utilizing Grade A: Darkish Coloration and Sturdy Taste.
For the nut butter, you possibly can substitute a creamy almond butter or cashew butter. You possibly can experiment with sunflower butter for nut-free (we’ve not examined).
- Class: Dip
- Methodology: No Cook dinner
- Delicacies: Vegan
- Food plan: Vegan
window.trCommon={«minRating»:6,»ajaxurl»:»https://www.acouplecooks.com/wp-admin/admin-ajax.php»,»ratingNonce»:»»,»postId»:164835};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
window.addEventListener( ‘click on’, e => {
let anchor = e.goal;
if ( ! anchor.classList.incorporates( ‘tasty-recipes-scrollto’ ) ) {
if ( anchor.tagName === ‘A’ ) {
return;
}
anchor = anchor.closest( ‘a’ );
if ( ! anchor || ! anchor.classList.incorporates( ‘tasty-recipes-scrollto’ ) ) {
return;
}
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const factor = doc.querySelector( selector );
if ( ! factor ) {
return;
}
factor.scrollIntoView( { habits: ‘easy’ } );
historical past.pushState( {}, », selector );
}
};
(operate( callback ) {
if ( doc.readyState !== ‘loading’ ) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.smoothScroll.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if («wakeLock» in navigator && «request» in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = doc.querySelectorAll(this.cookModeSelector);
if (cookModes.size > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘enter[type=»checkbox»]’).addEventListener(«change», occasion => {
this.checkboxChange(occasion.goal);
}, false);
} else {
cookMode.model.show = «none»;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = doc.querySelectorAll(this.cookModeSelector + ‘ enter[type=»checkbox»]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
attempt {
this.wakeLock = await this.wakeLockApi.request(«display screen»);
this.wakeLock.addEventListener(«launch», () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.launch();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(operate(callback) {
if (doc.readyState !== «loading») {
callback();
} else {
doc.addEventListener(«DOMContentLoaded», callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
factor: null,
tooltipElement: null,
deleting: false,
init( factor ) {
if ( this.deleting ) {
return;
}
this.factor = factor;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.take away( ‘opened’ );
setTimeout( () => {
this.tooltipElement.take away();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = doc.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
doc.physique.replaceChild( tooltipElement, currentTooltipElement );
} else {
doc.physique.appendChild( tooltipElement );
}
this.tooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
},
present() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.factor.getBoundingClientRect().prime
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().peak;
const tooltipLeft = this.factor.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.factor.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘model’, ‘prime:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.take away( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, knowledge, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.ship( this.preparePostData( knowledge ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.standing === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( knowledge ) {
const formData = new FormData();
for ( const key in knowledge ) {
formData.append( key, knowledge[key] );
}
return formData;
},
};
window.TastyRecipes.rankings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const rankings = doc.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( rankings.size {
occasion.preventDefault();
this.defaultRating = occasion.goal.closest( ‘.checked’ ).dataset.ranking;
this.setCheckedStar( occasion.goal );
this.maybeSendRating( this.defaultRating, occasion.goal );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click on’, e => {
// Bailout (do not take away the tooltip) when the clicked factor is a ranking star, or it is the tooltip itself.
if ( e.goal.closest( ‘.tasty-recipes-rating’ ) || e.goal.classList.incorporates( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( ranking ) {
const ratingInput = doc.querySelector( ‘#reply .tasty-recipes-rating[value=»‘ + rating + ‘»]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click on();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = doc.querySelectorAll( ‘enter.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click on’, currentEvent => {
const selectedRating = currentEvent.goal.getAttribute( ‘worth’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( ranking ) {
if ( ranking < this.minRating ) {
doc.physique.classList.take away( 'tasty-recipes-selected-minimum-rating' );
return;
}
doc.physique.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( ranking ) {
const commentTextarea = doc.getElementById( 'remark' );
if ( ! commentTextarea ) {
return;
}
if ( ranking {
window.TastyRecipes.staticTooltip.changeMessage( response.knowledge.message );
window.TastyRecipes.staticTooltip.present();
this.updateAverageText( response.knowledge, recipeCardElement );
this.maybeFillCommentForm( response.knowledge );
// Cover the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.knowledge, ranking );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( knowledge, recipeCardElement ) {
if ( ! knowledge.common ) {
return;
}
this.setRatingPercent( knowledge );
if ( ! knowledge.rely ) {
return;
}
const quickLink = doc.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, knowledge );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = knowledge.common;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), knowledge );
},
setTextInContainer( container, knowledge ) {
if ( ! container ) {
return;
}
if ( knowledge.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = knowledge.label;
}
return;
}
const averageElement = container.querySelector( ‘.common’ );
if ( averageElement ) {
averageElement.textContent = knowledge.common;
}
const countElement = container.querySelector( ‘.rely’ );
if ( countElement ) {
countElement.textContent = knowledge.rely;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=»‘ + Math.ceil( this.defaultRating ) + ‘»]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( knowledge ) {
this.defaultRating = knowledge.common.toFixed( 1 );
const elements = knowledge.common.toFixed( 2 ).toString().break up( ‘.’ );
this.currentRatingPercentage = elements[1] ? elements[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( goal ) {
const cardRatingContainer = goal.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = goal.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( knowledge ) {
if ( ! knowledge.remark || ! knowledge.remark.content material ) {
return;
}
const commentForm = doc.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.worth ) {
return;
}
// Add remark particulars for modifying.
commentBox.innerHTML = knowledge.remark.content material;
if ( knowledge.remark.identify ) {
commentForm.querySelector( ‘[name=author]’ ).worth = knowledge.remark.identify;
commentForm.querySelector( ‘[name=email]’ ).worth = knowledge.remark.e mail;
}
},
maybeResetTooltip( recipeCardElement, knowledge, ranking ) {
if ( this.savingRating === ranking ) {
this.resetTooltip( recipeCardElement, knowledge );
}
},
resetTooltip( recipeCardElement, knowledge ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default ranking.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( knowledge && knowledge.common ) ? knowledge.common.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, knowledge );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=»‘ + Math.ceil( this.defaultRating ) + ‘»]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = doc.querySelector( ‘#reply .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.show.contains( ‘flex’ ) ) {
ratingsButtons.model.path = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Choose the ranking that was beforehand chosen in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=»‘ + tastyRecipesRating + ‘»]’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click on’, occasion => {
if ( ratingSpan === occasion.goal ) {
return;
}
ratingSpan.previousElementSibling.click on();
} );
}
}
};
(operate(callback) {
if (doc.readyState !== «loading») {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.rankings.init( window.trCommon ? window.trCommon.minRating : 4 );
});