Marie Bostwick's Blog, page 7
July 15, 2024
Stone Fruit Salad with Honey Lime Dressing: A Fruit Salad that Stays Fresh

Bursting with the juicy, succulent flavors of the season, this gorgeous Stone Fruit Salad with Honey Lime Dressing tastes like summer in a bowl! It’s fresh, light, flavorful and oh-so-good!
Stone Fruit Salad with Honey Lime Dressing – A Summertime DelightI always get excited when the first displays of cherries show up in the grocery store. Why? Because that signals the start of stone fruit season!
Though you can theoretically buy them all year round, the peak season for stone fruits is brief. So, when the days get sunny and long, I try to indulge in the sweet, juicy, decadent goodness of stone fruit as often as possible.
And what better way to celebrate these summer stars than by creating a refreshing Stone Fruit Salad with Honey Lime Dressing? This delightful salad is not only a feast for the eyes but also bursting with summery flavor that will leave you wanting more.
Stone fruits are named for their hard, stone-like pits. They include peaches, nectarines, plums, apricots, and cherries.
These fruits are at their peak during the summer months, making them the ideal choice for a fresh and vibrant salad. Their natural sweetness and varied textures add a delightful complexity to any dish.
How to Make A Fruit Salad that Doesn’t Get Mushy
The beauty of this salad lies in its simplicity. There aren’t many ingredients, so it’s essential to make sure that each one is the best it can possibly be.
Choose fruits that are perfectly ripe but not mushy. Look for fruits with smooth, brightly colored skin with no sign of shriveling. When choosing larger stone fruits such as nectarines or peaches, I gently push a finger against the skin. A ripe fruit will yield just slightly, leaving a small indentation.
To prepare the salad, start by washing all your fruits thoroughly and patting them dry.
You’ll peel the peaches and nectarines, then cut them into a large dice. If you prefer, you can also leave the skin on for added texture and color.
Next, you’ll halve the apricots, remove the pits, and cut each half into four quarters. Then, you’ll halve the cherries and remove the pits.
Finally, place all the prepared fruits in a large mixing bowl and sprinkle with torn fresh mint leaves. Fresh mint adds a wonderful, aromatic taste that perfectly complements the sweetness of the fruit.
Your stone fruit salad is almost ready. All you need to do now is make the dressing.
Making the Honey Lime DressingThe dressing for this salad is a simple yet heavenly combination of honey and lime. The acidity of the lime balances the sweetness of the honey and the fruits, creating a refreshing and light dressing that enhances the natural flavors.
Squeeze the fresh lime juice into a small bowl. While you could use bottled juice, fresh will taste better. Then you’ll add the olive oil, honey, and a pinch of Kosher salt to the juice, whisking very thoroughly so the honey is fully dissolved.
Be sure to taste the dressing before you pour it over the fruit. Adjust the flavor by adding just a little more of whatever you think you need – honey, salt, lime, etc.
When the flavor is just right, pour the honey lime dressing over the prepared fruits. There will probably be more dressing than you need. Start by using half of the dressing and then taste to see if you’d like to add more. (Reserve any extra dressing for another use).
Gently toss everything together, ensuring that each piece of fruit is lightly coated with the dressing. If you’d like, sprinkle a few extra bits of mint leaf over the top.
Stone Fruit Salad Serving SuggestionsThis Stone Fruit Salad with Honey Lime Dressing is very versatile.
I like it all on its own as a snack, but serving it alongside some cottage cheese or Greek yogurt makes a great summer lunch on hot days. It’s also a great dinner-time side dish for grilled chicken and is great to bring along to potlucks and picnics.
For a light dessert, serve a generous portion of stone fruit salad over a scoop of vanilla ice.
A Summer Staple: A Fruit Salad that Stays FreshThis Stone Fruit Salad with Honey Lime Dressing is a celebration of summer in every bite and a simple, delicious way to enjoy the season’s bounty. Whether you’re hosting a summer picnic, a backyard barbecue, or just looking for a refreshing treat, this salad is sure to impress.
Give it a try this week, and enjoy the sweet taste of summer with this delightful recipe and savor the sunshine in every bite!
Print


Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18722};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});
July 8, 2024
Best Free Quilting Patterns Round-Up: The Best of the Best!

