Marie Bostwick's Blog, page 2

July 14, 2025

Grilled Apricot and Burrata Salad

The finished and plated Burrata Salad

The finished and plated Burrata Salad

Lucious grilled apricots, creamy burrata, and crunchy almonds served over tender lettuce and arugula. My Grilled Apricots and Burrata Salad is a great summertime lunch or light dinner. So good!

Celebrate Summer with Grilled Apricot and Burrata Salad

For food lovers, a summer stroll through the produce section or local farmer’s market is pure joy. Displays of fresh, colorful, peak-of-season fruits and veggies are a feast for the eye and the imagination.

Still, summertime bounties present something of a problem, albeit a good one. With so much mouth-watering deliciousness on display, where do you even start? How do you choose?

For me, the answer usually involves stone fruits. Though you can buy peaches, nectarines, and apricots practically year-round these days, why would you? 

Out-of-season stone fruits are incredibly expensive and invariably disappointing. In-season,summertime stone fruits are pure poetry. And it seems to me that this year’s crop is even better than usual – juicy, sweet, and succulent.

But the peak season for stone fruits is short. So, I’m incorporating them into as many recipes as I can these days, including this phenomenal Grilled Apricot and Burrata Salad.

This light, delicious mealtime salad is summer on a plate. And so easy to make.

The finished and plated Burrata Salad

What Do You Need to Make Grilled Apricot and Burrata Salad?

The ingredients for the Grilled apricots and Burrata Salad

You don’t need many ingredients to make this marvelous salad. But it’s important that you use the best ingredients. That means getting the freshest, ripest, most flavorful produce you can find.

Apricots – Use the squeeze test to make sure your apricots are ripe, but not too ripe. If a gentle but firm press of your fingers makes a slight indentation in the fruit, it’s perfect.Olive oil – For grilling the apricots. Though I used olive oil, you could sub just about any oil here. Almond, sesame, or peanut oil might add an extra hint of subtle flavor.Burrata – This fresh, mild-tasting Italian cheese must be refrigerated, so look for it in a deli cool case or dairy section. Burrata has a firm outer skin like mozzarella, but the inside is soft, creamy, and simply divine.Arugula and Green Leaf Lettuce – Though you can sub other greens, I love a mixture of arugula and green leaf lettuce for this salad. The slightly spicy arugula is wonderful with the sweet grilled apricots and creamy Burrata.Marcona Almonds – A sprinkle of skinless Marcona almonds adds crunch and a touch of nutty flavor to the dish. However, you could substitute other nuts. Roasted pistachios would be a wonderful choice, too.Maple Vinaigrette – My simple maple vinaigrette is slightly sweet and slightly tart, making it absolutely perfect for this dish. It enhances the other ingredients without overpowering them. Find my recipe here.Honey – A very light drizzle of warm honey just before serving is optional. But it can be a nice finishing touch.Grilling the Apricots

One of the advantages of serving salad for a summertime lunch or dinner is that there’s not much actual cooking involved. You simply place the ingredients in a bowl, make the dressing, pour it on, toss the salad, and voila – dinner is served!

This Grilled Apricot and Burrata follows that formula, with one exception. Though it might seem a little intimidating if you’ve never done it before, grilling apricots is pretty easy.

The apricots, sliced in half and being brushed with olive oil

Begin by cutting the apricots in half and brushing the cut side with oil. You’ll also want to rub some oil on the grill rack or pan to help keep the apricots from sticking.

(Unfortunately, I forgot that step this time, so I didn’t get as many grill marks as I would have liked. But they still looked and tasted great!)

Preheat the grill, making sure it’s nice and hot. Then place the apricots cut side down and grill until they soften slightly – about three to four minutes.

The apricots being grilled

Either an outdoor grill or a grill pan will work here.  In a pinch, you could just pop the apricots into the oven under the broiler for a couple of minutes. But grilling them is almost as easy, and I think the grill marks look extra nice.

No matter how you prepare the apricots, Grilled Apricot and Burrata Salad tastes terrific! Give it a try soon!

Print The finished and plated Burrata Salad Grilled Apricot and Burrata Salad

Author: Marie Bostwick Yield: 2 servings Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients 4 ripe medium apricots1-2 T olive oil2 cups arugula2 cups green leaf lettuceMaple vinaigrette – recipe here2 2 oz balls burrata¼ cup Marcona almonds, chopped (can sub pistachios)Drizzle of warm honey – optional

Cook Mode Prevent your screen from going dark Instructions Brush grill rack or grill pan with oil, then preheat.Cut the apricots in half, brush generously with oil. Place the apricots, cut side down, on the preheated grill or grill pan. Cook for 3-4 minutes, until apricots soften slightly. Remove from grill and set aside.Place arugula and lettuce in a bowl. Pour on desired amount of Maple Vinaigrette and toss. Divide salad between two plates.Place one ball of burrata in the center of each plate, on top of the dressed greens. Arrange four apricot halves around the burrata. Sprinkle chopped almonds over the salad. If desired, drizzle a little warmed honey over the salad. Serve immediately. Did you make this recipe?

Share a photo and tag us — we can't wait to see what you've made!

 •  0 comments  •  flag
Share on Twitter
Published on July 14, 2025 06:54

June 30, 2025

No Cook Tabouli: A Mediterranean Diet Recipe

The dressing being poured into the No Cook Tabouli

The finished and mixed No Cook Tabouli

Beat the heat with this healthy and absolutely delicious No Cook Tabouli! Enjoy the bright, fresh flavors of this Mediterranean classic without turning on the stove! A summertime winner!

Too Hot to Cook? Make This Healthy, Delish No Cook Tabouli!

Though temperatures are moderate in most of the Pacific Northwest, a huge swath of the country is sweltering beneath a dreaded summertime heat dome.So, this seemed like a perfect time for me to share a recipe that doesn’t require turning on the oven or stove. Because sometimes it’s just too hot to cook.

Still, no matter how high the mercury goes, we still have to eat, right? And while the temptation to subsist on ice cream may be strong right now, it’s probably not a good idea for more than a day. Two at the most.

That’s where this yummy No Cook Tabouli comes in.

It’s loaded with heart-healthy, good-for-you ingredients that also taste terrific. Those bright, fresh flavors will have you and your family going back for seconds, even on the hottest days.

Best of all, the kitchen tools you’ll need to make this classic Mediterranean dish are a cutting board, a good knife, and a couple of bowls.

No heat. No flames. And NO cooking!

Making No Cook Tabouli – Technique, Subs, and Seasoning

The bulgar after soaking in water

Start with the Bulgar

The most important ingredient for tabouli is bulgar. Bulgar is cracked wheat that’s partially boiled and then dried. It’s frequently used in Middle Eastern cooking.

Since I started trying to eat more in line with the Mediterranean diet, I’ve been using a lot more bulgar. It’s got a nice, chewy texture and a slightly nutty flavor. Normally, I boil it. However, bulgar can be “cooked” without even turning on the stove.

Pour two parts warm tap water over one part bulgar, and leave it to soak. Two to three hours later, the water will be absorbed and the bulgar will be ready to eat.

All you’ll need to turn bulgar into delicious tabouli is lots of yummy herbs, veggies, and a light, tasty dressing.

The chopped veggies and herbs

Next, Add Herbs and Veggies

This recipe for No Cook Bulgar calls for generous additions of tomatoes, cucumbers, and shallots.

The amounts I suggest are just guidelines. If you like more tomatoes in your tabouli, go for it! Same with the cucumbers. There’s really no such thing as too many veggies, right?

If you can get your hands on homegrown or locally grown tomatoes, I highly recommend them. There’s nothing like the taste of a real, vine-ripened tomato! Otherwise, I’d use Roma tomatoes. They have a better flavor than most other grocery store options.

Likewise, fresh, homegrown cukes are the gold standard. However, cucumber season is still a way off, so I used English cucumbers. They’ve got a good flavor and a delicate skin, so you don’t have to peel them.

Shallots bring a nice bite to this dish, and the flavor isn’t quite as sharp as regular onions. That’s why I used them here. You could also use green onions or red onions. Whatever type you use, make sure they are chopped small. Onions add a nice zing, but biting into a big chunk of raw onion can be too much of a good thing!

Classic tabouli includes generous helpings of fresh parsley and mint. Unless you really dislike them, I’d stick with that. These fresh, cooling herbs bring a lot to the party, especially on a hot day.

The dressing being poured into the No Cook Tabouli

Dressing and Seasoning

The basic version of the dressing for this No Cook Tabouli couldn’t be simpler. It’s just olive oil, fresh-squeezed lemon juice, salt, and pepper.

However, you might want to jazz it up a little.

For a little extra spice, add one-half to a whole teaspoon of red pepper flakes. If you like more lemon flavor, add finely grated zest from the lemons. My go-to is a teaspoon of dried sumac, a classic Mediterranean spice with a citrusy flavor.

No Cook Tabouli – Almost A Meal in Itself

The No Cook Tabouli served with hummus

With whole grains, lots of veggies, and a heart-healthy olive oil dressing, No Cook Tabouli is a terrific side dish or starter salad. In fact, it’s almost a meal in itself. The only thing that’s missing is protein.

But that’s an easy fix.

Add protein to your tabouli by stirring in a can of drained, rinsed chickpeas. You can also crumble in a few ounces of tangy Feta cheese. My favorite way to make tabouli into a meal is to enjoy it with a generous helping of hummus.

No matter how you serve it, No Cook Tabouli is a terrific summertime dish. Give it a try this week!

Print The dressing being poured into the No Cook Tabouli No Cook Tabouli: A Mediterranean Diet Recipe

Author: Marie Bostwick Yield: 4 entrée servings, 6-8 as a starter or side Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients

For the tabouli:

1 cup bulgar (I used Bob’s Red Mill brand)2 cups warm tap water2-3 Roma tomatoes, seeded and diced1 large English cucumber, diced1 large shallot, peeled and chopped fine (Can sub green or red onions)1 bunch parsley, chopped (About one cup chopped)½ bunch mint, chopped (About one half cup)

For the dressing:

¼ cup olive oil¼ cup fresh-squeezed lemon juice (from 2 medium-sized lemons)1 tsp Kosher salt¼ tsp fresh ground pepper

Optional add ins – ½ to 1 tsp red pepper flakes, or zest from the lemon rind, or 1 tsp ground sumac

Cook Mode Prevent your screen from going dark Instructions Place the bulgar in a bowl. Pour in the warm water. Cover and allow bowl to sit on the counter for 2-3 hours, or leave in the refrigerator overnight, until the liquid is absorbed into the bulgar.Fluff the bulgar with a fork. Stir in diced tomatoes, cucumbers, shallots, chopped parsley and mint. Set aside.Whisk the olive oil, lemon juice, salt, pepper, and any optional seasonings together in a bowl or measuring cup. Pour dressing over the tabouli and stir. Can be served immediately or cover and place in the refrigerator to serve later. Tabouli will keep stored in the fridge for 3 to 5 days. Did you make this recipe?

Share a photo and tag us — we can't wait to see what you've made!

 •  0 comments  •  flag
Share on Twitter
Published on June 30, 2025 06:35

June 23, 2025

The Best Maple Vinaigrette Dressing

The Maple Vinaigrette Dressing in a bottle next to a plate of salad

The Maple Vinaigrette Dressing in a bottle next to a plate of salad

This simple, 5-ingredient recipe makes the Best Maple Vinaigrette Dressing you’ve ever tasted. Transforms your favorite salad into a restaurant-worthy delight! So good! And so easy!

5 Ingredients + 5 Minutes = The Best Maple Vinaigrette Dressing

Things will have calmed down by the time you read this. However, as I write this, there’s lot is going on around my house.

My eldest son, his wife, and two adorable children flew in from Oklahoma City last night. Tomorrow, our middle son will drop off his four kiddos. An hour later, The Chairman and I will be loading all six granddarlings into our cars and heading down the road for three days of “Grammy and Grampy Camp.”

I know it’s going to be a lot of fun for all of us.

Still, packing and prepping all the food, gear, games, clothes, and craft projects to keep six campers happy for three days takes time. A lot of time. Which means I’ve had less time for cooking this week.

Fortunately, just a few ingredients and a few minutes are all I need to whip up a dressing that will transform any salad into a gourmet delight that rivals anything you’d find in your favorite restaurant.

The Maple Vinaigrette Dressing bein g poured on top of a plate of salad

Rich, sweet maple syrup paired with fresh-squeezed lemon juice is the foundation of this delicious vinaigrette. Add in a few extra ingredients and you’ve got a bright tasting, surprisingly sweet-tart dressing that’s terrific on all kinds of green salads or fruit salads.

And did I mention that this Maple Vinaigrette Dressing only takes five ingredients?

Oh, I did? Well, it’s a point worth repeating in my book, and a big plus when you’re pressed for time. And since I am, let’s cut to the chase and talk ingredients.

Here’s All You Need to Make the Best Maple Vinaigrette Dressing

As I’ve mentioned in other recipe posts, I don’t count salt and pepper with totaling up ingredients, as they’re needed in basically every dish. So, you will need to add Kosher salt and fresh ground pepper to taste for this recipe.

Apart from that, the only five ingredients you need are…

Maple Syrup – When you’re only using a few ingredients for a recipe, they need to be the best you can get. So, real maple syrup is a must for this recipe. That factory-produced, maple-flavored syrup won’t taste nearly as good as the real deal.Lemon Juice – Again, you want great ingredients that are as fresh as can be. In this case, that means just-squeezed juice for real lemons. No bottled lemon juice!Neutral Oil – Normally, olive oil is my go-to. But the flavor would be too strong from this dressing. Use a neutral, unflavored oil such as grapeseed, sunflower, canola, corn, vegetable, avocado, or safflower oils. These oils have little to no flavor, so they will let the maple and lemon taste shine through.Dijon Mustard – Either regular or stone-ground Dijon mustard. Champagne mustard could work too, but I’d avoid yellow mustard.Green onions – I had them on hand, so that’s what I used. Chives, thyme, dill, or other fresh herbs could work well here, too.

