Cottage Cheese Pumpkin Cake Bars – Easy Protein Snack Idea

Author avatar
|
sliced Cottage Cheese Pumpkin Cake Bars

There’s something magical about fall baking. The warm scent of cinnamon, the cozy feeling of pumpkin spice, and the satisfaction of pulling something wholesome and comforting from the oven. But what if you could enjoy all of that and sneak in some protein, keep the sugar low, and feel good about every bite?

Say hello to Cottage Cheese Pumpkin Cake Bars — your new favorite healthy pumpkin dessert.

I first made these on a rainy October afternoon, craving something sweet yet nutritious. I had cottage cheese and pumpkin purée in the fridge and figured… why not? The result was a batch of moist, fluffy, protein-packed pumpkin bars that disappeared faster than I expected.

These bars are:

  • Cozy and spiced
  • Lightly sweetened
  • Gluten-free and low-carb
  • Super easy to make

If you’re looking for a protein pumpkin bar recipe that doesn’t require fancy ingredients or a mixer, you’re in the right place.

What Makes This Pumpkin Cake Bars So Irresistible

  • High protein, low sugar – Thanks to cottage cheese and eggs, each bar packs in nutrients without the sugar crash.
  • Naturally gluten-free – Made with almond flour or oat flour for wholesome texture.
  • No refined sugar – Lightly sweetened with honey or maple syrup (optional).
  • One-bowl recipe – Minimal cleanup, maximum flavor.
  • Fall in every bite – Warm cinnamon, pumpkin spice, and creamy pumpkin purée.
  • Meal prep friendly – Make ahead and enjoy all week.
  • Kid-approved – Soft, cake-like texture with just the right sweetness.
  • Flexible – Easy to adapt for dairy-free or higher protein versions.

Ingredients for Cottage Cheese Pumpkin Cake Bars

Here’s what you’ll need to make this healthy pumpkin dessert:

  • 1 cup cottage cheese (full-fat or low-fat, both work)
  • 2 large eggs
  • ½ cup pumpkin purée (unsweetened)
  • ½ cup almond flour (or oat flour for a fluffier bar)
  • 2–3 tsp honey or maple syrup (optional, adjust to taste)
  • 1 tsp vanilla extract
  • 1 tsp cinnamon
  • ½ tsp pumpkin spice (or a blend of nutmeg + ginger)
  • 1 tsp baking powder
  • Pinch of salt

Optional Homemade Pumpkin Spice Mix

(If you don’t have pumpkin spice on hand)

Mix together:

  • ½ tsp ground nutmeg
  • ¼ tsp ground ginger
  • ¼ tsp ground cloves or allspice
cottage cheese pumpkin bar next to coffee mug
The perfect high-protein pumpkin snack bar to pair with your morning coffee.

How to Make Cottage Cheese Pumpkin Cake Bars – Step-by-Step

Step 1: Preheat & Prep
Preheat your oven to 350°F (175°C). Grease or line an 8×8-inch baking dish with parchment paper.

Step 2: Blend the Wet Ingredients
In a blender or food processor, blend:

  • Cottage cheese
  • Eggs
  • Pumpkin purée
  • Honey/maple syrup (if using)
  • Vanilla extract
    Blend until smooth and creamy.

Step 3: Mix the Dry Ingredients
In a large bowl, whisk together:

  • Almond flour
  • Cinnamon
  • Pumpkin spice
  • Baking powder
  • Salt

Step 4: Combine
Pour the wet mixture into the dry ingredients. Stir until a thick batter forms.

Step 5: Bake
Spread the batter evenly in your prepared dish. Bake for 25–30 minutes, or until a toothpick inserted in the center comes out clean.

Step 6: Cool & Slice
Let cool completely before slicing into bars. This helps them firm up.

Pro Tips & Cooking Secrets

  • Use full-fat cottage cheese for creamier texture.
  • Blend thoroughly for the smoothest batter — you shouldn’t taste any curds.
  • Don’t overbake — bars will continue to firm up as they cool.
  • Almond flour yields denser, fudgy bars. Oat flour creates softer, fluffier ones.
  • Want more protein? Add 1 scoop of vanilla or unflavored protein powder (reduce flour slightly).
  • Pumpkin purée only — don’t use pumpkin pie filling.
  • For vegan version, sub eggs with flax eggs and use dairy-free cottage cheese (like almond-based).
  • Sprinkle chopped walnuts or mini chocolate chips on top before baking.
  • Use muffin tins for individual servings (bake ~18–20 min).
  • Store in fridge for best texture — they taste even better the next day!

Variations & Substitutions