Quilting can be an expensive hobby! One way to make it a little less pricy is to take advantage of the many free online patterns. Read on for some of the internet’s Best Free Quilt Patterns!
Best Free Quilt Patterns – Creativity Is Just A Click AwayIt seems like the price of everything keeps going up these days, including the cost of my favorite hobby – quilting.
Prices for fabric, thread, and batting have significantly increased over the last few years. So has the cost of patterns.
There are certainly patterns out there that are worth buying. Just a couple of months ago, a wonderful quilt designer came to speak at my guild. I happily handed over my credit card to purchase half a dozen of her beautiful patterns.
However, with the advent of the Internet, accessing free quilt patterns has never been easier, and many of them are pretty terrific.
I’m just wrapping up a quilting retreat with friends. During the retreat, I’ve been working on three projects this week, all from free online patterns and tutorials. It’s proof positive that some of the best quilt patterns around won’t cost you a dime.
The online options for free quilt patterns are almost endless, so there truly is no objective way to say which are the best.
However, I do have some personal favorites. I thought I’d start with the quilts I’ve been making for myself recently.
Sew Can She – Best Free Quilt Patterns For Fat QuartersMost quilters love collecting those 18 by 22-inch cuts of fabric known as fat quarters. I’m no exception.
So, when I learned we were to be blessed with a seventh grand darling, I already had a great collection of fabrics ready to go. All I needed was a terrific pattern to use with them, preferably one that was free.
A quick internet search brought me to an article on the SewCanShe blog, featuring 25 free quilt patterns that are fat quarter friendly.
After some consultation with my daughter-in-love, I settled on the Fancy Star pattern. The pattern was written for 10-inch blocks, and made an 88-inch square quilt, which was too big for my purposes.
I decreased the block size to 5 inches, which gave me an approximately 44-inch square quilt with the borders. It’s the perfect size for this new little addition to our family. I still need to have it quilted, but it turned out to be really cute.
It was also really very easy to make, which was nice. Generally, I aim to get my grand darling’s “baby” quilts completed before they go to kindergarten. But because the pattern was easy to make, this little love will actually receive her baby quilt while she is still a baby!
Missouri Star Quilt Company – Best Free Quilt Pattern Tutorials
We quilters also love to collect pre-cut fabrics. I am especially fond of “layer cakes,” which are collections of 10-inch squares from a particular designer in complementary colors.
Jenny Doan, the founder and owner of the Missouri Star Quilt Company, is also a big fan of precuts. She has an almost endless number of online tutorials that show quick and easy ways to turn precuts into beautiful quilts.
Just before I left on my retreat, I went looking for a free pattern to use with my layer cakes and found a terrific Missouri Star tutorial for a gorgeous quilt called Summer Season. It uses two-layer cake collections plus some extra for the borders.
Apart from the borders, the whole thing is made up of Half-Square Triangles. Jenny shows you a method for making 8 at a time, so even though you need 320 of them to make this twin-size quilt, it really comes together very quickly.
Jenny also showed a method for making a scalloped border. I haven’t yet decided if I will add that to my quilt, but I love how it is turning out. I was able to finish the main body of the quilt in just three days!
My Scrappy Star String Quilt Block – Best Free Quilt Pattern for Scraps
If you’ve been quilting very long, you’ve probably got a whole box of scraps lying around. Maybe more than one.
One of my favorite ways to use up scraps is by making string quilts. When I went to a retreat with friends a couple of years ago, one of them showed me a fun and easy method for making star-patterned string quilts.
I shared a tutorial on the blog last year, and brought the project out again this year to keep working on it. One of the things I love about making these Scrappy Star Blocks is that it’s easy to pick up and put down.
It’s also a great quilt to work on if you only have a few minutes to sew. Each quadrant only takes a few minutes, but the result is very satisfying!
Triple Irish Chain Quilt – Best Free Quilt Pattern If You’re Up For a Challenge
Quick and easy patterns are a lot of fun to make. But if you’ve been quilting for very long, at some point, you’re going to want to tackle something more challenging.
The Triple Irish Chain is one that absolutely qualifies. Though it’s a complicated quilt to make, I was still able to find a great free pattern online, designed by Jessie Fincham and published as a free download from the Sew and Quilt Shop website in the UK.
It’s a gorgeous quilt, and just what I was looking for. (PLEASE TAKE NOTE OF THE PATTERN CORRECTIONS THAT ARE MENTIONED IN THE BLOG POST FOR THE PATTERN.)
Though this is a pattern that will take me quite a while to complete, I made some good progress on it during my retreat. It’s really fun to sew and I’m very excited to see how it will look when I’m done!
From Yours Truly – Best Free Quilt Patterns for BookloversQuilting is one of my hobbies, but writing novels is my profession.
I’ve written more than twenty books so far, and many of them have themes centered around creativity and quilting. (I guess it’s part of that whole “write what you know” thing.)
Over the years, I’ve offered quite a few free quilting patterns on my website that are based upon or inspired by my novels.
There are all kinds of projects there, from lap quilts and baby quilts, to table runners and wall hangings. Eleven are available so far, and all of them can be downloaded for your personal use.
All you need to do is go to my website, and click on Patterns from the drop down menu under the Goodies tab, then submit your email address in the form. Here’s a link that will bring you directly to the patterns.
Best Free Quilt Patterns from Fabric Companies and Fabric DesignersAnother fantastic source for free quilt patterns if fabric companies and designers. They offer patterns featuring the fabric they sell, hoping that quilters will want to purchase them to use in their quilts.
And certainly, you can do just that. These designers have made some gorgeous quilts with beautiful fabrics! But you can also make it your own by using what you have on hand or by picking different colorways from the same designer.
Some of my favorite sources for free quilt patterns from fabric companies and designers are…
Maywood StudiosI’ve been using Maywood fabrics for years, and I really love them. They’ve got a terrific variety of prints, themed fabrics, and blenders, and the quality is excellent. I also love the many free patterns they offer on their website!
One thing to note, once you go to the website, click on the purple tab that says “Get Started” next to each project. That will bring you right to the download for the pattern.
Riley Blake DesignsOh, how I love Riley Blake fabrics! With so many colors and themes, it’s easy to get inspired to use their fabrics in my projects. The variety and quality of their free patterns is pretty darned inspiring too!
There are so many to choose from that I would be hard-pressed to pick a favorite. But the book lover in me is especially intrigued by the Elizabeth and Mr. Darcy Pride and Prejudice pattern, with its Jane Austen theme.
Moda FabricsModa is one of the biggest fabric companies in the country. So, it’s not surprising that they offer such a huge library of free quilting patterns. There really is something for everyone here!
However, I’m a big fan of Moda’s “Blockheads” patterns – a quilt-along program with free block patterns from various designers that will come together in a sampler quilt. I especially love this sampler quilt, Julia’s Table, designed by Karen O’Connor of Lady K Quilts. It’s simply beautiful and would be a lot of fun to make!

Photo courtesy of Moda Design
As I said before, with so many options out there, it really is impossible to create an objective list of the best free quilt patterns. But whether you’re a seasoned quilter or a beginner, free quilt patterns available online offer a treasure trove of creativity.
I hope you’ve been inspired by looking at some of my favorites, and will try some of these patterns soon!
July 1, 2024
Transfusion – An Easy, Delicious Summer Mocktail

