Creamy Vegan Potato Salad with Leeks

Looking for a lighter healthy potato salad? I love this vegan potato salad recipe, which was inspired by mother-in-law Helena’s potato salad that she has been making for years in Sweden. The simplicity of the salad is the secret; there are no fussy ingredients, only a light touch of vegan mayo and sour cream, mixed with leek and capers. The results are a fluffy, creamy salad with just a hint of subtly pungent leeks, the light sea fermented flavor of capers, and ample chunks of cooked fresh potatoes. I love to serve this vegan potato salad year round–it’s great as a side dish for weekend meals, parties, picnics, potlucks, tailgate meals, and holiday tables. With only 6 ingredients, you can make this gluten free salad in under 30 minutes.

How long does potato salad last?

This recipe holds really well, so you can make this potato salad over the weekend, cover it and store it in the fridge, and enjoy it all week long (up to 5 days). This classic potato salad is delicious served with a BLTA sandwich, bowl of lentil soup, or veggie burger.

These are the key ingredients in this recipe: fresh potatoes, such as Yukon gold, plant-based sour cream and mayo, capers, and leeks. Print clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon Pin Recipe

Description

This creamy vegan potato salad with leeks is a light potato salad flavored with the subtle flavor of leeks, fresh potatoes, capers, and plant-based mayo and sour cream.

  • 3 pounds thin-skinned potatoes (i.e., Yukon gold, red skin potatoes)
  • 1 small leek, white and green parts
  • 2 tablespoons capers, drained
  • ½ cup vegan mayonnaise (make your own here)
  • 1 cup vegan sour cream (i.e., Kite Hill, Forager, or make your own here)
  • ½ teaspoon white pepper
  • ½ teaspoon salt (optional)

  1. Scrub outer surface of potatoes (do not peel), slice in half, and place in a large pot filled two-thirds full of water. Cover with lid and bring to a boil. Reduce heat to medium and simmer until potatoes are just barely tender, but still firm (about 12-20 minutes, depending on size and type of potatoes). Drain water immediately and transfer to a colander to cool. When potatoes are cooled enough to handle, slice into large cubes (about 1 ½ inches) and set aside. 
  2. Meanwhile, trim the leeks by removing any tough outer leaves. Slice white part thinly into circles, then into halves to create “moons”. Slice tender green section into thin slices. Place in a colander and rinse well, then drain. (Leeks can carry a lot of dirt during their growing process, so for best results rinse after slicing). Add to a large bowl.
  3. Add capers to the bowl with leeks. 
  4. In a small bowl, combine vegan mayonnaise, vegan sour cream, white pepper, and salt (optional) and mix until smooth. 
  5. Add slightly cooled potatoes to the bowl with leeks and capers and combine gently. 
  6. Gently fold in the mayonnaise mixture into the potato mixture until well combined, being careful to maintain the texture of the potatoes. (Rigorous stirring will turn the potatoes into “mashed potatoes”!)
  7. Serve immediately or refrigerate until serving time. Makes 12 servings (about 2/3 cup each).
  8. Store covered in fridge for up to 5 days. 
  • Prep Time: 15 minutes
  • Cook Time: 20 minutes
  • Category: Side Dish
  • Cuisine: American

Nutrition

  • Serving Size: 1 serving
  • Calories: 140
  • Sugar: 2 g
  • Sodium: 106 mg
  • Fat: 5 g
  • Saturated Fat: 3 g
  • Carbohydrates: 22 g
  • Fiber: 3 g
  • Protein: 3 g

Keywords: vegan potato salad, how long to boil potatoes for potato salad, healthy potato salad, how long does potato salad last