Dairy-Free

  • Use almond-based cottage cheese alternative.
  • Replace eggs with flax eggs (2 tbsp flax + 6 tbsp water).

Extra Sweetness

  • Add 1 mashed banana for a natural sweet boost.
  • Use stevia or monk fruit to keep sugar low.

Add-Ins

  • Chopped pecans or walnuts
  • Mini dark chocolate chips
  • Raisins or chopped dates
  • Chia seeds for extra fiber

Topping Ideas

  • Drizzle of almond butter or cashew cream
  • Dollop of Greek yogurt
  • Light maple glaze (maple syrup + coconut oil + vanilla)
Cottage Cheese Pumpkin Cake Bars – Easy Protein Snack Idea
Cottage Cheese Pumpkin Cake Bars – Easy Protein Snack Idea

Best Ways to Serve These Pumpkin Bars

Whether you’re planning brunch, a snack, or a fall-themed dessert platter, these pumpkin snack bars are super versatile.

  • 🍂 Breakfast-on-the-go – Pair with a latte for a cozy morning.
  • 🎃 Afternoon snack – Perfect with tea or coffee.
  • 🧁 Healthy dessert – Top with Greek yogurt or whipped coconut cream.
  • 🥗 Protein-rich lunchbox treat – Pack in kids’ or adults’ lunchboxes.
  • 🍁 Holiday appetizer or dessert tray – Cut into mini squares for bite-sized nibbles.

Nutritional Information (per bar – based on 9 bars)

NutrientAmount
Calories110
Protein7g
Carbs7g
Fat6g
Sugar2–3g (depending on sweetener)
Fiber2g
Gluten-Free

Storage & Reheating Guide

  • Fridge: Store in airtight container for up to 5 days.
  • Freezer: Freeze individually wrapped bars for up to 2 months.
  • Reheat: Microwave for 15–20 seconds or enjoy cold — they’re delicious both ways!

💡 Pro tip: Wrap bars in parchment before freezing to prevent sticking.

Pumpkin Cake Bars FAQs

1. Are Cottage Cheese Pumpkin Cake Bars healthy?

Yes, Cottage Cheese Pumpkin Cake Bars are a healthy pumpkin dessert. They’re made with high-protein cottage cheese, low sugar, and nutrient-dense ingredients like almond flour and pumpkin purée—making them ideal for a guilt-free fall treat.

2. How much protein is in Cottage Cheese Pumpkin Cake Bars?

Each bar contains about 7 grams of protein, making it a great option for a high-protein dessert or snack. You can increase the protein content by adding a scoop of protein powder to the batter.

3. Can I make Cottage Cheese Pumpkin Cake Bars without almond flour?

Absolutely! You can substitute oat flour for almond flour to create a softer, fluffier pumpkin bar, or try gluten-free all-purpose flour for a nut-free option.

4. Are these pumpkin bars low in sugar?

Yes, these are considered low-sugar pumpkin bars. The recipe contains only 2–3 teaspoons of honey or maple syrup (optional), and no refined sugar, making them a healthier fall baking choice.

5. Can I freeze Cottage Cheese Pumpkin Cake Bars?

Yes! These bars freeze very well. Simply slice them into squares, wrap individually, and store in an airtight container or freezer bag for up to 2 months. They’re great for meal prep or quick pumpkin snacks on the go.

Close-up of a moist cottage cheese pumpkin bar on a plate
Soft and fluffy pumpkin bar with a creamy cottage cheese base.

Delicious Inspirations for Next Time

Your Turn in the Kitchen

Now that you know how to make these Cottage Cheese Pumpkin Cake Bars, it’s your turn to cozy up your kitchen! Whether you’re craving a protein-packed snack, a healthy fall dessert, or just something deliciously different — this recipe delivers.

🍂 Give it a try and tell usWhat’s your favorite way to enjoy these pumpkin bars?
💬 Drop a comment, share your twist, or tag us on social with your creation, and don’t forget to save this recipe for later!


Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

sliced Cottage Cheese Pumpkin Cake Bars

Cottage Cheese Pumpkin Cake Bars – Easy Protein Snack Idea



5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews


  • Author:
    Patricia Jannet


  • Total Time:
    40 minutes


  • Yield:
    9 bars 1x


  • Diet:
    Gluten Free


Description

These Cottage Cheese Pumpkin Cake Bars are a cozy, protein-packed, and low-sugar fall treat made with wholesome ingredients like pumpkin purée, almond flour, and cottage cheese. They’re naturally gluten-free, kid-friendly, and perfect for breakfast, snacks, or a healthy dessert.


Ingredients