Made with simple ingredients, this refreshing mocktail is perfect for summer gatherings or as a relaxing end of day ritual for one. Not too sweet. Not too tart. Not too fizzy. Easy to love, and to make!
Transfusion – Bartender’s Secret For An Easy, Delicous Summer MocktailI enjoy a cocktail as much as anyone, but I’m finding myself more and more drawn to the mocktail menus when I go out for dinner or a drink. My husband feels the same.
Though there can be something fun and festive about enjoying an adult beverage, we don’t always appreciate the slow, sluggish, sleepy feeling that comes afterward.
Judging from the increasing number of mocktails offered on menus late, it seems like we aren’t the only ones. More restaurants and bars are offering options for the sober and sober curious these days, crafting delicious, creative mocktails in a variety of flavor profiles.
I love checking out the ingredient list of mocktail menus when we go out, hoping to find something easy and delicious that I can replicate at home. However, more often than not, I’m disappointed because the ingredients involve all special syrups or infusions that I don’t have on hand and don’t have time to make.
But a couple of months back, I enjoyed a delicious restaurant mocktail that the bartender called a Transfusion that was made with just three simple ingredients.
Transfusion is an easy, delicious summertime mocktail with a tart but sweet taste, a little bit of a bite, and just enough fizz.
And that nice bartender was willing to share the recipe with me!
How To Make A Transfusion – An Easy, Delicious Summertime Mocktail
This is refreshing, mocktail is perfect for summertime gatherings, or a relaxing end of the day ritual.
And you’ll only need three ingredients to make your own Transfusion at home – grape juice, lime juice, and ginger beer.
No kidding! That’s it!
But there are a couple of things you need to know about those ingredients
You’ll need unsweetened Concord grape juice for this recipe – not that sweet stuff your kids drink. And that makes sense because this is a mocktail, not soda pop. Concord grape juice has a lovely depth of flavor, which adds a touch of sweetness, but only a touch.
Lime juice brings in a pleasantly tart taste and a crisp, citrusy punch. While you could use bottled lime juice, fresh squeezed is best. It’s just got a brighter, fresher, and more vibrant flavor than bottled.
The final ingredient is ginger beer. Take note that ginger beer is NOT the same as ginger ale. It’s not nearly as sweet and has a stronger ginger flavor that adds a nice little bite to your mocktail.
(Oh, and if some of your guests would rather have a cocktail than a mocktail, just add a little vodka or gin to the glass. Instructions for an alcoholic version will be included in the recipe below.)
To actually make a Transfusion, you’ll simply pour the ingredients over a tall glass full of ice, stir, and enjoy! But, of course, every mocktail tastes better with a fancy garnish.
Gilding The Lily With An Optional GarnishRelaxing with a special beverage before dinner or at the end of a busy day is one of life’s pleasant little rituals.
Enjoying that beverage in a lovely glass that’s topped with a pretty garnish makes the ritual feel even more special, like a small celebration.
A simple slice of lime perched on the edge of the glass is a quick and easy way to garnish this mocktail.
But if you want to take it a step further, try rinsing some grapes with water, rolling them in sugar, and putting them in the freezer for an hour. Thread three of the frozen, sugared grapes onto a skewer with mint leaves or thin slices of lime between the grapes.
It adds an extra special touch to this easy, delicious summertime mocktail.
Cheers!
Print

Fill a tall glass with ice. Add grape and lime juices (or optional alcohol if using) to the glass. Top with ginger beer to the rim. Stir and enjoy immediately. See the post for garnish ideas.

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18685};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});June 24, 2024
Strawberry Rhubarb Poke Cake – An Updated Poke Cake

Strawberry Rhubarb Poke Cake is a deliciously updated version of a 1970s favorite. It is a scrumptious, sweet-tart cake made with real strawberries and rhubarb. This recipe includes regular or vegetarian preparation.
A Strawberry Rhubarb Poke Cake – Based On A 70’s Classic RecipeIf you were cooking (or even just eating) during the 1970’s, you’ve probably heard about poke cakes.
Poke cake came to be because the popularity of Jell-O, and gelatin salads and desserts in general was waning by the 1970s. Hoping to get more people to buy more Jell-O, advertisers came up with a recipe for poke cake.
There are many versions of that old-fashioned recipe, but the basic idea was to poke holes into a cake and then fill and top with Jell-O. The process added extra flavor and fun pops of color to the cake when it was cut.
Those advertising execs knew what they were doing. Because even though I never really like packaged Jell-O (and still don’t) I loved poke cakes as a kid. Mostly because they looked really cool.
Poke Cake Need A Makeover!My next novel is set in 1963. Gelatin recipes were wildly popular then, and they show up in the book occasionally. That’s what got me thinking about poke cake and made me decide it was time for a makeover.
Instead of Jell-O, which contains artificial flavors and colors, my Strawberry Rhubarb Poke Cake is made with lots of real fruit. As you might guess, that makes this poke cake taste really good!
The fruit filling is thickened with unflavored gelatin. I used Knox brand, which you can easily find in the grocery store baking aisle. However, regular gelatin is made from animal products. That means vegetarians can’t eat it, and other people might not like the idea of it.
So, I also created a vegetarian version of my Strawberry Rhubarb Poke Cake, using ChillOver Powder purchased from Mary Jane’s Farm.
It’s agar agar kanten, an odorless powder made from sea vegetables, developed exclusively by the folks at Mary Jane’s Farm. It gels rapidly and has a completely neutral flavor.
Whether you make a standard or vegetarian version, this Strawberry Rhubarb Poke Cake has a terrific, sweet-tart, real-fruit flavor. And not only does this cake taste great, it’s super easy to make!
Making Strawberry Rhubarb Poke Cake – It All Starts With The CakeYou can use any cake you like for this recipe, either homemade or from a mix.
Because I thought that lemon would be fabulous combination with the strawberry and rhubarb, I used a lemon cake mix from Duncan Hines. Following the package directions, I made a 9 x 13 sheet cake.
However, you could also make a Bundt cake, cupcakes, or even a layer cake. The type of cake you choose to make is less important than the size of the holes you poke into it. Because this is one of those situations when more is definitely more.
My first attempt at making Strawberry Rhubarb Poke Cake was kind of a disappointment. I used a single bamboo skewer to poke my holes, and it was just too small. The filling didn’t get down into the holes at all, which is kind of the point.
So, when you’re poking the cake, use something that will poke a large hole. In my second, more successful attempt, I bundled 3 bamboo skewers together. That created a large enough hole so the filling could get into it. But you could also use the handle end of a wooden spoon, a dowel, or other utensil with a larger circumference.
Once you’ve chosen your utensil, be sure to poke a lot of holes all over the cake. Spacing the holes somewhere between one inch and half an inch is perfect. Again, more is more!
Because the filling will be thick, it’s also important it to spoon it over the cake, not just pour it on. My technique is to spoon the filling onto the cake, then use a spatula or the back of a wooden spoon to gently coax the filling into the holes.
Oh, how I love this strawberry rhubarb filling! It’s a little bit tart but just sweet enough. And all that yummy sweet-tartness combined with a scrumptious bite of cake is a mouthful of heaven!
Whether you’re making the standard or vegetarian version of the recipe, the filling starts with same way.
You’ll wash and slice the fruit, place it in a heavy-bottomed sauce pan, and stir in the sugar. Then, you’ll bring it to a boil over medium heat, stirring often, and then reduce the heat and simmer for about 10 minutes.
The fruit will be nicely cooked and very soft and will have produced a lot of sweet, syrupy juice. Once that happens, you’ll need to puree the filling so it’s smooth.
My immersion blender is perfect for jobs like this. It lets me puree right in the pot, so I don’t have to wash a blender jar or food processor. I also love it for making soups and smoothies. A basic immersion blender isn’t expensive, so if you don’t have one yet, it’s worth looking into.
Once your filling is cooked and pureed, it’s time to add the thickener. Depending on whether you’re making the standard or vegetarian version, the process will differ.
If you’re using regular gelatin, such as Knox, you’ll sprinkle the gelatin powder over a quarter cup of water and let it sit for about 3 minutes to “bloom”.
My recipe gives a range of amounts for the gelatin. If you want a softer set, use less. If you want the filling to set more firmly, use more.
After giving the bloomed and thickened gelatin a stir, you’ll put it back in the pan with the pureed fruit. Then you’ll cook the mixture over medium heat until almost boiling, whisking to make sure the gelatin dissolves.
Once the gelatin is ready, you’ll spoon it over the cake, and place it in cake in the refrigerator to cool and set the filling.
If you’re using the vegetarian ChillOver powder from Mary Jane’s Farm, the preparation is slightly different.
As for the standard gelatin, I give a range of amounts. If you want a soft set filling use the lesser amount. If you want a firmer set, use the larger amount.
I sprinkled the ChillOver powder directly onto my puree, then whisked it into the fruit while cooking over medium heat for about 3 minutes.
Something I really liked about this product is that it sets up quickly. But this means that you want to spoon it onto your prepared cake right away.
Another thing I like is that ChillOver doesn’t have to be refrigerated to set up, and won’t doesn’t melt if it isn’t refrigerated. That makes it easy to transport the cake to potlucks, and serve it at outdoor events such as picnics and barbeques.
Speaking of which…
This Strawberry Rhubarb Poke Cake is light and fruity and oh-so-scrumptious! It would be a great dessert to serve at a 4th of July celebration, or any summertime get together. Give it a try soon!
Print Strawberry Rhubarb Poke Cake – An Updated Poke Cake Author: Marie Bostwick

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18656};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});June 17, 2024
Low Sodium Broccoli Sesame Salad