D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed)return[0,sgn*P,Q];var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}; window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”)); window.tastyRecipesFormatAmount = function(amount, el) { if ( parseFloat( amount ) === parseInt( amount ) ) { return amount; } var roundType = ‘frac’; if (typeof el.dataset.amountShouldRound !== ‘undefined’) { if (‘false’ != el.dataset.amountShouldRound) { if ( ‘number’ === el.dataset.amountShouldRound ) { roundType = ‘number’; } else if (‘frac’ === el.dataset.amountShouldRound) { roundType = ‘frac’ } else if (‘vulgar’ === el.dataset.amountShouldRound) { roundType = ‘vulgar’ } else { roundType = ‘integer’; } } } if (‘number’ === roundType) { amount = Number.parseFloat(amount).toPrecision(2); } else if (‘integer’ === roundType) { amount = Math.round(amount); } else if (‘frac’ === roundType || ‘vulgar’ === roundType) { var denom = 8; if (typeof el.dataset.unit !== ‘undefined’) { var unit = el.dataset.unit; if ([‘cups’,’cup’,’c’].includes(unit)) { denom = 4; if (0.125 === amount) { denom = 8; } if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) { denom = 6; } } if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) { denom = 2; } if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) { denom = 8; } } var amountArray = frac.cont( amount, denom, true ); var newAmount = ”; if ( amountArray[1] !== 0 ) { newAmount = amountArray[1] + ‘/’ + amountArray[2]; if (‘vulgar’ === roundType) { Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) { newAmount = vulgar; } }); } } if ( newAmount ) { newAmount = ‘ ‘ + newAmount; } if ( amountArray[0] ) { newAmount = amountArray[0] + newAmount; } amount = newAmount; } return amount; } window.tastyRecipesUpdatePrintLink = () => { const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ ); const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ ); // Use the first print button found as the canonical URL source. const printButton = document.querySelector( ‘.tasty-recipes-print-button’ ); // If no print button is available, we can’t reliably update its href. if ( ! printButton ) { return; } const printURL = new URL( printButton.href ); const searchParams = new URLSearchParams( printURL.search ); const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ ); const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ ); let unit = ”; let scale = ”; if ( unitButton ) { unit = unitButton.dataset.unitType; searchParams.delete(‘unit’); searchParams.set( ‘unit’, unit ); } if ( scaleButton ) { scale = scaleButton.dataset.amount; searchParams.set( ‘scale’, scale ); } const paramString = searchParams.toString(); const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString; printLinks.forEach( ( el ) => { el.href = newURL; }); printButtons.forEach( ( el ) => { el.href = newURL; }); } // When the document loads, look for unit and scale parameters and setup the recipe card // to reflect those values. document.addEventListener( ‘DOMContentLoaded’, () => { // Only reflect URL parameters on the print view. if ( ! window.location.href.includes( ‘/print/’ ) ) { return; } const searchParams = new URLSearchParams( window.location.search ); const unit = searchParams.get( ‘unit’ ); const scale = searchParams.get( ‘scale’ ); if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) { document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click(); } if ( scale && Number(scale) > 0 ) { document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click(); } }); }()); (function(){ var buttonClass = ‘tasty-recipes-scale-button’, buttonActiveClass = ‘tasty-recipes-scale-button-active’, buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’); if ( ! buttons ) { return; } buttons.forEach(function(button){ button.addEventListener(‘click’, function(event){ event.preventDefault(); var recipe = event.target.closest(‘.tasty-recipes’); if ( ! recipe ) { return; } var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass); otherButtons.forEach(function(bt){ bt.classList.remove(buttonActiveClass); }); button.classList.add(buttonActiveClass); var scalables = recipe.querySelectorAll(‘span[data-amount]’); var buttonAmount = parseFloat( button.dataset.amount ); scalables.forEach(function(scalable){ if (typeof scalable.dataset.amountOriginalType === ‘undefined’ && typeof scalable.dataset.nfOriginal === ‘undefined’) { if (-1 !== scalable.innerText.indexOf(‘/’)) { scalable.dataset.amountOriginalType = ‘frac’; } if (-1 !== scalable.innerText.indexOf(‘.’)) { scalable.dataset.amountOriginalType = ‘number’; } Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (-1 !== scalable.innerText.indexOf(vulgar)) { scalable.dataset.amountOriginalType = ‘vulgar’; } }); if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) { scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType; } } var amount = parseFloat( scalable.dataset.amount ) * buttonAmount; amount = window.tastyRecipesFormatAmount(amount, scalable); if ( typeof scalable.dataset.unit !== ‘undefined’ ) { if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) { if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) { amount += ‘ ‘ + scalable.dataset.unit; } } } scalable.innerText = amount; }); var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’); nonNumerics.forEach(function(nonNumeric){ var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’); if ( indicator ) { nonNumeric.removeChild(indicator); } if ( 1 !== buttonAmount ) { var indicator = document.createElement(‘span’); indicator.setAttribute(‘data-non-numeric-label’, true); var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’); indicator.appendChild(text); nonNumeric.appendChild(indicator); } }); window.tastyRecipesUpdatePrintLink(); }); }); }()); 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 = document.querySelectorAll(this.cookModeSelector); if (cookModes.length > 0) { for (const cookMode of cookModes) { if (this.wakeLockApi) { cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => { this.checkboxChange(event.target); }, false); } else { cookMode.style.display = “none”; } } } }, checkboxChange(checkbox) { checkbox.checked ? this.lock() : this.unlock(); }, setCheckboxesState(state) { const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’); for (const checkbox of checkboxes) { checkbox.checked = state; } }, async lock() { try { this.wakeLock = await this.wakeLockApi.request(“screen”); this.wakeLock.addEventListener(“release”, event => { this.wakeLock = false; this.setCheckboxesState(false); }); this.setCheckboxesState(true); } catch (error) { this.setCheckboxesState(false); } }, unlock() { if (this.wakeLock) { this.wakeLock.release(); this.wakeLock = false; } this.setCheckboxesState(false); } }; (function(callback) { if (document.readyState !== “loading”) { callback(); } else { document.addEventListener(“DOMContentLoaded”, callback); } })(() => { window.TastyRecipes.cookMode.init(); }); window.TastyRecipes = window.TastyRecipes || {}; window.TastyRecipes.ratings = { init( min_rating ) { this.min_rating = min_rating; this.recipeRatingReflectInRespondSection(); this.addBodyClassBasedOnSelectedRating(); this.backwardCompRespondRatingPosition(); }, recipeRatingReflectInRespondSection() { const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’); if (ratings.length { this.fireRatingInRespond( event.target.dataset.rating ); } ); } }, fireRatingInRespond( rating ) { const ratingInput = document.querySelector(‘.tasty-recipes-rating[value=”‘ + rating + ‘”]’); if ( ! ratingInput ) { return; } ratingInput.click(); }, addBodyClassBasedOnSelectedRating() { const ratingInputs = document.querySelectorAll(‘input.tasty-recipes-rating’); if ( ratingInputs.length { let selectedRating = event.target.getAttribute( ‘value’ ); this.handleBodyClassByRating( selectedRating ); this._toggle_comment_textarea_required( selectedRating ); } ); } }, handleBodyClassByRating( rating ) { if ( rating = comment_textarea.length ) { return; } if ( rating < this.min_rating ) { comment_textarea.setAttribute( 'required', '' ); return; } comment_textarea.removeAttribute('required'); }, backwardCompRespondRatingPosition() { const ratings_buttons = document.querySelector( '#respond .tasty-recipes-ratings-buttons' ); if ( ratings_buttons.length { if ( rating_span === event.target ) { return; } rating_span.previousElementSibling.click(); } ); } } }; (function(callback) { if (document.readyState !== "loading") { callback(); } else { document.addEventListener("DOMContentLoaded", callback); } })(() => { window.TastyRecipes.ratings.init( window.tasty_recipes_min_rating ); }); ]]>

For other salad recipes, check out some of my favorites:

Green and Gold Brown Rice Salad
Arugula Salad with Tomatoes
Green Bean, Chickpea, and Farro Salad with Za’atar
Spicy Cauliflower Salad with Cilantro
Shaved Brussel Sprout Salad with Peanuts and Papaya
Strawberry Spinach Salad with Vegan Feta and Balsamic Vinaigrette
Red Plum Wheat Berry Salad
Cucumber Tomato Onion Salad

This post may contain affiliate links. For more information click here.

Source

You May Also Like

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다