Scale

  • 1 cup cottage cheese
  • 2 large eggs
  • 1/2 cup pumpkin purée (unsweetened)
  • 1/2 cup almond flour (or oat flour)
  • 23 tsp honey or maple syrup (optional)
  • 1 tsp vanilla extract
  • 1 tsp cinnamon
  • 1/2 tsp pumpkin spice (or a mix of nutmeg + ginger)
  • 1 tsp baking powder
  • Pinch of salt



Instructions

  1. Preheat oven to 350°F (175°C) and grease or line an 8×8-inch baking dish.
  2. In a blender, combine cottage cheese, eggs, pumpkin purée, vanilla extract, and honey/maple syrup until smooth.
  3. In a separate bowl, whisk together almond flour, cinnamon, pumpkin spice, baking powder, and salt.
  4. Pour wet ingredients into dry ingredients and stir until a thick batter forms.
  5. Spread the batter evenly in the prepared baking dish.
  6. Bake for 25–30 minutes or until a toothpick inserted in the center comes out clean.
  7. Let cool completely before slicing into bars.

Notes

  • For a fluffier texture, use oat flour instead of almond flour.
  • Refrigerate leftovers for up to 5 days or freeze for up to 2 months.
  • Can be made nut-free by using oat flour.
  • Add chocolate chips or chopped nuts for variation.
  • Let bars cool completely before slicing to firm up.

  • Prep Time: 10 minutes
  • Cook Time: 30 minutes
  • Category: Snack
  • Method: Bake
  • Cuisine: American

Nutrition

  • Serving Size: 1 bar
  • Calories: 110
  • Sugar: 3g
  • Sodium: 100mg
  • Fat: 6g
  • Saturated Fat: 2g
  • Unsaturated Fat: 4g
  • Trans Fat: 0g
  • Carbohydrates: 7g
  • Fiber: 2g
  • Protein: 7g
  • Cholesterol: 40mg

const elementHref = anchor.getAttribute( 'href' ); if ( ! elementHref ) { return; }

e.preventDefault(); this.goToSelector( elementHref ); }); }, goToSelector( selector ) { const element = document.querySelector( selector ); if ( ! element ) { return; } element.scrollIntoView( { behavior: 'smooth' } ); } };

document.addEventListener( 'DOMContentLoaded', () => window.TastyRecipes.smoothScroll.init() );

(function(){

var bothEquals = function( d1, d2, D ) { var ret = 0; if (d1<=D) { ret++; } if (d2<=D) { ret++; } return ret === 2; };var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2<=D){d1+=d2;n1+=n2;d2=D+1}else if(d1>d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent("%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D"));

window.tastyRecipesFormatAmount = function(amount, el) { if ( parseFloat( amount ) === parseInt( amount ) ) { return amount; } var roundType = 'frac'; if (typeof el.dataset.amountShouldRound !== 'undefined') { if ('false' !== el.dataset.amountShouldRound) { if ( 'number' === el.dataset.amountShouldRound ) { roundType = 'number'; } else if ('frac' === el.dataset.amountShouldRound) { roundType = 'frac'; } else if ('vulgar' === el.dataset.amountShouldRound) { roundType = 'vulgar'; } else { roundType = 'integer'; } } } if ('number' === roundType) { amount = Number.parseFloat(amount).toPrecision(2); } else if ('integer' === roundType) { amount = Math.round(amount); } else if ('frac' === roundType || 'vulgar' === roundType) { var denom = 8; if (typeof el.dataset.unit !== 'undefined') { var unit = el.dataset.unit; if (['cups','cup','c'].includes(unit)) { denom = 4; if (0.125 === amount) { denom = 8; } if ("0.1667" === Number.parseFloat( amount ).toPrecision(4)) { denom = 6; } } if (['tablespoons','tablespoon','tbsp'].includes(unit)) { denom = 2; } if (['teaspoons','teaspoon','tsp'].includes(unit)) { denom = 8; } } var amountArray = frac.cont( amount, denom, true ); var newAmount = ''; if ( amountArray[1] !== 0 ) { newAmount = amountArray[1] + '/' + amountArray[2]; if ('vulgar' === roundType) { Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) { newAmount = vulgar; } }); } } if ( newAmount ) { newAmount = ' ' + newAmount; } if ( amountArray[0] ) { newAmount = amountArray[0] + newAmount; } amount = newAmount; } return amount; };

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( '.tasty-recipes-print-button' );

if ( ! printButton ) { return; }

const printURL = new URL( printButton.href ); const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( '.tasty-recipes-convert-button-active' ); const scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );

let unit = ''; let scale = '';