This delicious recipe gives Broccoli Sesame Salad a low-sodium makeover. It’s quick to prepare and a fresh and tender low-sodium broccoli salad that’s bursting with sesame flavor. It’s a great summertime salad!
Low Sodium Broccoli Sesame Salad – Lots Of Sesame Flavor, Way Less SodiumOver the last year or so, I have come to realize that salt and my body just don’t play well together. So, I’ve been on a mission to create lower-sodium versions of some of my favorite dishes.
The recent experiment to create a lower-sodium take on traditional teriyaki resulted in my Best Grilled Chicken with Coconut Aminos. It was a big hit at our house and inspired me to give a makeover to one of my other favorite Asian-style dishes, Broccoli Sesame Salad.
Loads of nutty, savory sesame flavor make Broccoli Sesame Salad taste so good. However, many recipes for this salad also include a lot of salt. With a few ingredient tweaks, I was able to create a lower-sodium dressing that’s so tasty you won’t miss the salt.
Before we discuss that, let’s get back to basics. Becuase a really good Broccoli Sesame Salad starts with properly blanched broccoli.
Blanching the BroccoliLet’s face it, broccoli is one of those veggies that people love to hate on.
But I’m convinced that much of broccoli’s bad rap is less about the vegetable than the way people prepare it. And I get it. There’s nothing appetizing or tempting about a plate of limp, sickly green, overcooked broccoli.
However, properly blanched broccoli is tender but not soggy, has a gorgeous bright green color, and a slightly sweet taste.
When it comes to broccoli salad, blanching – briefly immersing the broccoli in rapidly boiling water, then in ice water to quickly stop the cooking – is the way to go. It’s an easy process, but there are a few tricks to it.
It all starts with a big pot of boiling, salted water. Yes, this is a lower-sodium recipe. But unless you’re supposed to eschew sodium entirely, you do want to salt the water generously.
A tablespoon of salt isn’t that much when diluted in 10 or 12 cups of water. And the broccoli will only be in it for a few minutes, so it won’t absorb much sodium, but a little salt will enhance the flavor of your low-sodium broccoli sesame salad.
While the water comes to a boil, trim the stem off the broccoli and cut the florets into bite-sized pieces. Then prepare an ice bath by putting lots of ice cubes into a big bowl of very cold water
(Pro Tip: If you peel off the woody outer layer to the pale green center, the stem is great to use in soup, stir fry, or shredded and tossed into a green salad or pasta.)
When the water has come to a rolling boil, dump the prepared florets into the pot. The water will stop boiling when the broccoli is added but will quickly begin boiling again.
Once it does, leave the broccoli in for 1-2 minutes, then drain off the water or scoop the florets from the pot using a sieve. (The broccoli should be bright green in color and tender but not soggy when you bite into it.)
Plunge the boiled broccoli immediately into the ice bath for a few minutes. Use your hands to push it down into the ice water. When the floret’s stems, feel cool to the touch, remove the blanched broccoli from the ice bath.
Lay the florets out on a kitchen towel to dry. This is important. If the broccoli isn’t thoroughly dry, the dressing won’t cling to the florets properly.
While the broccoli is drying, you’ll prepare the dressing.
Broccoli Sesame Salad – Making The Lower-Sodium DressingAs the name implies, sesame is an important ingredient in the salad. Much of that wonderful, mellow and nutty sesame flavor comes from freshly toasted and partially ground sesame.
To toast the sesame, you’ll just place it in a dry pan on the stove over medium heat, stirring gently and frequently until the sesame seeds turn slightly golden brown.
Next, crush the toasted seeds with a mortar and pestle or by giving then a couple of quick pulses in the food processor. You’re not trying to create a paste, just partially crush some of the seeds so the oils are released.
Once that’s done, you’ll simply whisk the rest of the dressing ingredients together in a bowl.
But let’s talk about those ingredients. Soy sauce and miso are what make most broccoli sesame salads so salty.
The soy sauce and white miso paste in my frig have 960 and 830 grams of sodium per tablespoon, respectively. That is a LOT of sodium! Definitely too much for me.
I replaced the soy sauce with coconut aminos, which have only 230 grams of sodium and are gluten-free (I prefer the Coconut Secret brand.) You could also use a low-sodium soy sauce if you prefer.
Also, I used organic tahini in place of the miso. It really ups the sesame flavor of this salad and has zero sodium!
When the dressing is ready, place the blanched, well-dried broccoli into a big serving bowl. Pour on the dressing. Use a rubber spatula or wooden spoon and a folding motion to coat the broccoli evenly with the dressing.
Serving Your Low-Sodium Broccoli Sesame SaladIn my opinion, this low-sodium Broccoli Sesame Salad tastes best on the day it is made. It’s great as a dinnertime side dish or to bring to a summertime potluck or picnic.
If there are leftovers, you can still eat them as is the next day. They will still be good, but the texture will be less firm.
Another way to use up leftovers is to toss the sesame a bowl of cold spaghetti or yakisoba noodles with some chicken, green onions, and touch of extra oil and coconut aminos or low sodium soy sauce.
Print


Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18628};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});June 10, 2024
Best Grilled Chicken with Coconut Aminos – A Low Sodium, Gluten Free Marinade