The maple syrup being poured into the lemon juice

The green onion being added to the dressing mixture

Making the Best Maple Vinaigrette Dressing – AKA Your New Favorite Salad Dressing

When I said that you’d only need five ingredients plus five minutes to make this maple vinaigrette, I was probably stretching the truth.

Once you’ve assembled the ingredients, it’ll only take a minute or two. You just whisk everything together in a bowl, or put them into a jar with a lid and give it a good shake. That’s all there is to it. 

My Maple Vinaigrette Dressing can be kept covered in the refrigerator for up to two weeks. (Though I doubt it will last that long.) The oil and juice will separate if they’re left to sit, so be sure to stir or shake again just before pouring on your salad.

If you’ve never made homemade dressing before, this is a terrific one to start with. Homemade salad dressings are so much cheaper and taste so much better than store-bought. This one is so easy to make, and so tasty that it might just become your new favorite salad dressing.

Give it a try soon!

Print The Maple Vinaigrette Dressing in a bottle next to a plate of salad Best Maple Vinaigrette Dressing

Author: Marie Bostwick [image error] Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients ¼ cup real maple syrup¼ cup fresh squeezed lemon juice2/3 cup neutral oil, such as sunflower, grapeseed, avocado, canola, etc.2 tsp Dijon mustard1 T finely chopped green onion, white or pale green parts only (can sub equal amounts of chives or other fresh herbs)Kosher salt and fresh ground pepper to taste. Cook Mode Prevent your screen from going dark Instructions Place syrup, lemon juice, oil, mustard, green onion or herbs, plus a pinch of salt and pepper in a bowl and whisk thoroughly, or place in jar with lid and shake well to combine. Taste and adjust seasonings. Pour on your favorite salad.Store leftover vinaigrette covered in the refrigerator for up to 2 weeks. Dressing will separate when left to sit, so stir or shake again before using. Did you make this recipe?

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie

window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":19552};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {document.addEventListener( 'click', ( e ) => {let anchor = e.target;if ( anchor.tagName !== 'A' ) {anchor = anchor.closest( 'a.tasty-recipes-scrollto' );}if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {return;}const elementHref = anchor.getAttribute( 'href' );if ( ! elementHref ) {return;}e.preventDefault();this.goToSelector( elementHref );});},goToSelector( selector ) {const element = document.querySelector( selector );if ( ! element ) {return;}element.scrollIntoView( { behavior: 'smooth' } );}};document.addEventListener('DOMContentLoaded',() => 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 = 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) {if (checkbox.checked) {this.lock();} else {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", () => {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.staticTooltip = {element: null,tooltipElement: null,deleting: false,init( element ) {if ( this.deleting ) {return;}this.element = element;this.buildElements();},destroy() {if ( ! this.tooltipElement || this.deleting ) {return;}this.deleting = true;this.tooltipElement.classList.remove( 'opened' );setTimeout( () => {this.tooltipElement.remove();this.deleting = false;}, 500 );},buildElements() {const tooltipElement = document.createElement( 'div' );tooltipElement.classList.add( 'tasty-recipes-static-tooltip');tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );if ( currentTooltipElement ) {document.body.replaceChild( tooltipElement, currentTooltipElement );} else {document.body.appendChild( tooltipElement );}this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );},show() {if ( ! this.tooltipElement ) {return;}const tooltipTop = this.element.getBoundingClientRect().top+ window.scrollY- 10 // 10px offset.- this.tooltipElement.getBoundingClientRect().height;const tooltipLeft = this.element.getBoundingClientRect().left- ( this.tooltipElement.getBoundingClientRect().width / 2 )+ ( this.element.getBoundingClientRect().width / 2 ) - 1;const posLeft = Math.max( 10, tooltipLeft );this.maybeRemoveTail( posLeft !== tooltipLeft );this.tooltipElement.setAttribute( 'style', 'top:' + 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.remove( 'tr-hide-tail' );}},changeMessage( message ) {if ( ! this.tooltipElement ) {return;}this.tooltipElement.innerHTML = message;}};window.TastyRecipes.ajax = {sendPostRequest( url, data, success, failure ) {const xhr = new XMLHttpRequest();xhr.open( 'POST', url, true );xhr.send( this.preparePostData( data ) );xhr.onreadystatechange = () => {if ( 4 !== xhr.readyState ) {return;}if ( xhr.status === 200 ) {success( JSON.parse( xhr.responseText ) );return;}failure( xhr );};xhr.onerror = () => {failure( xhr );};},preparePostData( data ) {const formData = new FormData();for ( const key in data ) {formData.append( key, data[key] );}return formData;},};window.TastyRecipes.ratings = {defaultRating: 0,currentRatingPercentage: 100,savingRating: false,init( minRating ) {this.minRating = minRating;this.formWatchRating();this.closeTooltipWhenClickOutside();this.addBodyClassBasedOnSelectedRating();this.backwardCompFormRatingPosition();},formWatchRating() {const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');if ( ratings.length <= 0 ) {return;}for ( const rating of ratings ) {rating.addEventListener( 'click', event => {event.preventDefault();this.defaultRating = event.target.closest( '.checked' ).dataset.rating;this.setCheckedStar( event.target );this.maybeSendRating( this.defaultRating, event.target );this.setRatingInForm( this.defaultRating );} );}},closeTooltipWhenClickOutside() {window.addEventListener( 'click', e => {// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {return;}window.TastyRecipes.staticTooltip.destroy();} );}, setRatingInForm( rating ) {const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );if ( ! ratingInput ) {return;}ratingInput.click();},addBodyClassBasedOnSelectedRating() {const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );if ( ! ratingInputs ) {return;}for ( const ratingInput of ratingInputs ) {ratingInput.addEventListener( 'click', currentEvent => {const selectedRating = currentEvent.target.getAttribute( 'value' );this.handleBodyClassByRating( selectedRating );this.toggleCommentTextareaRequired( selectedRating );} );}},handleBodyClassByRating( rating ) {if ( rating < this.minRating ) {document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );return;}document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );},toggleCommentTextareaRequired( rating ) {const commentTextarea = document.getElementById( 'comment' );if ( ! commentTextarea ) {return;}if ( rating < this.minRating ) {commentTextarea.setAttribute( 'required', '' );return;}commentTextarea.removeAttribute( 'required' );},maybeSendRating( rating, element ) {if ( this.savingRating === rating ) {return;}this.savingRating = rating;window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' );if ( ! recipeCardElement ) {window.TastyRecipes.staticTooltip.destroy();return;}window.TastyRecipes.ajax.sendPostRequest(window.trCommon.ajaxurl,{action: 'tasty_recipes_save_rating',rating,nonce: window.trCommon.ratingNonce,post_id: window.trCommon.postId,recipe_id: recipeCardElement.dataset.trId,},( response ) => {window.TastyRecipes.staticTooltip.changeMessage( response.data.message );window.TastyRecipes.staticTooltip.show();this.updateAverageText( response.data, recipeCardElement );this.maybeFillCommentForm( response.data );// Hide the tooltip after 5 seconds.setTimeout( () => {this.maybeResetTooltip( recipeCardElement, response.data, rating );}, 5000 );},() => {this.resetTooltip( recipeCardElement );});},updateAverageText( data, recipeCardElement ) {if ( ! data.average ) {return;}this.setRatingPercent( data );if ( ! data.count ) {return;}const quickLink = document.querySelector( '.tasty-recipes-rating-link' );if ( quickLink ) {this.setTextInContainer( quickLink, data );this.setPartialStar( quickLink );}const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );cardStars.dataset.trDefaultRating = data.average;this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );},setTextInContainer( container, data ) {if ( ! container ) {return;}if ( data.label ) {const ratingLabelElement = container.querySelector( '.rating-label' );if ( ratingLabelElement ) {ratingLabelElement.innerHTML = data.label;}return;}const averageElement = container.querySelector( '.average' );if ( averageElement ) {averageElement.textContent = data.average;}const countElement = container.querySelector( '.count' );if ( countElement ) {countElement.textContent = data.count;}},setPartialStar( container ) {const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );if ( highestStar ) {highestStar.dataset.trClip = this.currentRatingPercentage;}},setRatingPercent( data ) {this.defaultRating = data.average.toFixed( 1 );const parts = data.average.toFixed( 2 ).toString().split( '.' );this.currentRatingPercentage = parts[1] ? parts[1] : 100;if ( this.currentRatingPercentage === '00' ) {this.currentRatingPercentage = 100;}},setCheckedStar( target ) {const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );if ( selectedRatingElement ) {delete selectedRatingElement.dataset.trChecked;}const thisStar = target.closest( '.tasty-recipes-rating' );thisStar.dataset.trChecked = 1;thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;},maybeFillCommentForm( data ) {if ( ! data.comment || ! data.comment.content ) {return;}const commentForm = document.querySelector( '#commentform' );if ( ! commentForm ) {return;}const commentBox = commentForm.querySelector( '[name=comment]' );if ( ! commentBox || commentBox.value ) {return;}// Add comment details for editing.commentBox.innerHTML = data.comment.content;if ( data.comment.name ) {commentForm.querySelector( '[name=author]' ).value = data.comment.name;commentForm.querySelector( '[name=email]' ).value = data.comment.email;}},maybeResetTooltip( recipeCardElement, data, rating ) {if ( this.savingRating === rating ) {this.resetTooltip( recipeCardElement, data );}},resetTooltip( recipeCardElement, data ) {window.TastyRecipes.staticTooltip.destroy();this.savingRating = false;// Reset the default rating.const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );if ( cardRatingContainer ) {this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;cardRatingContainer.dataset.trDefaultRating = this.defaultRating;this.resetSelectedStar( cardRatingContainer, data );}},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 = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );if ( ! ratingsButtons ) {return;}const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {ratingsButtons.style.direction = 'rtl';}if ( typeof tastyRecipesRating !== 'undefined' ) {// Select the rating that was previously selected 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', event => {if ( ratingSpan === event.target ) {return;}ratingSpan.previousElementSibling.click();} );}}};(function(callback) {if (document.readyState !== "loading") {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );});
 •  0 comments  •  flag
Share on Twitter
Published on June 23, 2025 06:39

June 16, 2025

Antipasto Pasta Salad: A Taste of Italy

Antipasto Pasta salad

Antipasto Pasta salad

Antipasto Pasta Salad puts the flavor of Italy in a bowl. Pasta with spicy salmi, briny olives, creamy mozzarella, fresh tomatoes, sweet peppers, in a gorgeous homemade vinaigrette. Delizioso!

A Taste of Italy in a Gorgeous Summer Salad

Sometimes taking inventory of leftovers is the perfect inspiration for a really terrific new recipe. That’s exactly with my Antipasto Pasta Salad.

Opening the fridge last week, I spotted a package of low-sodium dried salami. I’d used it to make charcuterie cups that I’d served at my book launch party, but there was a quite a bit left. A little more digging unearthed some wonderful marinated olives, a pint of grape tomatoes, and a sweet red pepper. 

I had just about everything I’d need to make a nice antipasto tray. Certainly, I could have gone that direction. But I wanted to make something a little more substantial – something I could use for a quick lunch or side dish during the week.

Though pasta salad seemed like an obvious choice, I hesitated initially. Because my experience, pasta salad often turns out to be bland, blah, and more than a little disappointing. 

But maybe…if I leaned into those bold antipasto flavors, and paired them with a really robust homemade Italian dressing…?

Challenge accepted. 

I pulled ingredients out of the refrigerator and pantry, and started boiling water for pasta. An hour later, The Chairman and I picked up our forks for a taste test.

Antipasto Pasta salad

The verdict? 

Every bite contained a combination of spicy, briny, creamy, fresh, and slightly sweet flavors, all enhanced by a light but robust vinaigrette.

In short, this Antipasto Pasta Salad is the farthest thing from bland! It’s the taste of Italy in a bowl, and a perfect summertime salad – easy to love, and even easier to make.

What Do You Need to Make Antipasto Pasta Salad?

The individual ingredients before mixing the dish

As the name implies, this yummy salad is a nod to traditional Italian Antipasto, with ingredients that include…

Salami – My preference here is for a dry cured, low sodium salami. You could use a regular salami if that’s what you’ve got on hand, but I think the low sodium type has better flavor. It’s also better for you.

Marinated Olives – Just about any type of marinated green or black olive will work here, but stay away from canned black olives. They don’t have nearly as much flavor.

Fresh Mozzerella – You’ll use those small, bite-sized balls of fresh mozzarella, sometimes known as pearls. You can find them in the cheese or deli section of most grocery stores. 

Roasted Red Peppers – Jarred roasted red peppers can usually be found near the pickles, or can often be purchased from olive bars in the deli section. But making your own roasted peppers is cheaper and very easy. Just remove the seeds and slice the peppers into strips. Then rub them with olive oil, sprinkle with a little salt and pepper, and roast on a baking sheet at 425 degrees for about 10 minutes, until the peppers are soft and slightly charred on the edges. 

Tomatoes – use the grape or cherry tomatoes of our choice, sliced into halves.

Pasta – I really think Farfalle, sometimes known as bowtie pasta, is the way to go here. But Gemelli, Fusilli, Orecchiette, Rotini, or Penne could work too. 

As you’ll see in the instructions, all the ingredients except the pasta will be cut into small pieces, so you’ll get a variety of flavors in every bite of the antipasto pasta salad. The combinations of spicy, briny, sweet, and creamy make each bite a joyous little adventure.

 However, it’s the homemade Italian dressing that really brings it all together.

Antipasto Pasta Salad: Making the Dressing

Though my version increases the amounts of a few ingredients and subbed fresh thyme for dried, my Italian dressing is based on a recipe from Love and Lemons.

This wonderful vinaigrette uses olive oil, fresh lemon juice, white vinegar, garlic, a combination of fresh and dried herbs, plus a touch of mustard and honey. It has an incredible, bright, bold flavor.

I know you might be tempted to just grab that bottled Italian dressing for this recipe, but don’t. 

This vinaigrette is SO easy to make, and more than worth the effort. Honestly, it makes the salad. 

Once you taste it, especially on this wonderful Antipasto Pasta Salad, you might just throw the bottled stuff away for good. 

Give it, and this terrific Italian inspired pasta salad, a try this week!

 

Print Antipasto Pasta salad Antipasto Pasta Salad: A Taste of Italy

Author: Marie Bostwick Yield: 6-8 servings [image error] Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients

For the Salad:

8 oz Farfalle (Bow tie pasta)10 slices low sodium dry salami, quartered15 fresh mozzarella pearls, halved20 grape tomatoes, halved20 marinated green or black olives, halved1 medium red sweet pepper, roasted and chopped (see blog for instructions on oven roasting peppers. If using jarred or prepared roasted peppers, use about 1/3 cup)

For the Dressing:

6 T olive oil3 T fresh lemon juice3 T white wine vinegar1 large clove garlic, put through a garlic press or grated1.5 tsp honey1 tsp Dijon mustard2 T fresh chopped parsley1.5 tsp fresh thyme leaves (can sub ¾ tsp dried)1 tsp drive oregano¼ tsp Kosher saltFresh ground pepper to taste Cook Mode Prevent your screen from going dark Instructions Boil the pasta in well- salted water according to package instructions, until al dente. Drain the cooked pasta and run under cool water. Set aside.While the pasta is cooking, prepare the other salad ingredients – slicing the salami, mozzarella pearls, tomatoes, olives, and roasted peppers into the suggested sizes listed. (See blog instructions for oven roasting peppers at home.) If using jarred or prepared roasted peppers, use about 1/3 cup).Prepare the dressing by placing all the ingredients in a small bowl and whisking vigorously to combine.Place the pasta in a medium to large sized serving bowl. Add sliced salami, tomatoes, mozzarella, olives, and chopped roasted red peppers. Pour dressing over the salad and stir to combine and coat the ingredients with the dressing. Did you make this recipe?

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie

window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":19538};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {document.addEventListener( 'click', ( e ) => {let anchor = e.target;if ( anchor.tagName !== 'A' ) {anchor = anchor.closest( 'a.tasty-recipes-scrollto' );}if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {return;}const elementHref = anchor.getAttribute( 'href' );if ( ! elementHref ) {return;}e.preventDefault();this.goToSelector( elementHref );});},goToSelector( selector ) {const element = document.querySelector( selector );if ( ! element ) {return;}element.scrollIntoView( { behavior: 'smooth' } );}};document.addEventListener('DOMContentLoaded',() => 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 = 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) {if (checkbox.checked) {this.lock();} else {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", () => {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.staticTooltip = {element: null,tooltipElement: null,deleting: false,init( element ) {if ( this.deleting ) {return;}this.element = element;this.buildElements();},destroy() {if ( ! this.tooltipElement || this.deleting ) {return;}this.deleting = true;this.tooltipElement.classList.remove( 'opened' );setTimeout( () => {this.tooltipElement.remove();this.deleting = false;}, 500 );},buildElements() {const tooltipElement = document.createElement( 'div' );tooltipElement.classList.add( 'tasty-recipes-static-tooltip');tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );if ( currentTooltipElement ) {document.body.replaceChild( tooltipElement, currentTooltipElement );} else {document.body.appendChild( tooltipElement );}this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );},show() {if ( ! this.tooltipElement ) {return;}const tooltipTop = this.element.getBoundingClientRect().top+ window.scrollY- 10 // 10px offset.- this.tooltipElement.getBoundingClientRect().height;const tooltipLeft = this.element.getBoundingClientRect().left- ( this.tooltipElement.getBoundingClientRect().width / 2 )+ ( this.element.getBoundingClientRect().width / 2 ) - 1;const posLeft = Math.max( 10, tooltipLeft );this.maybeRemoveTail( posLeft !== tooltipLeft );this.tooltipElement.setAttribute( 'style', 'top:' + 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.remove( 'tr-hide-tail' );}},changeMessage( message ) {if ( ! this.tooltipElement ) {return;}this.tooltipElement.innerHTML = message;}};window.TastyRecipes.ajax = {sendPostRequest( url, data, success, failure ) {const xhr = new XMLHttpRequest();xhr.open( 'POST', url, true );xhr.send( this.preparePostData( data ) );xhr.onreadystatechange = () => {if ( 4 !== xhr.readyState ) {return;}if ( xhr.status === 200 ) {success( JSON.parse( xhr.responseText ) );return;}failure( xhr );};xhr.onerror = () => {failure( xhr );};},preparePostData( data ) {const formData = new FormData();for ( const key in data ) {formData.append( key, data[key] );}return formData;},};window.TastyRecipes.ratings = {defaultRating: 0,currentRatingPercentage: 100,savingRating: false,init( minRating ) {this.minRating = minRating;this.formWatchRating();this.closeTooltipWhenClickOutside();this.addBodyClassBasedOnSelectedRating();this.backwardCompFormRatingPosition();},formWatchRating() {const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');if ( ratings.length <= 0 ) {return;}for ( const rating of ratings ) {rating.addEventListener( 'click', event => {event.preventDefault();this.defaultRating = event.target.closest( '.checked' ).dataset.rating;this.setCheckedStar( event.target );this.maybeSendRating( this.defaultRating, event.target );this.setRatingInForm( this.defaultRating );} );}},closeTooltipWhenClickOutside() {window.addEventListener( 'click', e => {// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {return;}window.TastyRecipes.staticTooltip.destroy();} );}, setRatingInForm( rating ) {const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );if ( ! ratingInput ) {return;}ratingInput.click();},addBodyClassBasedOnSelectedRating() {const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );if ( ! ratingInputs ) {return;}for ( const ratingInput of ratingInputs ) {ratingInput.addEventListener( 'click', currentEvent => {const selectedRating = currentEvent.target.getAttribute( 'value' );this.handleBodyClassByRating( selectedRating );this.toggleCommentTextareaRequired( selectedRating );} );}},handleBodyClassByRating( rating ) {if ( rating < this.minRating ) {document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );return;}document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );},toggleCommentTextareaRequired( rating ) {const commentTextarea = document.getElementById( 'comment' );if ( ! commentTextarea ) {return;}if ( rating < this.minRating ) {commentTextarea.setAttribute( 'required', '' );return;}commentTextarea.removeAttribute( 'required' );},maybeSendRating( rating, element ) {if ( this.savingRating === rating ) {return;}this.savingRating = rating;window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' );if ( ! recipeCardElement ) {window.TastyRecipes.staticTooltip.destroy();return;}window.TastyRecipes.ajax.sendPostRequest(window.trCommon.ajaxurl,{action: 'tasty_recipes_save_rating',rating,nonce: window.trCommon.ratingNonce,post_id: window.trCommon.postId,recipe_id: recipeCardElement.dataset.trId,},( response ) => {window.TastyRecipes.staticTooltip.changeMessage( response.data.message );window.TastyRecipes.staticTooltip.show();this.updateAverageText( response.data, recipeCardElement );this.maybeFillCommentForm( response.data );// Hide the tooltip after 5 seconds.setTimeout( () => {this.maybeResetTooltip( recipeCardElement, response.data, rating );}, 5000 );},() => {this.resetTooltip( recipeCardElement );});},updateAverageText( data, recipeCardElement ) {if ( ! data.average ) {return;}this.setRatingPercent( data );if ( ! data.count ) {return;}const quickLink = document.querySelector( '.tasty-recipes-rating-link' );if ( quickLink ) {this.setTextInContainer( quickLink, data );this.setPartialStar( quickLink );}const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );cardStars.dataset.trDefaultRating = data.average;this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );},setTextInContainer( container, data ) {if ( ! container ) {return;}if ( data.label ) {const ratingLabelElement = container.querySelector( '.rating-label' );if ( ratingLabelElement ) {ratingLabelElement.innerHTML = data.label;}return;}const averageElement = container.querySelector( '.average' );if ( averageElement ) {averageElement.textContent = data.average;}const countElement = container.querySelector( '.count' );if ( countElement ) {countElement.textContent = data.count;}},setPartialStar( container ) {const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );if ( highestStar ) {highestStar.dataset.trClip = this.currentRatingPercentage;}},setRatingPercent( data ) {this.defaultRating = data.average.toFixed( 1 );const parts = data.average.toFixed( 2 ).toString().split( '.' );this.currentRatingPercentage = parts[1] ? parts[1] : 100;if ( this.currentRatingPercentage === '00' ) {this.currentRatingPercentage = 100;}},setCheckedStar( target ) {const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );if ( selectedRatingElement ) {delete selectedRatingElement.dataset.trChecked;}const thisStar = target.closest( '.tasty-recipes-rating' );thisStar.dataset.trChecked = 1;thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;},maybeFillCommentForm( data ) {if ( ! data.comment || ! data.comment.content ) {return;}const commentForm = document.querySelector( '#commentform' );if ( ! commentForm ) {return;}const commentBox = commentForm.querySelector( '[name=comment]' );if ( ! commentBox || commentBox.value ) {return;}// Add comment details for editing.commentBox.innerHTML = data.comment.content;if ( data.comment.name ) {commentForm.querySelector( '[name=author]' ).value = data.comment.name;commentForm.querySelector( '[name=email]' ).value = data.comment.email;}},maybeResetTooltip( recipeCardElement, data, rating ) {if ( this.savingRating === rating ) {this.resetTooltip( recipeCardElement, data );}},resetTooltip( recipeCardElement, data ) {window.TastyRecipes.staticTooltip.destroy();this.savingRating = false;// Reset the default rating.const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );if ( cardRatingContainer ) {this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;cardRatingContainer.dataset.trDefaultRating = this.defaultRating;this.resetSelectedStar( cardRatingContainer, data );}},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 = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );if ( ! ratingsButtons ) {return;}const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {ratingsButtons.style.direction = 'rtl';}if ( typeof tastyRecipesRating !== 'undefined' ) {// Select the rating that was previously selected 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', event => {if ( ratingSpan === event.target ) {return;}ratingSpan.previousElementSibling.click();} );}}};(function(callback) {if (document.readyState !== "loading") {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );});
 •  0 comments  •  flag
Share on Twitter
Published on June 16, 2025 05:52

June 9, 2025

Show Your Library Some Love: Friends of the Library

An area of the library set up for events, one of the things that friends of the library help with

A library book aisle

You might be wondering – what do I mean by “friends of the library?” Well, my recent travels around the country took me to many public libraries, and taught me two important things.

First, public libraries are hugely beneficial to their local communities, providing access to a wide variety of informational and educational services.

Second, in many communities, Friends of the Library groups play a crucial role in supporting libraries and librarians, helping to fill funding gaps, sponsoring enrichment programs, and providing volunteer support.

If you care about libraries, read on to find out what Friends of the Library groups do, why they matter, and how you can get involved. It’s a fun, easy, and meaningful way to show your local library some love!

A Brief History of Public Libraries in America and Why They Matter

Lending libraries have been part of the fabric of American life since colonial times. Back then, libraries were financed via subscription, with members paying for the ability to borrow books.

It wasn’t until 1833 that the first tax-supported American library was opened in Peterborough, New Hampshire, making it possible for every member of the public, regardless of their financial status, to have access to books.

The number and popularity of public libraries increased after the Civil War. Between 1883 and 1929, steel magnate and philanthropist Andrew Carnegie donated money to build 2,509 public libraries, more than 1,600 of them in the United States. Many of the original Carnegie libraries are still in operation. Carnegie considered libraries, “universities of the people,” and said that, “a library outranks any other one thing a community can do to benefit its people.”

A library full of action

Just as in Carnegie’s time, today’s public libraries continue to enrich lives and communities, providing free access to books, computers, special programming, and more.

But they can’t do it alone!

One way to help is to join your local Friends of the Library organization. These groups play a vital role in helping public libraries fulfill their mission.

What Friends Organizations Do to Support the Mission of Public Libraries

Friends of the Library groups are independent nonprofits that exist to support the mission of public libraries.

Activities of the Friends of the Library groups are as unique as the communities they serve. However, their focus usually falls within the following areas.

Fundraising

No matter the size of the community, library budgets are limited. Fundraising by Friends groups can help provide additional money for books, equipment, enrichment programming, and more.

Friends of the Library groups put on all kinds of different fundraising events –used book sales, galas, author luncheons, silent or live auctions, bake sales, fun runs, duck races, you name it! When it comes to fundraising, Friends groups can get really creative.

Helping with these fundraisers can be a lot of fun, and can make a huge difference for a local library and its patrons, providing money for all kinds of resources and programming.

Volunteer Support

Some libraries, especially those in smaller communities with limited numbers of paid staff, rely on Friends groups to provide volunteers for daily activities or special programming.

Volunteer opportunities and needs will vary depending on the library, but could involve everything from hospitality, decorations, and AV support for special events, to daily activities such as welcoming patrons, reading to children, or sorting donated books.

An area of the library set up for events, one of the things that friends of the library help with

Special Programs and Enrichment

Many of the events on my tour schedule were hosted by public libraries, which brought me in to speak to their patrons. It’s always a lot of fun! For many of those attending, it might be the first time they’ve ever met a published author in person.

However, while the program is usually free for the library’s patrons, there are costs associated with putting on these kinds of special programs. And that’s where the Friends of the Library come in.

Friend groups often help raise funds and put in volunteer hours to help sponsor and support all kinds of special events, including author visits and other types of cultural and educational programming.

Awareness and Advocacy

Friends of the Library groups also help raise awareness about the importance of the library with the general public as well as government officials. This can be crucial to ensuring that the library receives the funding it needs to continue operating.

Two women speaking to each other over tea

Community Liaisons and Librarian Love

Some librarians rely on members of their Friends group to serve as liaisons, providing input about the kinds of programming, equipment, and books that are needed or desired by the library community.

Most librarians consider their work a labor of love. But that doesn’t mean it’s always easy. Some Friends groups make sure their local librarians feel the love by organizing appreciation events or writing notes of support.

Why Should You Become a Friend of the Library?

As you can see from the list above, Friends of the Library organizations make a big difference in their local libraries and the community as a whole.

But beyond that, there are plenty of reasons to consider becoming a Friend of the Library. And there’s never been a better – or more important – time to join.

Many Friends groups are aging. New volunteers needed!

As I said above, I did lots of events at libraries during my book tour. Nearly all of them were sponsored and/or supported by the local Friends of the Library.

Over and over again, the Friends told me that as their members age, their numbers are dwindling. If the Friends are to continue their important mission, they desperately need new members to fill their ranks.

Members of any age will be warmly welcomed to Friends groups. The main qualifications are energy, enthusiasm, and a little spare time.

However, younger members, particularly those who might have computer or other technical skills, are especially needed.

Meet new people and make new friends.

Two women who are friends of the library with their books

Making connections and friends can be difficult these days. But as I saw during my many recent library events, Friends of the library are usually friends with one another as well.

People who join the local library friends often go on to develop relationships that last through thick and thin, drawn together by their shared love of books, libraries, and the local community.

If you want to make friends, there’s no better way than to become a friend!

It’s something you can feel good about!

In a world rife with so many seemingly insurmountable problems, it can sometimes feel impossible to make any kind of positive impact. 

But libraries bring lasting, tangible benefits to their local communities. Supporting their mission by joining the Friends of the Library is a good investment of your time and something you can feel good about.

You may not be able to save the world, but you can help make your corner of it a little better by helping your library make books, information, technology, education, and cultural enrichment available to every member of the community.

How Can You Join the Friends of the Library?

Joining the Friends of the Library is easy.

Start with an online search for “Friends of the Library” in your city, town, or county. Information about local chapters, meeting times, and membership opportunities may be available there.

You can also make a field trip to the nearest branch of your local library and ask one of the librarians about how you can join the Friends.

I’m sure they’ll be glad to tell you, and that your newfound “Friends” will welcome you with open arms!

 •  0 comments  •  flag
Share on Twitter
Published on June 09, 2025 06:30

June 2, 2025

Southern Style Cheese Wafers with Pecans

A tray full of the Southern Style Cheese Wafers

Marie holding up one of the Southern Style Cheese Wafers

Crisp and buttery, with plenty of cheese flavor and just a hint of heat. These delicious, savory Southern Style Cheese Wafers with Pecans are a perfect snack or cocktail party nibble. So good!

Southern Style Cheese Wafers with Pecans – A Cocktail Party Classic

Thirty years have passed, but I still remember my first encounter with Southern Style Cheese Wafers.

We had recently moved to Georgia and had been invited to a party at the home of a family we’d met at church. In addition to cocktails, our hostesses served a variety of nibbles. Most were things I’d seen before – bacon-wrapped dates, meatballs, spiced nuts, etc.

However, I was intrigued by the sight of a plate filled with homemade, golden-orange crackers, each topped with half a pecan. I picked one up, took a bite, and fell in love.

Those wonderful little cheese wafers were crispy, and buttery, and utterly divine. The hint of spicy cayenne was a perfect foil to the rich, cheesy taste of the wafer. The toasted pecan on top added crunch and even more savory flavor.

A tray full of the Southern Style Cheese Wafers

I consumed quite a few of those delectable little morsels that evening, and countless others during our time in Georgia. As I soon discovered, cheese wafers with pecans are a staple of southern cocktail fare, so I had many opportunities to indulge.

Back then, I wasn’t the cook I am now. So, I never tried to make cheese wafers on my own. Consequently, I didn’t get to enjoy many after we left Georgia, and kind of forgot about them.

All that changed during my recent book tour.

During a book party in South Carolina, I spotted a tray of beautiful, perfectly delectable Southern Style Cheese Wafers with Pecans. I’d be embarrassed to admit how many I ate, so let’s just say it was a lot.

After returning from my travels, I decided to try making my own cheese wafers.

The results were delicious! And a lot easier to make than you might suppose.

A Few Ingredients and A Little Time Equals A Delicious Cheese Wafer.

The ingredients for the Southern Style Cheese Wafers

Believe it or not, eight ingredients are all you need to make a batch of your own Southern Style Cheese Wafters with Pecans. And one of those ingredients is water!

They are….

Sharp or Extra Sharp Cheddar Cheese (My preference would be for extra sharp, but either will do nicely.)Unsalted Butter (If you’re out of unsalted butter and decided to substitute salted, I’d either cut the added salt by half, or even leave it out entirely. Cheese has a fair amount of sodium on its own, so you don’t need a lot more.)Cayenne (if you really don’t like spice, you can cut the amount in half, but I don’t recommend it. The cayenne adds a lovely bit of heat, but it’s not at all overpowering.)Kosher saltPepper (fresh ground if possible)FlourCold water (this is just to help the dough come together)Pecan halves (if yours have been in the pantry a while, taste to make sure they’re fresh.)Making the Dough

Making the dough is really easy, so I’m not going into a lot of detail about that here. Just read the directions carefully, and make sure to let the butter soften a little before you start.

The wafer dough wrapped in parchment paper to be chilled

Once you’ve made and shaped the dough, you’ll need to wrap it in either waxed or parchment paper or plastic wrap, then let it chill in the refrigerator for at least an hour. Don’t skip that part!

The dough needs to be well-chilled and firm before you try to slice it. Otherwise, it will be hard to cut it into thin, even slices.

The number of wafers you’ll get from this recipe will vary, depending on how thin you slice the dough. For my money, the thinner the better. Thin slices of dough are the key to getting crisp, delicate, melt-in-your-mouth delicious cheese wafer.

So be sure to chill the dough!

Also, the unbaked dough can be wrapped in a double layer of plastic wrap and frozen for up to 4 months. You’d just let it thaw in the fridge for a couple of hours before slicing and baking.

Being able to make the dough ahead of time and bake as needed is one more thing to love about Southern Style Cheese Wafers with Pecans!

Baking, Serving, and Storing Southern Style Cheese Wafers

When you’re ready to bake, place the sliced dough onto a baking sheet that’s been lined with baking parchment. Using parchment saves time in clean up and ensures that the baked wafers don’t stick to the pan.

The wafer dough being sliced thinly

The slices of dough being topped with pecans

Next, you’ll top each wafer with a pecan half. Some folks like to add chopped pecans to the dough, but I really prefer this method.

Using chopped pecans can make it harder for the dough to hold together. Also, I really love the texture and crunch you get when biting into the larger pecan. Speaking of crunch, there’s no need to toast the pecans beforehand. That will happen naturally during the baking process.

The cheese wafers will be very hot when you remove them from the oven after baking, so be sure to allow them to cool before you serve them.

In my experience, these yummy cheese wafers get gobbled up pretty quickly. But in the event that you do have any leftovers, extra wafers can be stored in an airtight container for up to five days.

Print A tray full of the Southern Style Cheese Wafers Southern Style Cheese Wafers with Pecans

Author: Marie Bostwick Yield: Makes 50 to 60 wafers [image error] Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients 2 cups grated sharp or extra sharp Cheddar cheese8 T unsalted butter, softened1 tsp Kosher salt½ tsp cayenne¼ tsp fresh ground pepper1.5 cups flour1–2 T cold water50 to 60 pecan halves (one per wafer) Cook Mode Prevent your screen from going dark Instructions Place softened butter and shredded cheese in mixing bowl. Use handheld electric beater or stand mixer to beat on medium speed for 2 to 3 minutes, until the cheese and butter are well combined and mixture is fluffy.In a separate bowl, stir together salt, cayenne, pepper, and flour. Using the low speed of your mixer, add flour mixture to butter in three batches, beating to combine between additions. If the dough is loose and shaggy, add the cold water, one tablespoon at a time.Turn the dough out onto a clean, lightly floured surface. Knead briefly to create a ball of smooth, even, firm dough. Shape into a log, approximately 12-inches long. Wrap dough in plastic wrap or waxed paper and place in the refrigerator for at least one hour before baking, or up to overnight. (Note: at this point, dough can also be wrapped in a double layer of plastic, stored in the freezer for up to 4 months, then thawed in refrigerator before baking.)Preheat oven to 375. Line rimmed baking sheets with baking parchment.Slice the dough crossways into wafers approximately 1/8th inch thick (the thinner the wafer, the crispier it will be once baked). Place the wafers onto the prepared baking sheets and top each one with a pecan half.Bake the wafers in the preheated oven for 15-17 minutes, until they are golden brown. Remove wafers from oven and allow to cool before eating. Leftover wafers can be stored in an airtight container for up to 5 days. Did you make this recipe?

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie

window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":19508};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {document.addEventListener( 'click', ( e ) => {let anchor = e.target;if ( anchor.tagName !== 'A' ) {anchor = anchor.closest( 'a.tasty-recipes-scrollto' );}if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {return;}const elementHref = anchor.getAttribute( 'href' );if ( ! elementHref ) {return;}e.preventDefault();this.goToSelector( elementHref );});},goToSelector( selector ) {const element = document.querySelector( selector );if ( ! element ) {return;}element.scrollIntoView( { behavior: 'smooth' } );}};document.addEventListener('DOMContentLoaded',() => 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 = 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) {if (checkbox.checked) {this.lock();} else {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", () => {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.staticTooltip = {element: null,tooltipElement: null,deleting: false,init( element ) {if ( this.deleting ) {return;}this.element = element;this.buildElements();},destroy() {if ( ! this.tooltipElement || this.deleting ) {return;}this.deleting = true;this.tooltipElement.classList.remove( 'opened' );setTimeout( () => {this.tooltipElement.remove();this.deleting = false;}, 500 );},buildElements() {const tooltipElement = document.createElement( 'div' );tooltipElement.classList.add( 'tasty-recipes-static-tooltip');tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );if ( currentTooltipElement ) {document.body.replaceChild( tooltipElement, currentTooltipElement );} else {document.body.appendChild( tooltipElement );}this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );},show() {if ( ! this.tooltipElement ) {return;}const tooltipTop = this.element.getBoundingClientRect().top+ window.scrollY- 10 // 10px offset.- this.tooltipElement.getBoundingClientRect().height;const tooltipLeft = this.element.getBoundingClientRect().left- ( this.tooltipElement.getBoundingClientRect().width / 2 )+ ( this.element.getBoundingClientRect().width / 2 ) - 1;const posLeft = Math.max( 10, tooltipLeft );this.maybeRemoveTail( posLeft !== tooltipLeft );this.tooltipElement.setAttribute( 'style', 'top:' + 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.remove( 'tr-hide-tail' );}},changeMessage( message ) {if ( ! this.tooltipElement ) {return;}this.tooltipElement.innerHTML = message;}};window.TastyRecipes.ajax = {sendPostRequest( url, data, success, failure ) {const xhr = new XMLHttpRequest();xhr.open( 'POST', url, true );xhr.send( this.preparePostData( data ) );xhr.onreadystatechange = () => {if ( 4 !== xhr.readyState ) {return;}if ( xhr.status === 200 ) {success( JSON.parse( xhr.responseText ) );return;}failure( xhr );};xhr.onerror = () => {failure( xhr );};},preparePostData( data ) {const formData = new FormData();for ( const key in data ) {formData.append( key, data[key] );}return formData;},};window.TastyRecipes.ratings = {defaultRating: 0,currentRatingPercentage: 100,savingRating: false,init( minRating ) {this.minRating = minRating;this.formWatchRating();this.closeTooltipWhenClickOutside();this.addBodyClassBasedOnSelectedRating();this.backwardCompFormRatingPosition();},formWatchRating() {const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');if ( ratings.length <= 0 ) {return;}for ( const rating of ratings ) {rating.addEventListener( 'click', event => {event.preventDefault();this.defaultRating = event.target.closest( '.checked' ).dataset.rating;this.setCheckedStar( event.target );this.maybeSendRating( this.defaultRating, event.target );this.setRatingInForm( this.defaultRating );} );}},closeTooltipWhenClickOutside() {window.addEventListener( 'click', e => {// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {return;}window.TastyRecipes.staticTooltip.destroy();} );}, setRatingInForm( rating ) {const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );if ( ! ratingInput ) {return;}ratingInput.click();},addBodyClassBasedOnSelectedRating() {const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );if ( ! ratingInputs ) {return;}for ( const ratingInput of ratingInputs ) {ratingInput.addEventListener( 'click', currentEvent => {const selectedRating = currentEvent.target.getAttribute( 'value' );this.handleBodyClassByRating( selectedRating );this.toggleCommentTextareaRequired( selectedRating );} );}},handleBodyClassByRating( rating ) {if ( rating < this.minRating ) {document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );return;}document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );},toggleCommentTextareaRequired( rating ) {const commentTextarea = document.getElementById( 'comment' );if ( ! commentTextarea ) {return;}if ( rating < this.minRating ) {commentTextarea.setAttribute( 'required', '' );return;}commentTextarea.removeAttribute( 'required' );},maybeSendRating( rating, element ) {if ( this.savingRating === rating ) {return;}this.savingRating = rating;window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' );if ( ! recipeCardElement ) {window.TastyRecipes.staticTooltip.destroy();return;}window.TastyRecipes.ajax.sendPostRequest(window.trCommon.ajaxurl,{action: 'tasty_recipes_save_rating',rating,nonce: window.trCommon.ratingNonce,post_id: window.trCommon.postId,recipe_id: recipeCardElement.dataset.trId,},( response ) => {window.TastyRecipes.staticTooltip.changeMessage( response.data.message );window.TastyRecipes.staticTooltip.show();this.updateAverageText( response.data, recipeCardElement );this.maybeFillCommentForm( response.data );// Hide the tooltip after 5 seconds.setTimeout( () => {this.maybeResetTooltip( recipeCardElement, response.data, rating );}, 5000 );},() => {this.resetTooltip( recipeCardElement );});},updateAverageText( data, recipeCardElement ) {if ( ! data.average ) {return;}this.setRatingPercent( data );if ( ! data.count ) {return;}const quickLink = document.querySelector( '.tasty-recipes-rating-link' );if ( quickLink ) {this.setTextInContainer( quickLink, data );this.setPartialStar( quickLink );}const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );cardStars.dataset.trDefaultRating = data.average;this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );},setTextInContainer( container, data ) {if ( ! container ) {return;}if ( data.label ) {const ratingLabelElement = container.querySelector( '.rating-label' );if ( ratingLabelElement ) {ratingLabelElement.innerHTML = data.label;}return;}const averageElement = container.querySelector( '.average' );if ( averageElement ) {averageElement.textContent = data.average;}const countElement = container.querySelector( '.count' );if ( countElement ) {countElement.textContent = data.count;}},setPartialStar( container ) {const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );if ( highestStar ) {highestStar.dataset.trClip = this.currentRatingPercentage;}},setRatingPercent( data ) {this.defaultRating = data.average.toFixed( 1 );const parts = data.average.toFixed( 2 ).toString().split( '.' );this.currentRatingPercentage = parts[1] ? parts[1] : 100;if ( this.currentRatingPercentage === '00' ) {this.currentRatingPercentage = 100;}},setCheckedStar( target ) {const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );if ( selectedRatingElement ) {delete selectedRatingElement.dataset.trChecked;}const thisStar = target.closest( '.tasty-recipes-rating' );thisStar.dataset.trChecked = 1;thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;},maybeFillCommentForm( data ) {if ( ! data.comment || ! data.comment.content ) {return;}const commentForm = document.querySelector( '#commentform' );if ( ! commentForm ) {return;}const commentBox = commentForm.querySelector( '[name=comment]' );if ( ! commentBox || commentBox.value ) {return;}// Add comment details for editing.commentBox.innerHTML = data.comment.content;if ( data.comment.name ) {commentForm.querySelector( '[name=author]' ).value = data.comment.name;commentForm.querySelector( '[name=email]' ).value = data.comment.email;}},maybeResetTooltip( recipeCardElement, data, rating ) {if ( this.savingRating === rating ) {this.resetTooltip( recipeCardElement, data );}},resetTooltip( recipeCardElement, data ) {window.TastyRecipes.staticTooltip.destroy();this.savingRating = false;// Reset the default rating.const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );if ( cardRatingContainer ) {this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;cardRatingContainer.dataset.trDefaultRating = this.defaultRating;this.resetSelectedStar( cardRatingContainer, data );}},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 = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );if ( ! ratingsButtons ) {return;}const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {ratingsButtons.style.direction = 'rtl';}if ( typeof tastyRecipesRating !== 'undefined' ) {// Select the rating that was previously selected 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', event => {if ( ratingSpan === event.target ) {return;}ratingSpan.previousElementSibling.click();} );}}};(function(callback) {if (document.readyState !== "loading") {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );});

 •  0 comments  •  flag
Share on Twitter
Published on June 02, 2025 06:26

May 19, 2025

Seven Historical Fiction Book Club Reads

One of the greatest pleasures of reading a thought-provoking book is discussing it with others. My seven Historical Fiction Book Club Reads list of novels covers a variety of topics, time periods, and viewpoints. Each one is a worthwhile read that will spark lively conversations!

Not Sure What to Read Next?  Check Out These Seven Historical Fiction Book Club Reads

I’ve been a book club member for most of my adult life. So, I know firsthand how book club discussions can challenge you to think, consider different points of view, enhance the pleasure of reading, foster community, and keep you from falling into a reading rut.

Even if a given month’s pick wasn’t my particular cup of tea, engaging in a really lively discussion makes it worthwhile. In fact, some of the best, most interesting book club meetings I’ve ever taken part in were about books I didn’t especially enjoy!

Still, there can be a lot of anxiety when it’s your turn to pick the book because we want to find a title that most (and hopefully all) of the members will enjoy reading as well as discussing. It can feel like a big responsibility. And with so many books out there, how do you choose?

Though there’s no way to guarantee that any one book will be a perfect fit for every member on your roster, my list of Historical Fiction Book Club Reads picks is a good place to start.

Every book on this list is a well-written, worthwhile, thought-provoking read. And with so many topics, time periods, and points of view among these books, you’re sure to find one that will appeal to your book club.

So, let’s look at the list!

The Book Club for Troublesome Women

The Book Club for Troublesome Women by Marie Bostwick

Yep, I went there. Not only am I recommending my own book, but I put it right on the top of the list. How sassy!

In my defense, what book club isn’t going to love a book about book clubs? Especially one centered around four quietly unhappy, 1960’s 1960s-era housewives who kick off their first meeting by reading Betty Freidan’s groundbreaking 1963 book, The Feminine Mystique?

Nicknaming themselves the Bettys, after Betty Friedan, these four unlikely friends have no idea their impromptu club and the books they read together will become the glue that helps them hold fast through tears, triumphs, angst, and arguments—and what will prove to be the most consequential and freeing year of their lives.

I wrote this book with book clubs in mind, and hearing from scores of clubs who’ve already tapped it for a monthly pick has been very gratifying. I’m sure your members will enjoy reading and discussing the adventures and transformations of my troublesome women. So, I hope you’ll consider picking it for your book club.

If you do, be sure to check out my free Book Club Party Kit! It’s got discussion questions, recipes, and a playlist inspired by the book, and a list of even more books for those who want to dig deeper.

The Women, Historical Fiction Book Club Reads

The Women by Kristan Hannah

This powerful, epic novel was at the top of all the bestseller lists in 2024, so it’s highly possible that you’ve already read it. But if you haven’t, you really should.

It’s the story of Frances “Frankie” McGrath, a young, somewhat naïve recent nursing school graduate who volunteers to serve in Vietnam for a variety of reasons. It doesn’t take long for Frankie to have her eyes opened to the true and brutal nature of war, particularly the war in Vietnam. But as difficult as life on the front lines proved to be, coming home to a society and family that refuses to acknowledge even the presence of women in Vietnam, let alone their service, might be even harder.

The Women offers so much in the way of discussion, almost too much! My club went past our usual adjournment point when we talked about it, and just about everybody had something interesting to add to the conversation. It’s a great pick for any book club.

The Briar Club

The Briar Club by Kate Quin

If your book club membership leans toward a love of mystery, The Briar Club might be a great fit for your group.  Set in a boarding house in Washington, DC, in the 1950s, at the height of the so-called “Red Scare”, the story opens with a murder and a bang.

Solving the mystery requires the reader to go back and forth in time as they explore the backstories and secrets of the many residents of the house, and even of the house itself. Though the writing is vivid and rich with detail, it never weighs down the story. The twists and turns will keep you guessing, and the surprising way in which the strange bedfellows who live in the boarding house become a community is a satisfying and surprising denouement.

By Any Other Name, a Historical Fiction Book Club Reads

By Any Other Name by Jodi Picoult

Set in Elizabethan England, this novel presents an intriguing premise. What if William Shakespeare had a ghost writer? What if the true author of his famous plays was a woman?

This dual timeline novel shifts viewpoints between fictional Melina Green, an aspiring playwright who is desperate to get her work staged, and Melina’s ancestor Emilia Bassano. Based on a real historical figure, Emilia was forced to become the mistress of Lord Chamberlin, who oversaw and regulated England’s theatrical productions. She was also the first woman writing in English to publish a volume of poetry. Going back and forth between two talented women who resort to desperate measures to bring their work to life, the story explores intriguing questions of how the world has and hasn’t changed for female artists in the last five hundred years.

This brilliantly researched and written novel brings a little-known historical figure to life and thrusts readers into fascinating but likely unfamiliar worlds. There is a lot of food for thought and discussion in these pages. Picoult’s arguments and the research backing them up are so compelling that it may even convince readers to reconsider facts they’d long taken for granted.

The Many Daughters of Afong Moy

The Many Daughters of Afong Moy by Jamie Ford

Everyone knows that physical traits like blue eyes or big feet pass down through families. But what if the impacts of trauma can likewise inherit, etched into the DNA of future generations?

Beginning with the modern story of poet Dorothy Moy, who is searching for a means to prevent the mental health struggles she has suffered from being passed to her own daughter, the novel traces the stories of the female ancestors of Afong Moy, the first Chinese woman to set foot in America. Each character in Ford’s epic novel is vivid and uniquely wrought, grappling with issues that may look dissimilar at first glance, but which are rooted in the generational trauma experienced by their forgotten ancestor.

The issues of racism, generational trauma, family dynamics, and the female experience in this intriguing novel will give book clubs plenty to talk about.

When We Had Wings

When We Had Wings by Ariel Lawhon, Kristina McMorris, and Susan Meissner

Inspired by the true stories of military nurses who were trapped in the Philippines and survived the brutality of the ensuing Japanese occupation, this novel brings an important but little-known piece of American history vividly to life in the stories of three fictional nurses, two Americans and one Filipina. 

The rich historical detail and distinct characters in this inspiring and uplifting novel will provide book clubs with plenty of food for thought and discussion. Examining the three nurses’ unique personalities, backgrounds, and choices, as well as themes of community, feminine strength, and governmental treatment of women who serve, will guarantee a lively conversation for any book club.

Yellowface

Yellowface by R.F. Kuang

Okay, this one really doesn’t qualify as historical fiction. But Yellow Face offers such a unique perspective that I had to include it here. Two young writers considered literary “rising stars” in college, but only one of whose star rose, is a dark satire with a fascinating hook. When the struggling author, June, witnesses the accidental death of her former classmate, Athena, a wildly successful author of Asian descent, June takes and edits Athena’s just-completed manuscript, passing the book off as her own work.

The story that unspools from that point is at turns witty, sad, and sometimes even a little over the top. But it’s a fascinating and often unexpected look at racism and cultural appropriation from multiple viewpoints. If your book club is looking for a novel that provides plenty of fodder for discussion while avoiding easy answers, Yellow Face is a good candidate.

 

 •  0 comments  •  flag
Share on Twitter
Published on May 19, 2025 06:04

May 12, 2025

Coconut Cake with Pineapple Filling: The Book Club for Troublesome Women – Recipe Three

The finished and decorated Coconut Cake with Pineapple Filling

The finished and decorated Coconut Cake with Pineapple Filling

Book club meetings are even more fun when they include a book-based menu. My second recipe, inspired by my novel The Book Club for Troublesome Women, is Coconut Cake with Pineapple Filling. It’s oh-so retro, oh-so-tasty, and oh-so-perfect for your book club meeting!

The Inspiration Behind Margaret’s Book Club Cake

“Perfect” is a word that pops up frequently in the mind of Margaret Ryan, one of the central characters in The Book Club for Troublesome Women.

Margaret is convinced that if she could somehow do enough and be enough, she can somehow manage to make everything perfect – for everyone. It’s a mindset that sets her up to be disappointed again and again. Determined to make the first meeting of her new book club a memorable occasion, she decides to make four different appetizers.

Which seems like enough, right? For most people, it would be, but not Margaret.

At the last minute, she decides to bake a “coconut ambrosia cake” decorated with “coconut, canned pineapple rings, and maraschino cherries,” that she found in a magazine.

I bought real copies of vintage women’s magazines while researching The Book Club for Troublesome Women. I wanted to experience reading them the way my characters would have. It’s impossible to overstate the influence of magazines on our mothers’ and grandmothers’ generation. They were the TikTok and Pinterest of the day, the place women went to keep up with and latch onto the latest trends.

Recipes for these kinds of cakes –really thinly veiled advertisements from companies that sold canned pineapple, shredded coconut, or other products – appeared regularly in 60’s era women’s magazines, so this cake is about as mid-century as it gets.

The finished and decorated Coconut Cake with Pineapple Filling

If your book club has decided to read and discuss The Book Club for Troublesome Women, Margaret’s Coconut Cake with Pineapple Filling would be the “perfect” thing to serve at your meeting.

Not only does it have an authentic, early 60’s vibe that will add a festive touch to your meeting, but it tastes terrific!

Depending on the amount of time and/or baking experience you’ve got, Margaret’s Coconut Cake with Pineapple Filling can be made one of two ways…

Margaret’s Book Club Cake – The Easy Way 

Baking from scratch isn’t everybody’s thing. I totally get it.

Even if that describes you, you can still make a Troublesome Women-inspired cake for your book club meeting. And I guarantee that they’re going to love it.

How are you going to pull it off? By taking a couple of simple shortcuts that nobody will ever need to know about, starting with the cake.

Back in Margaret’s day, boxed cake mixes were pretty awful. But they’ve improved a lot over the years. So, it’s fine to use a mix for your book club cake.

You could use regular vanilla cake mix, then add 1.5 teaspoons of coconut extract to the batter. Or you could buy a coconut-flavored cake mix. Duncan Hines has a new line of “Dolly Parton” cake mixes, and one of the flavors is coconut.

Two pans filled with the cake batter sitting on a counter

I haven’t tried this one personally, but Duncan Hines mixes are usually pretty good. And, you know…Dolly. Would Dolly ever steer you wrong? I don’t think so.

Once you’ve got the cake part dealt with, you can go one of two ways.

Option one: make your own frosting and filling according to the recipe below. If you’ve got time, I recommend doing so. Homemade frosting and filling will taste better.

Option two: buy canned pineapple filling and vanilla frosting from the store (add a little coconut extract to the frosting), and decorate the cake according to the instructions below. It will still taste very good.

The most important thing here is the decoration. That’s the thing that’ll give your cake that fun, retro, ripped from the pages of a 60’s women’s magazine look.

Margaret’s Book Club Cake – The (Somewhat) Hard Way

In spite of the above heading, recreating Margaret’s Coconut Cake with Pineapple Filling really isn’t that difficult.

If you’ve baked cakes before, the process will be familiar. So, if you’re up for baking a dessert from scratch, don’t hesitate to give it a try.

The first cake layer topped with the pineapple filling

The recipe instructions are very thorough, so I’m not going to go into much detail here. Just read them through once or twice before you begin, and you should have no problem.

But I will give you a couple of tips…

Make sure you leave enough time to allow everything to cool completely before you decorate the cake. If the cake is even a little warm, the frosting and filling will melt.

Likewise, it’s very important to let the pineapple filling cool completely in the refrigerator after you make it. The filling will thicken considerably as it cools. If you put it while it’s even partly warm, it’s just going to slide off or squeeze out the sides when you put on the top layer of cake.

When you add the cornstarch to the pineapple filling recipe, make sure it doesn’t have any lumps. If you can, it’s best to sift it into the filling.

A final tip – dab the cherries with a paper towel before you put them on the cake. That will prevent the cherry juice from leaving red splashes on the white coconut or frosting.

Make Coconut Cake with Pineapple Filling For Your Troublesome Women!

Creating recipes for book clubs to enjoy during their discussions of The Book Club for Troublesome Women has been a lot of fun for me.  I hope they’ll be fun for all of you as well.

Whether you make your cake the “easy” or the (somewhat) “hard” way, you and the Troublesome Women in your book club are in for a treat!

Print The finished and decorated Coconut Cake with Pineapple Filling Coconut Cake with Pineapple Filling: The Book Club for Troublesome Women – Recipe Two

Author: Marie Bostwick Yield: 8-12 servings [image error] Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients

FOR THE CAKE

2.5 cup cake flour1 T baking powder½ tsp salt½ cup unsalted butter, slightly softened1.5 cups sugar5 T vegetable oil1 ¼ cup whole milk1.5 tsp coconut extract1 tsp vanilla extract3 eggs

FOR THE PINEAPPLE FILLING

20 oz can crushed pineapple½ cup sugar3 T cornstarch

FOR THE COCONUT CREAM CHEESE FROSTING

1 cup unsalted butter, slightly softened4.5 cup powdered sugar12 oz cream cheese, softened (remove from refrigerator about 30 minutes before using)1.5 tsp coconut extract1 tsp vanilla extract

FOR THE DECORATIONS:

1 cup shredded sweetened coconut1 15 oz can pineapple rings, drainedMaraschino cherries, drained Cook Mode Prevent your screen from going dark Instructions

FOR THE CAKE

Preheat oven to 350. Oil and flour two 8-inch, round baking pans.Whisk flour, baking powder, and salt together in a bowl. Set aside.Cream butter and sugar together, using a hand or stand mixer. Add vegetable oil, milk, and extracts, blending until smooth, scraping down sides of bowl as needed. Add eggs, adding one at a time, mixing until batter is light and fluffy.Divide cake batter evenly to the two prepared pans. Bake for 45 minutes, or until cake it baked through and a toothpick inserted into the center comes out clean.Remove pans from oven. Allow cakes to cool completely before removing from pans.

FOR THE PINEAPPLE FILLING

Stirring sugar and pineapple together in a cooking pot on the stove. Sprinkle or sift cornstarch onto mixture, stirring to combine.Turn the burner onto medium high and bring the filling to a boil, stirring frequently. Lower heat. Simmer filling for 5-7 minutes, stirring constantly, until filling thickens.Place cooked filling in the refrigerator, allowing it to cool completely before using. Filling will become thicker as it cools.

FOR THE COCONUT CREAM CHEESE FROSTING

Using a hand mixer or stand mixer, blend together softened butter and one cup of the powdered sugar. Blend in the rest of the sugar in batches, adding about a cup at a time.Add softened cream cheese and extracts to the sugar/butter mixture, blending until smooth and fluffy. Store frosting in the refrigerator until ready to use.

FOR THE DECORATIONS:

Place first layer of cooled cake on a platter. Spread completely cooled pineapple filling on top of the cake. Place second layer of cake on top of the first layer.Spread frosting on top of and around the sides of the cake, covering it completely with a thick, even layer of frosting.Using clean hands, gently press handfuls of shredded coconut into the frosting around the sides of the cake. Decorate the top of the cake with pineapple rings, placing cherries in the center of each ring and in open areas, as shown in the photograph. Did you make this recipe?

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie

window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":19450};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {document.addEventListener( 'click', ( e ) => {let anchor = e.target;if ( anchor.tagName !== 'A' ) {anchor = anchor.closest( 'a.tasty-recipes-scrollto' );}if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {return;}const elementHref = anchor.getAttribute( 'href' );if ( ! elementHref ) {return;}e.preventDefault();this.goToSelector( elementHref );});},goToSelector( selector ) {const element = document.querySelector( selector );if ( ! element ) {return;}element.scrollIntoView( { behavior: 'smooth' } );}};document.addEventListener('DOMContentLoaded',() => 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 = 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) {if (checkbox.checked) {this.lock();} else {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", () => {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.staticTooltip = {element: null,tooltipElement: null,deleting: false,init( element ) {if ( this.deleting ) {return;}this.element = element;this.buildElements();},destroy() {if ( ! this.tooltipElement || this.deleting ) {return;}this.deleting = true;this.tooltipElement.classList.remove( 'opened' );setTimeout( () => {this.tooltipElement.remove();this.deleting = false;}, 500 );},buildElements() {const tooltipElement = document.createElement( 'div' );tooltipElement.classList.add( 'tasty-recipes-static-tooltip');tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );if ( currentTooltipElement ) {document.body.replaceChild( tooltipElement, currentTooltipElement );} else {document.body.appendChild( tooltipElement );}this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );},show() {if ( ! this.tooltipElement ) {return;}const tooltipTop = this.element.getBoundingClientRect().top+ window.scrollY- 10 // 10px offset.- this.tooltipElement.getBoundingClientRect().height;const tooltipLeft = this.element.getBoundingClientRect().left- ( this.tooltipElement.getBoundingClientRect().width / 2 )+ ( this.element.getBoundingClientRect().width / 2 ) - 1;const posLeft = Math.max( 10, tooltipLeft );this.maybeRemoveTail( posLeft !== tooltipLeft );this.tooltipElement.setAttribute( 'style', 'top:' + 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.remove( 'tr-hide-tail' );}},changeMessage( message ) {if ( ! this.tooltipElement ) {return;}this.tooltipElement.innerHTML = message;}};window.TastyRecipes.ajax = {sendPostRequest( url, data, success, failure ) {const xhr = new XMLHttpRequest();xhr.open( 'POST', url, true );xhr.send( this.preparePostData( data ) );xhr.onreadystatechange = () => {if ( 4 !== xhr.readyState ) {return;}if ( xhr.status === 200 ) {success( JSON.parse( xhr.responseText ) );return;}failure( xhr );};xhr.onerror = () => {failure( xhr );};},preparePostData( data ) {const formData = new FormData();for ( const key in data ) {formData.append( key, data[key] );}return formData;},};window.TastyRecipes.ratings = {defaultRating: 0,currentRatingPercentage: 100,savingRating: false,init( minRating ) {this.minRating = minRating;this.formWatchRating();this.closeTooltipWhenClickOutside();this.addBodyClassBasedOnSelectedRating();this.backwardCompFormRatingPosition();},formWatchRating() {const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');if ( ratings.length <= 0 ) {return;}for ( const rating of ratings ) {rating.addEventListener( 'click', event => {event.preventDefault();this.defaultRating = event.target.closest( '.checked' ).dataset.rating;this.setCheckedStar( event.target );this.maybeSendRating( this.defaultRating, event.target );this.setRatingInForm( this.defaultRating );} );}},closeTooltipWhenClickOutside() {window.addEventListener( 'click', e => {// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {return;}window.TastyRecipes.staticTooltip.destroy();} );}, setRatingInForm( rating ) {const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );if ( ! ratingInput ) {return;}ratingInput.click();},addBodyClassBasedOnSelectedRating() {const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );if ( ! ratingInputs ) {return;}for ( const ratingInput of ratingInputs ) {ratingInput.addEventListener( 'click', currentEvent => {const selectedRating = currentEvent.target.getAttribute( 'value' );this.handleBodyClassByRating( selectedRating );this.toggleCommentTextareaRequired( selectedRating );} );}},handleBodyClassByRating( rating ) {if ( rating < this.minRating ) {document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );return;}document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );},toggleCommentTextareaRequired( rating ) {const commentTextarea = document.getElementById( 'comment' );if ( ! commentTextarea ) {return;}if ( rating < this.minRating ) {commentTextarea.setAttribute( 'required', '' );return;}commentTextarea.removeAttribute( 'required' );},maybeSendRating( rating, element ) {if ( this.savingRating === rating ) {return;}this.savingRating = rating;window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' );if ( ! recipeCardElement ) {window.TastyRecipes.staticTooltip.destroy();return;}window.TastyRecipes.ajax.sendPostRequest(window.trCommon.ajaxurl,{action: 'tasty_recipes_save_rating',rating,nonce: window.trCommon.ratingNonce,post_id: window.trCommon.postId,recipe_id: recipeCardElement.dataset.trId,},( response ) => {window.TastyRecipes.staticTooltip.changeMessage( response.data.message );window.TastyRecipes.staticTooltip.show();this.updateAverageText( response.data, recipeCardElement );this.maybeFillCommentForm( response.data );// Hide the tooltip after 5 seconds.setTimeout( () => {this.maybeResetTooltip( recipeCardElement, response.data, rating );}, 5000 );},() => {this.resetTooltip( recipeCardElement );});},updateAverageText( data, recipeCardElement ) {if ( ! data.average ) {return;}this.setRatingPercent( data );if ( ! data.count ) {return;}const quickLink = document.querySelector( '.tasty-recipes-rating-link' );if ( quickLink ) {this.setTextInContainer( quickLink, data );this.setPartialStar( quickLink );}const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );cardStars.dataset.trDefaultRating = data.average;this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );},setTextInContainer( container, data ) {if ( ! container ) {return;}if ( data.label ) {const ratingLabelElement = container.querySelector( '.rating-label' );if ( ratingLabelElement ) {ratingLabelElement.innerHTML = data.label;}return;}const averageElement = container.querySelector( '.average' );if ( averageElement ) {averageElement.textContent = data.average;}const countElement = container.querySelector( '.count' );if ( countElement ) {countElement.textContent = data.count;}},setPartialStar( container ) {const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );if ( highestStar ) {highestStar.dataset.trClip = this.currentRatingPercentage;}},setRatingPercent( data ) {this.defaultRating = data.average.toFixed( 1 );const parts = data.average.toFixed( 2 ).toString().split( '.' );this.currentRatingPercentage = parts[1] ? parts[1] : 100;if ( this.currentRatingPercentage === '00' ) {this.currentRatingPercentage = 100;}},setCheckedStar( target ) {const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );if ( selectedRatingElement ) {delete selectedRatingElement.dataset.trChecked;}const thisStar = target.closest( '.tasty-recipes-rating' );thisStar.dataset.trChecked = 1;thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;},maybeFillCommentForm( data ) {if ( ! data.comment || ! data.comment.content ) {return;}const commentForm = document.querySelector( '#commentform' );if ( ! commentForm ) {return;}const commentBox = commentForm.querySelector( '[name=comment]' );if ( ! commentBox || commentBox.value ) {return;}// Add comment details for editing.commentBox.innerHTML = data.comment.content;if ( data.comment.name ) {commentForm.querySelector( '[name=author]' ).value = data.comment.name;commentForm.querySelector( '[name=email]' ).value = data.comment.email;}},maybeResetTooltip( recipeCardElement, data, rating ) {if ( this.savingRating === rating ) {this.resetTooltip( recipeCardElement, data );}},resetTooltip( recipeCardElement, data ) {window.TastyRecipes.staticTooltip.destroy();this.savingRating = false;// Reset the default rating.const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );if ( cardRatingContainer ) {this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;cardRatingContainer.dataset.trDefaultRating = this.defaultRating;this.resetSelectedStar( cardRatingContainer, data );}},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 = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );if ( ! ratingsButtons ) {return;}const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {ratingsButtons.style.direction = 'rtl';}if ( typeof tastyRecipesRating !== 'undefined' ) {// Select the rating that was previously selected 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', event => {if ( ratingSpan === event.target ) {return;}ratingSpan.previousElementSibling.click();} );}}};(function(callback) {if (document.readyState !== "loading") {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );});

 •  0 comments  •  flag
Share on Twitter
Published on May 12, 2025 06:10

May 5, 2025

Smoky Salmon Cream Cheese Spread: Book Club for Troublesome Women – Recipe Three

The finished Smoky Salmon Cream Cheese Spread shaped into a fish

The finished Smoky Salmon Cream Cheese Spread shaped into a fish

Serve Smokey Salmon Cream Cheese Spread when your book club meets to discuss The Book Club for Troublesome Women, and add very 60’s vibe to the menu! This third and final recipe, inspired by the novel, is a little campy, a lot of fun, and as easy to make as it is delicious.

60’s Magazine Recipes – Life Before Food Stylists

In my book, Margaret gets her recipe for Smoky Salmon Cream Cheese Spread from one of the many women’s magazines she subscribes to. Back in the 60s, magazines exerted a huge influence over housewives like Margaret and the other character in the novel.

Though I created this recipe to have an authentic 60’s look, I also created it to appeal to modern palates. Your book club, family, and friends will love it. I’ve served it to all of the above on multiple occasions. People always gobble it up and often ask for the recipe.

However, there were a lot of truly strange, unattractive, downright ugly magazine recipes in Margaret’s era. Researching them was a lot of fun!

Trying to come up with a number one most hideous looking magazine recipe became something of a game for me. I never did decide which should take the top (dis)honor, but here are photos of a few contenders…

Home cooks in the ’60s added gelatin to EVERYTHING! Even hot dogs, hard-boiled eggs, and peas. (Umm…yech.)

From a cookbook titled Knox Dainty Desserts for Dainty People. Not quite sure how tuna salad qualifies as a dessert?

Hard to imagine hot dog as main ingredient for a diet dish. But it’s certainly an…interesting presentation.

Margaret’s Smoky Salmon Cream Cheese Spread – Vintage Look, Modern Appeal

My inspiration for this particular recipe came from a recipe I found for “Tuna Mold” that featured things like tuna, cream cheese, tomato soup, A-1 steak sauce, copious amounts of mayo, and, of course, gelatin.

It looked hilarious, but sounded awful. Nobody today would dream of serving tuna mold at their book club meetings.

So, I set out to create a recipe that looked the part but actually tasted good. When I spotted a teeny, nine-dollar container of smoked salmon spread at my local fancy-schmancy grocer, I knew I was onto something.

Subbing canned salmon for the tuna, and using more cream cheese and way less mayo, plus horseradish sauce, smoked paprika, and few other ingredients resulted in a yummy smokey salmon cream spread that appeals to modern palates.

It really is good! And it didn’t cost a dollar an ounce.

Next, I had to was figure out how to make it look like something my 60s hostess, Margaret, would serve to her book club. As her new friend, Charlotte points out at the first book club meeting, Margaret is, “all about garnishes.”

To modern eyes, molding Smoky Salmon Cream Cheese Spread into the shape of a fish and decorating it with sliced olives to represent fish scales seems a little over the top. But back in the 60s, hostesses like Margaret were indeed all about garnishes.

And you know, I kind of get it. Recreating Margaret’s fictional recipe in real life was a lot of fun. And easier than you might think.

The ingredients for the Smoky Salmon Cream Cheese Spread

Smoky Salmon Cream Cheese Spread – Making The “Full-Margaret” Version

Making the spread itself is very easy. The recipe directions explain all that, so I won’t go into it here. But I do have some suggestions for creating the fun, retro presentation.

Back in the day, the spread would have been much more liquid, more like a mousse. The gelatin would have bound it together, and it would have been poured into a metal, fish-shaped gelatin mold. 

My spread is much thicker, so you can easily shape it yourself. No mold required! No gelatin either.

To make mine, I drew a basic fish shape onto a piece of baking parchment and cut it out to serve as a guide. Then I placed the parchment onto the serving platter. Next, I spooned the spread onto the paper, mounding it in the middle and spreading to the edge of the parchment before smoothing out the top.

The fish shape cut out on parchment with a dab of the spread on it

The spread fully shaped into the fish

The last step was to slice my green olives and then arrange them on the body of the fish to simulate scales. I also used pieces of olives to give my fish eyes and a smile.

When I served it to my own book club, everybody smiled. Some laughed out loud. But more importantly, they ate and enjoyed it. 

If you’re serving this to your book club when you gather to discuss The Book Club for Troublesome Women, feel free to go full-Margaret, olive-scales-and-all when making this nostalgic appetizer. It will definitely make them smile!

An easier option of serving the spread in a bowl topped with dill

But you could also just put it in a pretty bowl, sprinkle with chopped parsley or dill on top, and serve it with crackers or crudites.

It’s delish either way, and an appetizer your book club members, friends, or family are sure to enjoy.

Print The finished Smoky Salmon Cream Cheese Spread shaped into a fish Smoky Salmon Cream Cheese Spread: Book Club for Troublesome Women – Recipe Three

Author: Marie Bostwick Yield: Makes approximately 2 cups [image error] Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients 1 6oz can salmon, drained1 8 oz block cream cheese, softened2 T grated or finely minced shallotsJuice of one half of a lemon2 T mayonnaise1 T horseradish sauce2 tsp smoked paprika1/2 tsp kosher salt¼ tsp ground pepper*Optional – 1/2 cup pitted green olives, sliced, for decorating. (See photo)Crackers or crudites for serving Cook Mode Prevent your screen from going dark Instructions Place salmon in medium sized bowl and flake with a fork. Add cream cheese, shallots, lemon juice, mayo, horseradish sauce, smoked paprika, salt and pepper to bowl.Use a hand mixer to blend ingredients on low speed for a good two minutes, until ingredients are well combined and the spread is fairly smooth.Prepared spread can be served in a pretty bowl along with crackers and crudites, or molded by hand into a fish shape on a platter and decorated with sliced olives to simulate scales, as shown in the photo. Did you make this recipe?

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie

window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":19458};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {document.addEventListener( 'click', ( e ) => {let anchor = e.target;if ( anchor.tagName !== 'A' ) {anchor = anchor.closest( 'a.tasty-recipes-scrollto' );}if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {return;}const elementHref = anchor.getAttribute( 'href' );if ( ! elementHref ) {return;}e.preventDefault();this.goToSelector( elementHref );});},goToSelector( selector ) {const element = document.querySelector( selector );if ( ! element ) {return;}element.scrollIntoView( { behavior: 'smooth' } );}};document.addEventListener('DOMContentLoaded',() => 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 = 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) {if (checkbox.checked) {this.lock();} else {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", () => {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.staticTooltip = {element: null,tooltipElement: null,deleting: false,init( element ) {if ( this.deleting ) {return;}this.element = element;this.buildElements();},destroy() {if ( ! this.tooltipElement || this.deleting ) {return;}this.deleting = true;this.tooltipElement.classList.remove( 'opened' );setTimeout( () => {this.tooltipElement.remove();this.deleting = false;}, 500 );},buildElements() {const tooltipElement = document.createElement( 'div' );tooltipElement.classList.add( 'tasty-recipes-static-tooltip');tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );if ( currentTooltipElement ) {document.body.replaceChild( tooltipElement, currentTooltipElement );} else {document.body.appendChild( tooltipElement );}this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );},show() {if ( ! this.tooltipElement ) {return;}const tooltipTop = this.element.getBoundingClientRect().top+ window.scrollY- 10 // 10px offset.- this.tooltipElement.getBoundingClientRect().height;const tooltipLeft = this.element.getBoundingClientRect().left- ( this.tooltipElement.getBoundingClientRect().width / 2 )+ ( this.element.getBoundingClientRect().width / 2 ) - 1;const posLeft = Math.max( 10, tooltipLeft );this.maybeRemoveTail( posLeft !== tooltipLeft );this.tooltipElement.setAttribute( 'style', 'top:' + 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.remove( 'tr-hide-tail' );}},changeMessage( message ) {if ( ! this.tooltipElement ) {return;}this.tooltipElement.innerHTML = message;}};window.TastyRecipes.ajax = {sendPostRequest( url, data, success, failure ) {const xhr = new XMLHttpRequest();xhr.open( 'POST', url, true );xhr.send( this.preparePostData( data ) );xhr.onreadystatechange = () => {if ( 4 !== xhr.readyState ) {return;}if ( xhr.status === 200 ) {success( JSON.parse( xhr.responseText ) );return;}failure( xhr );};xhr.onerror = () => {failure( xhr );};},preparePostData( data ) {const formData = new FormData();for ( const key in data ) {formData.append( key, data[key] );}return formData;},};window.TastyRecipes.ratings = {defaultRating: 0,currentRatingPercentage: 100,savingRating: false,init( minRating ) {this.minRating = minRating;this.formWatchRating();this.closeTooltipWhenClickOutside();this.addBodyClassBasedOnSelectedRating();this.backwardCompFormRatingPosition();},formWatchRating() {const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');if ( ratings.length <= 0 ) {return;}for ( const rating of ratings ) {rating.addEventListener( 'click', event => {event.preventDefault();this.defaultRating = event.target.closest( '.checked' ).dataset.rating;this.setCheckedStar( event.target );this.maybeSendRating( this.defaultRating, event.target );this.setRatingInForm( this.defaultRating );} );}},closeTooltipWhenClickOutside() {window.addEventListener( 'click', e => {// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {return;}window.TastyRecipes.staticTooltip.destroy();} );}, setRatingInForm( rating ) {const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );if ( ! ratingInput ) {return;}ratingInput.click();},addBodyClassBasedOnSelectedRating() {const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );if ( ! ratingInputs ) {return;}for ( const ratingInput of ratingInputs ) {ratingInput.addEventListener( 'click', currentEvent => {const selectedRating = currentEvent.target.getAttribute( 'value' );this.handleBodyClassByRating( selectedRating );this.toggleCommentTextareaRequired( selectedRating );} );}},handleBodyClassByRating( rating ) {if ( rating < this.minRating ) {document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );return;}document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );},toggleCommentTextareaRequired( rating ) {const commentTextarea = document.getElementById( 'comment' );if ( ! commentTextarea ) {return;}if ( rating < this.minRating ) {commentTextarea.setAttribute( 'required', '' );return;}commentTextarea.removeAttribute( 'required' );},maybeSendRating( rating, element ) {if ( this.savingRating === rating ) {return;}this.savingRating = rating;window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' );if ( ! recipeCardElement ) {window.TastyRecipes.staticTooltip.destroy();return;}window.TastyRecipes.ajax.sendPostRequest(window.trCommon.ajaxurl,{action: 'tasty_recipes_save_rating',rating,nonce: window.trCommon.ratingNonce,post_id: window.trCommon.postId,recipe_id: recipeCardElement.dataset.trId,},( response ) => {window.TastyRecipes.staticTooltip.changeMessage( response.data.message );window.TastyRecipes.staticTooltip.show();this.updateAverageText( response.data, recipeCardElement );this.maybeFillCommentForm( response.data );// Hide the tooltip after 5 seconds.setTimeout( () => {this.maybeResetTooltip( recipeCardElement, response.data, rating );}, 5000 );},() => {this.resetTooltip( recipeCardElement );});},updateAverageText( data, recipeCardElement ) {if ( ! data.average ) {return;}this.setRatingPercent( data );if ( ! data.count ) {return;}const quickLink = document.querySelector( '.tasty-recipes-rating-link' );if ( quickLink ) {this.setTextInContainer( quickLink, data );this.setPartialStar( quickLink );}const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );cardStars.dataset.trDefaultRating = data.average;this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );},setTextInContainer( container, data ) {if ( ! container ) {return;}if ( data.label ) {const ratingLabelElement = container.querySelector( '.rating-label' );if ( ratingLabelElement ) {ratingLabelElement.innerHTML = data.label;}return;}const averageElement = container.querySelector( '.average' );if ( averageElement ) {averageElement.textContent = data.average;}const countElement = container.querySelector( '.count' );if ( countElement ) {countElement.textContent = data.count;}},setPartialStar( container ) {const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );if ( highestStar ) {highestStar.dataset.trClip = this.currentRatingPercentage;}},setRatingPercent( data ) {this.defaultRating = data.average.toFixed( 1 );const parts = data.average.toFixed( 2 ).toString().split( '.' );this.currentRatingPercentage = parts[1] ? parts[1] : 100;if ( this.currentRatingPercentage === '00' ) {this.currentRatingPercentage = 100;}},setCheckedStar( target ) {const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );if ( selectedRatingElement ) {delete selectedRatingElement.dataset.trChecked;}const thisStar = target.closest( '.tasty-recipes-rating' );thisStar.dataset.trChecked = 1;thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;},maybeFillCommentForm( data ) {if ( ! data.comment || ! data.comment.content ) {return;}const commentForm = document.querySelector( '#commentform' );if ( ! commentForm ) {return;}const commentBox = commentForm.querySelector( '[name=comment]' );if ( ! commentBox || commentBox.value ) {return;}// Add comment details for editing.commentBox.innerHTML = data.comment.content;if ( data.comment.name ) {commentForm.querySelector( '[name=author]' ).value = data.comment.name;commentForm.querySelector( '[name=email]' ).value = data.comment.email;}},maybeResetTooltip( recipeCardElement, data, rating ) {if ( this.savingRating === rating ) {this.resetTooltip( recipeCardElement, data );}},resetTooltip( recipeCardElement, data ) {window.TastyRecipes.staticTooltip.destroy();this.savingRating = false;// Reset the default rating.const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );if ( cardRatingContainer ) {this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;cardRatingContainer.dataset.trDefaultRating = this.defaultRating;this.resetSelectedStar( cardRatingContainer, data );}},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 = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );if ( ! ratingsButtons ) {return;}const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {ratingsButtons.style.direction = 'rtl';}if ( typeof tastyRecipesRating !== 'undefined' ) {// Select the rating that was previously selected 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', event => {if ( ratingSpan === event.target ) {return;}ratingSpan.previousElementSibling.click();} );}}};(function(callback) {if (document.readyState !== "loading") {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );});

 •  0 comments  •  flag
Share on Twitter
Published on May 05, 2025 06:56

April 28, 2025

60s Cocktails: Vodka Stingers (Cocktail or Mocktail) The Book Club for Troublesome Women – Recipe One

The vodka stingers cocktail and mocktail

The vodka stingers cocktail and mocktail

Minty and potent, Vodka Stingers were all the rage in the 1960s. This classic 60s cocktail or yummy mocktail is the perfect sipper for a “Troublesome Women” discussion with your book club!

Vodka Stingers – The Official Beverage of Troublesome Women?

The ingredients for the Vodka Stingers

As a book club member myself, I know how food and drinks inspired by the book can add a special, festive touch to club meetings. That’s why I’ve created a few recipes based on them that readers will find in my new novel, The Book Club for Troublesome Women.

My first recipe in the series is inspired by beverages that my characters try during their first book club meeting. You might be interested in where I got the idea for using this particular drink.

As a kid, I was crazy for musical theater. I bought soundtracks for every Broadway show I could get my hands on. So even though I couldn’t drink, I’d heard of vodka stingers. It’s the cocktail that the late great Elaine Stritch sang of when she played Joanne in the hit musical Company, during the showstopping number, “The Ladies Who Lunch.”

Another chance to disapprove;
another brilliant zinger.
Another reason not to move;
another Vodka Stinger!
I’ll drink to that.

Though I never had a chance to see Stritch in the role, I’ve never forgotten how her gritty, witty, sharp-edged delivery of that song brought the character to life. I could feel the anger and despair beneath her sarcastic snarl and gravelly disdain, the frustration of a brilliant woman who knows her brilliance has been wasted.

To my mind, Elaine Stritch was the original Troublesome Woman.

Vodka Stingers – Aka Truth Serum

The shaker pouring out the finished classic 60s cocktail

So, it’s not surprising that while considering cocktails for my characters to sip in the book, vodka stingers came immediately to mind.

During the first meeting of the book club, the women are hesitant to open up so the conversation drags initially. All that changes once Charlotte marches into Margaret’s kitchen. There, she finds the liquor and mixes up a batch of tongue-loosening cocktails she calls “Truth Serum.”

The bright green beverages Charlotte serves are actually vodka stingers, but they do have the desired effect. After a few sips, Margaret, Charlotte, Viv, and Bitsy start sharing stories and secrets, and building a bond.

I’m sharing two delicious beverage recipes that are perfect for every member of your book club. The first is for a classic vodka stinger, a very popular drink during the 60s.

Classic 60s Cocktails – Plus a Delish Mocktail

The ingredients for the mocktail version of the cocktail

Fair warning – these bright green, minty-flavored cocktails are potent! If you decide to give one a try during your book club meeting (two would be a mistake, trust me on this), make sure you’ve got a designated driver.

If you’re the DD or you just don’t care for the hard stuff, I’ve got you covered. My second Book Club for Troublesome Women beverage – Stingless Stingers – is alcohol free and so tasty!

The combination of juice, flavored tonic, and mint simple syrup is refreshingly delicious and not overly sweet. I recommend cucumber tonic (Fever Tree is my favorite), but elderflower tonic would be good substitute. In a pinch, you could also use plain tonic.

Whether you prefer your beverage with or without the sting, these retro 60s cocktails will add a festive touch to your book club gathering.

Mix some up for your meeting, and raise a glass to Troublesome Women!

Print The shaker pouring out the finished classic 60s cocktail 60s Cocktails: Vodka Stingers (Cocktail or Mocktail) The Book Club for Troublesome Women – Recipe One

Author: Marie Bostwick Yield: 1 cocktail [image error] Print Recipe [image error] Pin Recipe const share_pin_buttons = document.getElementsByClassName( 'share-pin button' ); if ( share_pin_buttons ) { for ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) { share_pin_buttons[share_key].addEventListener( 'click', (e) => { e.stopPropagation(); window.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500'); return false; } ); } } Ingredients

For the Classic Vodka Stingers:

2 oz vodka1 oz crème de menthe

For the Stingless Stinger Mocktail:

2 oz mint simple syrup (recipe below)2 oz white grape juice3 oz cucumber flavored tonic water (can sub elderflower or plain tonic)Optional – 2 drops green food coloring in syrup Cook Mode Prevent your screen from going dark Instructions

For the Classic Vodka Stingers:

Pour vodka and crème de menthe into an ice-filled cocktail shaker.Shake vigorously, then pour into chilled cocktail glasses, straining out ice. Serve immediately.

For the Stingless Stinger Mocktail:

To make the mint simple syrup, combine ½ cup sugar, ½ cup water, and ½ a bunch of fresh mint into a heavy-bottomed saucepan or pot. Heat on stove over medium heat, stirring, until syrup begins to bubble. Lower heat, simmer for 1-2 minutes. Strain out mint. Stirring in green food coloring, if desired. Cool syrup completely in the refrigerator before using.

Pour mint simple syrup and white grape juice together in an ice-filled highball glass.Top with cucumber-flavored tonic water. Serve immediately. Did you make this recipe?

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie

window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":19392};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {document.addEventListener( 'click', ( e ) => {let anchor = e.target;if ( anchor.tagName !== 'A' ) {anchor = anchor.closest( 'a.tasty-recipes-scrollto' );}if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {return;}const elementHref = anchor.getAttribute( 'href' );if ( ! elementHref ) {return;}e.preventDefault();this.goToSelector( elementHref );});},goToSelector( selector ) {const element = document.querySelector( selector );if ( ! element ) {return;}element.scrollIntoView( { behavior: 'smooth' } );}};document.addEventListener('DOMContentLoaded',() => 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 = 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) {if (checkbox.checked) {this.lock();} else {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", () => {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.staticTooltip = {element: null,tooltipElement: null,deleting: false,init( element ) {if ( this.deleting ) {return;}this.element = element;this.buildElements();},destroy() {if ( ! this.tooltipElement || this.deleting ) {return;}this.deleting = true;this.tooltipElement.classList.remove( 'opened' );setTimeout( () => {this.tooltipElement.remove();this.deleting = false;}, 500 );},buildElements() {const tooltipElement = document.createElement( 'div' );tooltipElement.classList.add( 'tasty-recipes-static-tooltip');tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );if ( currentTooltipElement ) {document.body.replaceChild( tooltipElement, currentTooltipElement );} else {document.body.appendChild( tooltipElement );}this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );},show() {if ( ! this.tooltipElement ) {return;}const tooltipTop = this.element.getBoundingClientRect().top+ window.scrollY- 10 // 10px offset.- this.tooltipElement.getBoundingClientRect().height;const tooltipLeft = this.element.getBoundingClientRect().left- ( this.tooltipElement.getBoundingClientRect().width / 2 )+ ( this.element.getBoundingClientRect().width / 2 ) - 1;const posLeft = Math.max( 10, tooltipLeft );this.maybeRemoveTail( posLeft !== tooltipLeft );this.tooltipElement.setAttribute( 'style', 'top:' + 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.remove( 'tr-hide-tail' );}},changeMessage( message ) {if ( ! this.tooltipElement ) {return;}this.tooltipElement.innerHTML = message;}};window.TastyRecipes.ajax = {sendPostRequest( url, data, success, failure ) {const xhr = new XMLHttpRequest();xhr.open( 'POST', url, true );xhr.send( this.preparePostData( data ) );xhr.onreadystatechange = () => {if ( 4 !== xhr.readyState ) {return;}if ( xhr.status === 200 ) {success( JSON.parse( xhr.responseText ) );return;}failure( xhr );};xhr.onerror = () => {failure( xhr );};},preparePostData( data ) {const formData = new FormData();for ( const key in data ) {formData.append( key, data[key] );}return formData;},};window.TastyRecipes.ratings = {defaultRating: 0,currentRatingPercentage: 100,savingRating: false,init( minRating ) {this.minRating = minRating;this.formWatchRating();this.closeTooltipWhenClickOutside();this.addBodyClassBasedOnSelectedRating();this.backwardCompFormRatingPosition();},formWatchRating() {const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');if ( ratings.length <= 0 ) {return;}for ( const rating of ratings ) {rating.addEventListener( 'click', event => {event.preventDefault();this.defaultRating = event.target.closest( '.checked' ).dataset.rating;this.setCheckedStar( event.target );this.maybeSendRating( this.defaultRating, event.target );this.setRatingInForm( this.defaultRating );} );}},closeTooltipWhenClickOutside() {window.addEventListener( 'click', e => {// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {return;}window.TastyRecipes.staticTooltip.destroy();} );}, setRatingInForm( rating ) {const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );if ( ! ratingInput ) {return;}ratingInput.click();},addBodyClassBasedOnSelectedRating() {const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );if ( ! ratingInputs ) {return;}for ( const ratingInput of ratingInputs ) {ratingInput.addEventListener( 'click', currentEvent => {const selectedRating = currentEvent.target.getAttribute( 'value' );this.handleBodyClassByRating( selectedRating );this.toggleCommentTextareaRequired( selectedRating );} );}},handleBodyClassByRating( rating ) {if ( rating < this.minRating ) {document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );return;}document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );},toggleCommentTextareaRequired( rating ) {const commentTextarea = document.getElementById( 'comment' );if ( ! commentTextarea ) {return;}if ( rating < this.minRating ) {commentTextarea.setAttribute( 'required', '' );return;}commentTextarea.removeAttribute( 'required' );},maybeSendRating( rating, element ) {if ( this.savingRating === rating ) {return;}this.savingRating = rating;window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' );if ( ! recipeCardElement ) {window.TastyRecipes.staticTooltip.destroy();return;}window.TastyRecipes.ajax.sendPostRequest(window.trCommon.ajaxurl,{action: 'tasty_recipes_save_rating',rating,nonce: window.trCommon.ratingNonce,post_id: window.trCommon.postId,recipe_id: recipeCardElement.dataset.trId,},( response ) => {window.TastyRecipes.staticTooltip.changeMessage( response.data.message );window.TastyRecipes.staticTooltip.show();this.updateAverageText( response.data, recipeCardElement );this.maybeFillCommentForm( response.data );// Hide the tooltip after 5 seconds.setTimeout( () => {this.maybeResetTooltip( recipeCardElement, response.data, rating );}, 5000 );},() => {this.resetTooltip( recipeCardElement );});},updateAverageText( data, recipeCardElement ) {if ( ! data.average ) {return;}this.setRatingPercent( data );if ( ! data.count ) {return;}const quickLink = document.querySelector( '.tasty-recipes-rating-link' );if ( quickLink ) {this.setTextInContainer( quickLink, data );this.setPartialStar( quickLink );}const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );cardStars.dataset.trDefaultRating = data.average;this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );},setTextInContainer( container, data ) {if ( ! container ) {return;}if ( data.label ) {const ratingLabelElement = container.querySelector( '.rating-label' );if ( ratingLabelElement ) {ratingLabelElement.innerHTML = data.label;}return;}const averageElement = container.querySelector( '.average' );if ( averageElement ) {averageElement.textContent = data.average;}const countElement = container.querySelector( '.count' );if ( countElement ) {countElement.textContent = data.count;}},setPartialStar( container ) {const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );if ( highestStar ) {highestStar.dataset.trClip = this.currentRatingPercentage;}},setRatingPercent( data ) {this.defaultRating = data.average.toFixed( 1 );const parts = data.average.toFixed( 2 ).toString().split( '.' );this.currentRatingPercentage = parts[1] ? parts[1] : 100;if ( this.currentRatingPercentage === '00' ) {this.currentRatingPercentage = 100;}},setCheckedStar( target ) {const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );if ( selectedRatingElement ) {delete selectedRatingElement.dataset.trChecked;}const thisStar = target.closest( '.tasty-recipes-rating' );thisStar.dataset.trChecked = 1;thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;},maybeFillCommentForm( data ) {if ( ! data.comment || ! data.comment.content ) {return;}const commentForm = document.querySelector( '#commentform' );if ( ! commentForm ) {return;}const commentBox = commentForm.querySelector( '[name=comment]' );if ( ! commentBox || commentBox.value ) {return;}// Add comment details for editing.commentBox.innerHTML = data.comment.content;if ( data.comment.name ) {commentForm.querySelector( '[name=author]' ).value = data.comment.name;commentForm.querySelector( '[name=email]' ).value = data.comment.email;}},maybeResetTooltip( recipeCardElement, data, rating ) {if ( this.savingRating === rating ) {this.resetTooltip( recipeCardElement, data );}},resetTooltip( recipeCardElement, data ) {window.TastyRecipes.staticTooltip.destroy();this.savingRating = false;// Reset the default rating.const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );if ( cardRatingContainer ) {this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;cardRatingContainer.dataset.trDefaultRating = this.defaultRating;this.resetSelectedStar( cardRatingContainer, data );}},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 = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );if ( ! ratingsButtons ) {return;}const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {ratingsButtons.style.direction = 'rtl';}if ( typeof tastyRecipesRating !== 'undefined' ) {// Select the rating that was previously selected 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', event => {if ( ratingSpan === event.target ) {return;}ratingSpan.previousElementSibling.click();} );}}};(function(callback) {if (document.readyState !== "loading") {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );});
 •  0 comments  •  flag
Share on Twitter
Published on April 28, 2025 07:17