if ( unitButton ) { unit = unitButton.dataset.unitType; searchParams.delete('unit'); searchParams.set( 'unit', unit ); }

if ( scaleButton ) { scale = scaleButton.dataset.amount; searchParams.set( 'scale', scale ); }

const paramString = searchParams.toString(); const newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString; const printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );

printLinks.forEach( ( el ) => { el.href = newURL; });

const printButtons = document.querySelectorAll( '.tasty-recipes-print-button' ); printButtons.forEach( ( el ) => { el.href = newURL; }); };

document.addEventListener( 'DOMContentLoaded', () => {

if ( ! window.location.href.includes( '/print/' ) ) { return; }

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( 'unit' ); const scale = searchParams.get( 'scale' );

if ( unit && ( 'metric' === unit || 'usc' === unit ) ) { document.querySelector( '.tasty-recipes-convert-button[data-unit-type="' + unit + '"]' ).click(); }

if ( scale && Number(scale) > 0 ) { document.querySelector( '.tasty-recipes-scale-button[data-amount="' + Number(scale) + '"]' ).click(); } }); }());

(function(){ var buttonClass = 'tasty-recipes-scale-button', buttonActiveClass = 'tasty-recipes-scale-button-active', buttons = document.querySelectorAll('.tasty-recipes-scale-button'); if ( ! buttons ) { return; }

buttons.forEach(function(button){ button.addEventListener('click', function(event){ event.preventDefault(); var recipe = event.target.closest('.tasty-recipes'); if ( ! recipe ) { return; } var otherButtons = recipe.querySelectorAll('.' + buttonClass); otherButtons.forEach(function(bt){ bt.classList.remove(buttonActiveClass); }); button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll('span[data-amount]'); var buttonAmount = parseFloat( button.dataset.amount ); scalables.forEach(function(scalable){ if (typeof scalable.dataset.amountOriginalType === 'undefined' && typeof scalable.dataset.nfOriginal === 'undefined') { if (-1 !== scalable.innerText.indexOf('/')) { scalable.dataset.amountOriginalType = 'frac'; } if (-1 !== scalable.innerText.indexOf('.')) { scalable.dataset.amountOriginalType = 'number'; } Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (-1 !== scalable.innerText.indexOf(vulgar)) { scalable.dataset.amountOriginalType = 'vulgar'; } }); if (typeof scalable.dataset.amountOriginalType !== 'undefined') { scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType; } } var amount = parseFloat( scalable.dataset.amount ) * buttonAmount; amount = window.tastyRecipesFormatAmount(amount, scalable); if ( typeof scalable.dataset.unit !== 'undefined' ) { if ( ! scalable.classList.contains('nutrifox-quantity') ) { if ( ! scalable.classList.contains('nutrifox-second-quantity') ) { amount += ' ' + scalable.dataset.unit; } } } scalable.innerText = amount; });

var nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]'); nonNumerics.forEach(function(nonNumeric){ var indicator = nonNumeric.querySelector('span[data-non-numeric-label]'); if ( indicator ) { nonNumeric.removeChild(indicator); } if ( 1 !== buttonAmount ) { indicator = document.createElement('span'); indicator.setAttribute('data-non-numeric-label', true); var text = document.createTextNode(' (x' + buttonAmount + ')'); indicator.appendChild(text); nonNumeric.appendChild(indicator); } });

window.tastyRecipesUpdatePrintLink(); }); }); }());