Love the taste of teriyaki but not the salt? Try Best Grilled Chicken with Coconut Aminos! Tender grilled chicken in sweet, savory, flavorful marinade. A low sodium, gluten free marinade. SO good!
Looking for more grilling recipes? Check out my collection here!
Best Grilled Chicken With Coconut Aminos – Asian Style Flavor, Way Less SaltThere’s no getting away from the fact that my mature body doesn’t process certain foods the way it did in my younger years.
For me, salt tops the list.
That’s been a bummer because some of my favorite Asian-influenced food and recipes contain a lot of salt. Switching to low sodium soy sauce helped a little, but not as much as I’d hoped.
Recently, my sister turned me on to coconut aminos. Though they’ve got a savory, umami flavor profile that’s similar to soy sauce but with way less sodium. Coconut aminos are also gluten free. Since more and more of my friends and family adhere to a gluten-free diet, this was a plus for me.
With all that in mind, I set out to a quest low sodium, gluten free marinade for grilled chicken with coconut aminos that would (hopefully) taste like teriyaki sauce. But with a lot less salt.
Spoiler alert: the quest was successful.
Best Grilled Chicken with Coconut Aminos – All Aminos Are Not Created Equal
But before we go much further, let’s talk about those coconut aminos. Because as I learned the hard way, all coconut aminos are not created equal!
As I said, my sister was the one who turned me on to coconut aminos. She said they tasted similar to soy sauce but had even less salt than low-sodium soy sauce.
That sounded good to me! I went to the grocery store and grabbed the first (okay, well…really just the cheapest) bottle of coconut aminos I saw.
But after I got home, I read the label on the aminos I’d purchased and found that they actually contained MORE sodium than my low-sodium soy sauce.
The lesson? Be sure to check the label before you buy coconut aminos!
My amino of choice is Coconut Secret. It’s got a great flavor (in spite of the name, it doesn’t taste like coconut) and just 270mg of sodium per tablespoon.
To help put that in perspective, low-sodium soy sauce has 530mg of sodium. Regular soy sauce has 870 to 960mg of sodium, depending on the brand. That’s a big difference!
It’s All About The Marinade: A Low Sodium, Gluten Free MarinadeThough I had high hopes for this grilled chicken recipe, it really turned out better than I could have imagined. It’s all about the marinade, which I now think is even better than teriyaki.
The inclusion of fresh ginger, garlic, cilantro, brown sugar, and red pepper creates a marinade that is sweet, savory, and slightly spicy all at once. The coconut aminos let those wonderful flavors come through instead of burying them under an avalanche of salt.
Also, the coconut aminos and fresh lime juice help tenderize the chicken, making it even more delicious.
As you’ll see in the recipe below, I give a range of amounts for a couple of ingredients. That allows you to make adjustments for your personal preference.
If you like things sweeter, go heavier on the brown sugar. If spice is more your thing, use the upper range of red pepper. Or add the maximum of both to get a sweeter marinade with an extra spicy kick.
My chicken of choice is generally dark meat, so I used skinless, boneless chicken thighs. But chicken breasts would be great too.
Though I haven’t tried it yet, I think this would also be a terrific marinade for steak, pork tenderloin, salmon, or even tofu!
However, because salmon and tofu are delicate, I would marinate them between 30 minutes and two hours, but no longer.
How To Make the Best Grilled Chicken with Coconut AminosThis is a wonderfully simple recipe to prepare.
All you’ll need to do is mix the marinade ingredients together in a bowl, whisking until everything is well combined and the sugar dissolves.
Pierce the chicken all over with the fork before placing the marinade. That will help infuse the flavors more deeply into the meat. Marinate for at least four hours or up to overnight. More is better, if you have time.
My preferred marination technique is to place the chicken and marinate a plastic zipper bag, pushing out as much air as possible when you close the bag. Leave the chicken to marinate in the refrigerator, and turn the bag over halfway through the marinating time.
When it’s time to cook, remove the chicken thighs from the marinade and preheat your grill. Grill the chicken for about 5 minutes on each side or until the interior temperature reaches 165 degrees.
Larger or thicker thighs or chicken breasts may require more cooking time. Again, make sure the interior temperature reaches 165 before consuming.
Print Best Grilled Chicken with Coconut Aminos – A Low Sodium, Gluten Free Marinade Author: Marie Bostwick

Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18608};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});June 3, 2024
10 Easy Ways to Cut Down on Carbs

Too much of an otherwise good thing isn’t always good for us. Trying to reduce the amount of carbohydrates in your diet? Check out this list of 10 Easy Ways to Cut Down on Carbs.
Consuming Fewer Carbs Doesn’t Have to Be PainfulMy darling husband and I have been blessed with good health. However, our doctor recently suggested it would be a good for us to find ways to cut down on carbs.That sent me off on a research mission.
My first dive into the topic was daunting and more than a little discouraging.
I ran across lots of suggestions and complicated formulas on how to all but eliminate carbs, cutting consumption to levels that sounded drastic – and well, pretty painful. Hey, I like bread! And rice, and pasta, and even the occasional slice of cake.
Then I remembered that the doctor had only suggested we find ways to cut down on carbs, not eliminate them entirely.
Whew!
So, I took another stab at it, searching for easy ways to cut down on carbs while still enjoying the foods we love.
Thankfully, I’ve discovered that it’s really not all that hard to do. Making these few adjustments, substitutions, and small changes to your diet can really add up. And yes, you’ll still be able to eat bread!
Read on for my list of 10 Easy Ways to Cut Down on Carbs.
1. Choose a Higher Protein BreakfastWhen you’re on the go, grabbing a carb-heavy bowl of cereal or a piece of toast is tempting. But choosing a higher-protein breakfast such as scrambled eggs or yogurt is an incredibly easy way to cut down on carbs.
For example, a cup of Shredded Wheat cereal contains 37 grams of net carbs. Two scrambled eggs only have 2 grams of carbs. Big difference!
But let’s face it, cereal and toast is yummy. Also, both contain fiber, which is something we definitely need, especially the whole wheat variety. If you’re not completely ready to cut the cord on cereal or toast, just choose a high-protein breakfast more often. Even two or three times a week will help.
And if you’re looking for an easy high-protein breakfast for busy days, check out my recipe for Make Ahead Mediterranean Egg Cups. They’re really delicious and freeze beautifully!
2. Use Fresh Fruit in YogurtWe often think of yogurt as a healthy choice for breakfast or snacks. However, most flavored yogurts contain a lot more sugar than you might suppose.
Adding your own fruit to plain yogurt is a deliciously easy way to cut down on carbs.
For example, 6 ounces of Yoplait “Real Fruit” Strawberry Yogurt has 26 grams of carbs, most of which come from added sugars. The same amount of plain yogurt plus a half cup of raspberries has around 14 grams of fiber. But those raspberries also have 4 grams of fiber, so the net carbs will actually be 10 grams.
3. Reduce or Eliminate Sugary DrinksSoda, sweetened teas, and energy drinks contain lots of sugar and carbohydrates, not to mention empty calories. Eliminating them from your diet or reducing your intake can be a game-changer if you’re looking for easy ways to cut down on carbs.
Plain or flavored sparkling water can be a good replacement for soda. Keeping a pitcher of plain water infused with slices of cucumber, mint, oranges, or sliced strawberries can help you kick the habit, too. You can also try making your own sugar-free sun tea to sip during the day.
If you really miss the sweet taste of soda, try making a spritzer of half fruit juice and half sparkling water, gradually reducing the amount of juice to water over time. Eight ounces of Sprite has 23 grams of carbs, while an 8-ounce sparkling spritzer made with cranberry or orange juice has about 12 to 14 carbs.
4. Choose Open-Faced or Half SandwichesAs I said above, I really love bread. And I am not about to stop eating sandwiches at lunchtime.
But making open-faced sandwiches or half-sandwiches is an easy way to cut down on carbs without giving up my favorite lunch choice.
To make sure I’m feeling full and satisfied, I pile extra fillings onto whatever sandwich I’ve made and round out the meal with a fresh salad, homemade soup, or some fruit.
5. Rethink Your Snack OptionsWhen you’re feeling peckish, it’s so easy and tempting to grab some chips, crackers, cookies, or candy.
Planning ahead for snacks and making options like nuts, seeds, hard-boiled eggs, cheese either on its own or with a little a few grapes or apple slices, or celery with a little peanut butter can really help reduce your carbs intake at snack time.
When it comes to rice or pasta, I feel the same way as I do about bread. I’m not giving it up entirely. However, I’ve found that reducing my portions is a painless way to cut back on carbs.
Lots of recipes count two ounces of dry spaghetti as a portion. That’s a LOT of pasta. And a lot of carbohydrates, around 42 grams. Cutting that down by half an ounce will your carb intake by about 10 grams, but still leave you a healthy portion of pasta.
The same principle applies to rice, which has 45 grams of carbs per cup. Cutting your portion to three-fourths or even half a cup instead of a whole cup can make a big difference.
If you’re worried this might leave you feeling hungry or unsatisfied, just add more lower-carb items to the meal, including extra protein and green, leafy vegetables.
7. Go Whole GrainHere’s the bad news. Whole grain breads and pastas, and brown rice have just as many carbs as their more refined counterparts.
The good news is that they also have more fiber. Grams of fiber is subtracted from grams of carbs, resulting in net carbs, which can help in the quest to cut down on carbs.
For example, because of the fiber, a cup of brown rice has about 3.5 fewer net grams of carbohydrate than white rice. That’s not a ton, so I still would keep an eye on portions, but it does make a difference. And fiber is a help to digestion, so there’s no downside here.
8. Make Your Own Salad DressingMany store-bought salad dressings are LOADED with sugar and, by extension, carbs.
Making your own salad dressing is a super simple way to cut out carbs. And not only will your homemade dressing taste better than dressing you buy at the grocery store, it’ll be a lot less expensive too.
If you’re not sure where to begin, mix up a simple vinaigrette. The traditional ratio is 3 parts oil to one part vinegar (but I generally go heavier on the vinegar) with some flavoring such as salt and pepper, fresh or dried herbs, and maybe some mustard or a bit of lemon juice.
9. Make Your Own EverythingOkay, this one is a little tongue-in-cheek. Obviously, most of us don’t have the time, energy, or expertise to make everything at home.
But prepared and packaged food almost always come with hidden sugar and carbs, plus all kinds of unpronounceable chemicals. Avoiding them and making foods from scratch when possible is a good overall health strategy.
Besides making salad dressings and sauces, you might also consider creating some of your own spice blends to sprinkle on grilled fish, roasted meat and chicken, or salad. Marinating meat and poultry at home is another tasty and easy way to cut down on carbs.
My recipe for Mediterranean Chicken with Dill and Feta Sauce is a great place to start!
10. Choose Fruit for DessertI like dessert. A lot. There is no way my sweet tooth and I are going to give it up entirely.
However, replacing that nightly bowl of ice cream or a handful of cookies with a bowl of berries or a juicy, perfectly ripe orange is a good way to cut back on carbs and empty calories.
If you’re not quite ready to go “full-fruit”, sprinkle a spoonful of dark chocolate chips onto your berries, or a little cream, or maybe enjoy them with just one cookie – not four.
May 27, 2024
7 Ingredient Easy Shrimp Cakes