(function() {

document.querySelectorAll('.tasty-recipes-copy-button').forEach(function(copyButton) { if (copyButton.getAttribute('data-tasty-recipes-click-event')) { return; } copyButton.setAttribute('data-tasty-recipes-click-event', true);

copyButton.addEventListener('click', function(event) { event.preventDefault(); var copyContainer = copyButton.closest('.tasty-recipes-ingredients-clipboard-container');

var messageText = copyButton.attributes.getNamedItem('data-success').nodeValue; var copySuccessMessage = document.createElement('div'); var copySuccessParagraph = document.createElement('p'); copySuccessParagraph.innerText = messageText; copySuccessMessage.appendChild(copySuccessParagraph); copySuccessMessage.classList.add('tasty-recipes-flash-message'); var messageDuration = 3000;

var ingredients = []; var ingredientsContainer = copyButton.closest('.tasty-recipes-ingredients') || copyButton.closest('.tasty-recipe-ingredients'); var foundIngredients = false; var findIngredients = function(div) { if ( div.querySelectorAll('li').length ) { div.querySelectorAll('li').forEach(function(li) { ingredients.push(li.innerText); }); foundIngredients = true; } else if ( div.querySelectorAll('p').length ) { div.querySelectorAll('p').forEach(function(p) { ingredients.push(p.innerText); }); foundIngredients = true; } }; if (ingredientsContainer.querySelector('.tasty-recipes-ingredients-body')) { findIngredients(ingredientsContainer.querySelector('.tasty-recipes-ingredients-body')); } else { ingredientsContainer.querySelectorAll('div').forEach(function(div) { if ( foundIngredients ) { return; } if ( div.classList.contains('tasty-recipes-ingredients-header') || div.parentElement.classList.contains('tasty-recipes-ingredients-header') || div.classList.contains('tasty-recipes-ingredients-header') ) { return; } findIngredients(div); }); }

var readableIngredients = ''; ingredients.forEach(function(ingredient) { readableIngredients += ingredient + '\n'; }); readableIngredients = readableIngredients.trim();

var fakeElem = document.createElement("textarea"); fakeElem.style.fontSize = "12pt"; fakeElem.style.border = "0"; fakeElem.style.padding = "0"; fakeElem.style.margin = "0"; fakeElem.style.position = "absolute"; fakeElem.style.left = "-9999px";

var yPosition = window.pageYOffset || document.documentElement.scrollTop; fakeElem.style.top = yPosition + 'px';

fakeElem.setAttribute("readonly", ""); fakeElem.value = readableIngredients;

document.body.appendChild(fakeElem);

if (navigator.userAgent.match(/ipad|iphone/i)) { var range = document.createRange();

var selection = window.getSelection(); range.selectNodeContents(fakeElem); selection.removeAllRanges(); selection.addRange(range); fakeElem.setSelectionRange(0, 999999); } else { fakeElem.select(); }

document.execCommand("copy");

document.body.removeChild(fakeElem); fakeElem = null;

copyContainer.appendChild(copySuccessMessage);

setTimeout(function() { copyContainer.removeChild(copySuccessMessage); }, messageDuration); }); });

}());

(function(){ document.querySelectorAll('[data-tr-ingredient-checkbox]').forEach(function(el) { var input = el.querySelector('.tr-ingredient-checkbox-container input[type="checkbox"]'); if ( ! input ) { return; } if (input.checked) { el.dataset.trIngredientCheckbox = 'checked'; } el.addEventListener('click', function(event) { if ( 'A' === event.target.nodeName || 'INPUT' === event.target.nodeName || 'LABEL' === event.target.nodeName ) { return; } input.click(); }); input.addEventListener('change', function() { el.dataset.trIngredientCheckbox = input.checked ? 'checked' : ''; }); }); }());

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 ); });

Blend 1 cup cottage cheese, 2 eggs, ½ cup pumpkin purée, ½ cup almond flour, honey, vanilla, cinnamon, pumpkin spice, and baking powder in one bowl, then pour into a lined baking pan and bake until set. The result is moist, protein-packed pumpkin cake bars with a soft, fluffy texture.

Why This Recipe Works

Cottage cheese adds moisture and protein without extra sugar, keeping the bars soft and cake-like. Pumpkin purée provides natural sweetness and fall flavor while reducing the need for added fats. The one-bowl method with almond flour means no mixer is needed and cleanup is minimal.

Common Mistakes to Avoid

Using pumpkin pie filling instead of unsweetened pumpkin purée adds unwanted sugar and throws off the texture. Not blending the cottage cheese smooth enough leaves lumpy curds in the bars — use a blender or food processor for a silky batter. Overbaking dries them out, so pull them when the center is just set.

Storage and Reheating

Store cottage cheese pumpkin cake bars in an airtight container in the fridge for up to 5 days. Freeze individually wrapped bars for up to 2 months. Reheat in the microwave for 20–30 seconds or enjoy cold straight from the fridge for a quick protein snack.

Make Ahead Tips

These bars are ideal for meal prep. Bake a full batch on the weekend, slice into portions, and refrigerate for grab-and-go snacking all week. They actually taste better after a night in the fridge as the pumpkin spice flavors deepen and the texture firms up slightly.

More Best Cheesecake Recipes: Browse our full collection of best cheesecake recipes for more tested favorites.

🌿 Related: If you enjoyed this recipe, try our natural Mounjaro recipe for daily fat burning — a reader favorite for natural wellness!

Keep Reading

Strawberry Oatmeal Cookies stacked with pink glaze and fresh strawberries on the side
|
by Patricia Jannet
Oreo stuffed cinnamon rolls with gooey chocolate center and cream cheese icing
|
by Patricia Jannet
Vanilla Buttercream Recipe
|
by Patricia Jannet

Leave a Comment

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star