With just seven ingredients and a quick stovetop preparation, these Easy Shrimp Cakes are a delicious and healthy dinner for busy days. They’re so simple and quick to make and so good!
Easy Shrimp Cakes – A Deelish Dinner In Record TimeIt can’t just be me, can it? I bet you’ve had moments when there’s so much on your calendar that you feel like there’s no time to make a decent dinner, too.
On days like that, the temptation to head to the nearest drive-thru and pick up some burgers on the way to wherever is strong!
Here’s why you might think twice before giving in to that urge.
Fast food is a lot pricier than it used to be, and it’s definitely not the healthiest option. Honestly, if I’m going to eat out, I’d rather save my money (and calories) for something better than a drive-thru burger.
But guess what? In about the same time it’d take you to drive to the nearest burger joint and wait to pick up your order, you can whip up these Easy Shrimp Cakes. For real!
And not only my shrimp cakes quick and easy to prepare, they’re really tasty too! (Not to mention way better for you than that fast-food burger.)
Ingredients For Easy Shrimp Cakes
There are only seven ingredients in my Easy Shrimp Cakes recipe. You won’t be surprised that the most important of these is shrimp.
As long as it’s raw, you can use any type of shrimp in this recipe. That’s one of the things I love about it because I almost always have a bag of shrimp in the freezer. But this time, I used some pink Patagonia shrimp that was on sale at the market.
The next most important ingredient is Old Bay Seasoning. This is also something I always keep on hand. This blend of 18 herbs and spices is my go-to seasoning for fish, seafood cakes, or seafood boils.
I just buy mine at the supermarket and keep it in the spice drawer. However, if you’re up for it, you can actually make your own to keep on hand. The Kitchn blog has a copycat recipe if you want to give it a try.
Beyond that, the ingredients to make Easy Shrimp Cakes are things you probably have on hand already. You’ll need olive oil, eggs, bell pepper, green onions, and bread crumbs.
My preference is for Panko bread crumbs, but you could substitute regular bread crumbs. You can use any color of sweet bell pepper.
And while I like green onions for this recipe, you could use white, yellow, or red. If you go, make sure you mince them very fine. Otherwise, the taste will be too strong.
An optional addition is a couple of teaspoons of fresh herbs, such as parsley, basil or dill. If you have some around and feel like it, you can toss them in for a little extra color and flavor. With or without the herbs, your easy shrimp cakes will still be really tasty!
Making And Serving Easy Shrimp CakesWhen I say these shrimp cakes are easy, I’m not exaggerating.
All you’ll need to do is whisk the egg, add the other ingredients, and then form the mixture into patties. Then, you’ll cook them on the stovetop in a small amount of oil, flipping the over halfway through, and serve. The whole process will only take about fifteen minutes. Maybe even less.
Please note that my recipe serves two people. If you’re feeding a family or a crowd, simply double, triple, or quadruple the recipes as needed.
And what can you serve with Easy Shrimp Cakes? Glad you asked.
A green salad plus a side of seasoned rice or pasta would be my first choice here. It would make for a quick and healthy sit-down dinner.
However, if you’re having one of those days where you really do need to eat on the run, shrimp cakes and easily become shrimp burgers. Kids will love them!
Just make one large patty per person instead of two small ones, put them on a bun with your favorite condiments, and enjoy them on the road.
Toss some carrot, celery, or cucumber sticks, plus some fruit for dessert, and you’ll have a tasty and healthy dinner to eat on the way to sports practice while doing errands or on a road trip.
Whether you’re dining at home or on the run, these shrimp cakes are a quick, easy, and delicious dinner. Give them a try soon!
Print


Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18587};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});May 20, 2024
Greek Inspired Chicken Cobb Salad

A tantalizing twist on a classic, this Greek inspired chicken Cobb Salad is bursting with fresh, healthy ingredients and delicious Mediterranean flavors. It’s terrific as a main course or a starter.
Greek Inspired Chicken Cobb Salad – Tastes as Gorgeous as It LooksAt my house, warmer weather marks the start of salad season. It’s the time of year when I give my stove and myself a break by serving lots of big, gorgeous main dish salads for supper.
Cobb salad frequently appears on our table at this time of year. It’s one of my husband’s favorites, and I’m a big fan, too. For me, Cobb salad is almost as much about the presentation as it is about the taste.
I just love the look of a big, beautiful, composed salad. Seeing all those fresh, colorful ingredients arranged side-by-side in tidy lines or groups somehow makes it even more tempting and tasty. Composed salads are something I often serve to company in the summer. As soon as I put the bowl down on the table, someone always says, “Oh, wow! That looks so good!”
This Greek Inspired Chicken Cobb Salad tastes just as good as it looks. And with all kinds of wonderful Mediterranean ingredients and spices, it’s a terrific and somewhat surprising twist on the classic cobb salad.
Opa! Here’s to savoring the flavors of Greece, one delicious bite at a time.
Special Ingredients for A Greek Inspired Chicken Cobb Salad
Like most main dish salads, the base for this dish is a generous portion of fresh greens. You can use whatever you like and have on hand, and even toss in some fresh green herbs if you like. This time, I used baby romaine, butter lettuce, and parsley.
The protein in this yummy salad comes from creamy, tangy, crumbled Feta – a traditional choice in so many Greek dishes – sliced hard-boiled eggs, and chicken tenderloins that I broiled with a generous sprinkle of Za’atar seasoning.
Za’atar blends can vary, but they usually consist of thyme, marjoram, and oregano (or a blend of all three), as well as sesame, sumac, coriander or cumin. I started using za’atar when I became more interested in Mediterranean cooking (you can find some of my recipes here), and it’s quickly become one of my favorite spices.
You can find it online or in many major supermarkets and specialty markets. Though I do think it’s worth seeking out, in a pinch, you could sprinkle the chicken with dried oregano, thyme, or a mixture of the two before cooking.
The additional veggies – diced tomatoes, avocado, cucumbers, and red onion – add crunch, color, and wonderful flavor to this Greek Inspired Chicken Cobb Salad.
My favorite choice here is Persian cucumbers. They’re seedless, crisp, and have a mild, slightly sweet flavor. If you can’t find them in the market, my first preference for substitution would be English cucumbers, which are available in most produce sections.
Red onions add plenty of color and zing to this wonderful salad. If the taste of raw onion is a little too sharp for your liking, try soaking the onions in water for a few minutes before tossing them in the bowl. That will mellow the flavor a bit.
A Simple Homemade Vinaigrette Brings It All Together
Vinaigrettes are my go-to option for most vegetable salads. They’re simple to make, and a light, healthy dressing of vinegar and oil, plus a few extra spices, tends to enhance the flavors of the other ingredients instead of overwhelming them.
This time, I used red wine vinegar, olive oil, a little mustard, and some dried oregano – ingredients you’ll often find in Greek cuisine. But you could easily change it up by using fresh herbs or switching out dried thyme or dill for the oregano.
That’s something else I love about vinaigrettes. They’re super flexible and almost impossible to get wrong. A few alterations of the ingredients can change the flavor profile and still give you a delicious result.
A Culinary Trip to The Agean From The Comfort Of Your KitchenWith its vibrant colors, bold flavors, and wholesome ingredients, this Greek-inspired Chicken Cobb Salad is a celebration of everything we love about Mediterranean cuisine. So, why not bring a taste of Greece to your table and indulge in a culinary adventure that’s as rich and vibrant as the land that inspired it? Add a nice loaf of crusty bread to enjoy with the salad, and dinner is served!
Looking for other delicious main dish salads? Check out my California Pizza Kitchen Copycat BBQ Chicken Salad or my Blackberry and Rosemary Grilled Chicken Salad.
Print

For the Salad:
8 oz chicken tenders1 T Olive Oil2–3 tsp Za’atar seasoning8 cups lettuce and/or greens2 oz crumbled feta2 Roma Tomatoes, seeded and chopped8 kalamata or green olives, quartered2 hard boiled eggs, sliced1 large avocado, diced½ small red onion, diced2 small Persian cucumbers, diced (can sub for a cup of other types of cucumbers)For the Vinaigrette Dressing:
½ cup extra virgin olive oil3 T red wine vinegar2 tsp Dijon mustard1 tsp dried oregano½ tsp kosher salt¼ tsp fresh ground pepper2 cloves minced garlic Cook Mode Prevent your screen from going dark Instructions Set the oven to broil. Line a baking pan with foil. Place the chicken tenders in a bowl with a little olive oil, no more than a tablespoon, and stir so the tenders are evenly coated with the oil. Generously sprinkle the chicken with the za’atar seasoning, stir to even distribute the seasoning.Place the prepared chicken tenders on the foil lined baking sheet. Place the pan in the oven, about 6 inches under the broiler. Broil for 5 minutes, then flip the tenders over and broil for an additional five minutes, until the interior temperature reaches 165 degrees. Remove from oven and allow to cool while you prepare the salad.Tear or cut the salad greens into bite-sized pieces and place in a large, shallow salad bowl. Attractively arrange the Feta cheese, tomatoes, olives, boiled egg slices, diced red onion, and diced cucumbers of top of the greens by group, leaving space for the chicken.Cut the cooled chicken tenders into bite-sized slices and place on top of the salad greens.In a small bowl, whisk together all the ingredients for vinaigrette. Taste and adjust seasoning.Bring the salad to the table (so everyone has a chance to appreciate its beauty!), and then pour on the desired amount vinaigrette and toss just before serving.
Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18575};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});
May 13, 2024
Weeknight Chicken Parmesan Casserole

Tender, meaty chicken in delicious stovetop tomato sauce crowned with a crunchy topping of seasoned bread crumbs and cheese. This weeknight Chicken Parmesan Casserole is a cozy and healthy dinner. It’s so good! And so simple to make!
Weeknight Chicken Parmesan Casserole – Dinner is Solved; No Joke!Years ago, when my kiddos were still little, I remember talking to my sister on the phone, noticing that the dreaded dinnertime witching hour was coming up, and heaving a sigh. “Well, I’d better hang up. The kids are getting hungry, so I’ve gotta go do something to a chicken.”
“I’ve gotta go do something to a chicken” became shorthand for the slog of coming up with yet another weeknight meal, as well as a long-running family joke.
But there’s a lot of truth in that joke. Because even if you love to cook, the daily grind of coming up with a tasty, affordable, and healthy dinner can rob your culinary joy.
That’s why I’m all about one-dish dinners, like this Chicken Parmesan Casserole.
The classic chicken parmesan is always a family favorite, a dish that just about everybody loves. My oven-baked casserole features all the savory, Italian-inspired flavor of the original.
However, my version is easier to make because you pop the whole thing into the oven at once rather than pan-frying individual pieces of chicken. And though skipping the frying helps up the health factor too, this Weeknight Chicken Parmesan Casserole doesn’t skimp on flavor.
In short, this delectable dish is a great weeknight dinner solution. No joke!
Weeknight Chicken Parmesan Casserole – Simple Ingredients for Big Flavor
So, let’s talk ingredients, and preparation.
The first step making a simple and super yummy stovetop tomato sauce.
You’ll cook onions, peppers, and garlic in olive oil until they’re nice and soft and the onions start to caramelize and turn golden brown. Caramelizing the onions helps to bring out their natural sweetness and flavor, so you don’t want to rush that part.
Next, you’ll add plain canned tomato sauce and some canned diced tomatoes. You don’t need to use anything fancy when it comes to the tomatoes and sauce. The generic supermarket brand will work just fine because you’ll be adding lots of flavor with fresh and dried herbs and spices.
The finished sauce goes into an ovenproof casserole dish or baking pan. Then you’ll immerse your chicken in the sauce so it stays nice and tender during baking.
The classic chicken parmesan uses breaded, fried chicken breasts. I prefer to use skinless, boneless chicken thighs for my Weeknight Chicken Parmesan Casserole because I find them to be more flavorful and tender. But if you’d rather use chicken breasts, that’s just fine. You do you!
The last step is making and adding the topping. It’s just a simple mixture of bread crumbs, parmesan cheese, herbs, seasonings, and olive oil that you’ll heap over the chicken pieces. The topping will turn a lovely, crunchy golden brown during baking.
While you could use regular bread crumbs in a pinch, I really do prefer panko bread crumbs here. They’re light and crisp right out of the box, which will help keep that yummy, cheesy, herby topping light and crisp, too.
What to serve with Weeknight Chicken Parmesan Casserole?
With plenty of veggies, protein-packed chicken, that wonderful, cheesy bread crumb topping, and a touch of olive oil, this really does qualify as a one-dish meal. I’ve eaten this Chicken Parmesan Casserole all on its own and been perfectly satisfied.
But it’s also really good served on top of spaghetti, rice, or almost any kind of pasta. A fresh green salad tossed with a simple Italian dressing or balsamic vinaigrette would round out the meal beautifully.
Though this is a recipe I rely on for weeknight meals, I wouldn’t hesitate to serve it to company, especially if I served it with pasta, salad, and maybe some garlic bread.
If we did have guests for dinner, I’d probably wrap it up with a simple dessert of spumoni ice cream – building on the Italian-night theme. But fresh raspberries and vanilla ice cream would be great here too.
Whether you’re feeding the family on a Monday or company on a Saturday night, Weeknight Chicken Parmesan Casserole is a crowd-pleaser. Try it soon!
Print


Tag @mariebostwick on Instagram and hashtag it #fiercelymarie
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/mariebostwick.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":18563};window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.smoothScroll = {init() {window.addEventListener( 'click', e => {let anchor = e.target;if ( ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {if ( anchor.tagName === 'A' ) {return;}anchor = anchor.closest( 'a' );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' } );history.pushState( {}, '', selector );}};(function( callback ) {if ( document.readyState !== 'loading' ) {callback();} else {window.addEventListener( 'load', callback );}})(() => {window.TastyRecipes.smoothScroll.init();});window.TastyRecipes = window.TastyRecipes || {};window.TastyRecipes.cookMode = {wakeLockApi: false,wakeLock: false,cookModeSelector: '.tasty-recipes-cook-mode',init() {if ("wakeLock" in navigator && "request" in navigator.wakeLock) {this.wakeLockApi = navigator.wakeLock;}const cookModes = 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 );});