This Post May Contain Affiliate Links. Please Read Our Disclosure Policy.

Move over, IKEA. These paleo and Whole30 Swedish meatballs are SO easy to make, and full of delicious, savory flavor. Complete with an irresistibly creamy gravy, they’re perfect over mashed potatoes with a side of lingonberry or raspberry jam. Gluten free, lactose free (and easily dairy free), and low carb, too!

Whole30 Swedish meatballs in a large cast-iron skillet with plenty of creamy sauce.

🇸🇪 What Makes This Recipe So Good

  • Inspired by the famous IKEA Köttbullar “Swedish meatballs”, these Whole30 Swedish meatballs are full of savory flavor. Honestly – and I’m not just saying this! – I actually like these Swedish meatballs better than IKEA’s. For one thing, they’re Whole30-compatible, paleo, and gluten free. They’re also ridiculous easy to make, freeze up great for later, and just taste incredible. Plus they’re swathed by an unbelievably creamy gravy.
  • While the gravy component might not be the authentic Swedish pairing, it’s pretty irresistible and I can’t imagine anyone would judge you for it. If they do, feel free to send them my way. Or just give them a spoonful and let them taste the amazingness for themselves.
  • I balance out the delightful umami of the paleo meatballs and gravy with a little touch of sweetness from lingonberry jam (or raspberry fruit spread). Before you say, “But Cheryl, those aren’t Whole30-compatible!” – they technically are! First of all, make sure you’re using a compatible option with no added sugars or other off-limits ingredients. Second, foods like fruit spreads aren’t compatible if you use them in a sweet setting, like stirring them into a compliant yogurt. They’re totally allowed in a savory setting like this!
Whole30 instant mashed potatoes

We recommend pairing these Whole30 Swedish Meatballs with our Whole30 Instant Pot Mashed Potatoes.

👩🏼‍🍳 Chef’s Tips

  • To make the gravy really creamy, you want to use pure, full-fat coconut cream. This is NOT the same as coconut cream in a carton, or coconut creamer, or cream of coconut, or coco lopez. Seriously, don’t use those. Instead, take a can of unsweetened, full-fat coconut milk and put it in the fridge. This makes the super rich “cream” solidify and separate from the water, making it easy to use in place of ingredients like heavy cream or half-and-half.
  • You may need to use 2 cans of coconut milk to produce 1 cup of pure coconut cream.
  • When you’re mixing the Swedish meatball mixture, make sure you don’t overmix. Too much and you’ll end up with dense, tough meatballs. Use your hands and mix just until everything is fully incorporated.
  • The coconut aminos are completely optional, used mainly for a deeper color and a little splash of flavor. If you don’t have coconut aminos already, don’t run out and buy a bottle just for this recipe.

Recipe Variations

  1. Instead of using a blend of ground beef and ground pork, you can make your paleo Swedish meatballs with all beef or all pork. For a leaner option, try them with ground chicken or ground turkey.
  2. Try cassava flour in place of the arrowroot powder. Cassava flour is my favorite paleo flour, but it can be harder to find, so I typically use arrowroot. Cassava flour will give you more traditional-tasting meatballs, though!
  3. Around the holidays, replace the lingonberry jam with a side of Whole30 cranberry sauce. Sweet and tart, plus a great way to use up any leftovers!

Making changes to a recipe can result in recipe failure. Any substitutions or variations listed are simple changes that I believe will work in this recipe, but results are not guaranteed.

A plate of Whole30 Swedish meatballs and gravy atop a bed of mashed potatoes.

🥘 More Recipes You’ll Love

Recipe By: Cheryl Malik
4.98 from 34 votes

Whole30 Swedish Meatballs with Gravy (Paleo, Gluten Free)

Prep 20 minutes
Cook 30 minutes
Total 50 minutes
Tender paleo Swedish meatballs with a creamy, compliant gravy. Perfect over mashed potatoes with lingonberry or raspberry jam.
6 servings

Equipment

  • large mixing bowl
  • 2-tablespoon scoop with release handle
  • large baking sheet
  • Large skillet cast-iron preferred
  • Tongs or spatula
  • Large plate
  • whisk

Ingredients

For the Swedish Meatballs

  • 1 pound lean ground beef
  • 1 pound ground pork
  • cup super-fine blanched almond flour
  • 1 large egg
  • 1 tablespoon minced fresh garlic approximately 2 large cloves
  • 1 cup finely chopped white onion approximately ½ of one medium white onion
  • 1 teaspoon salt more or less to taste
  • ¼ teaspoon freshly ground black pepper more or less to taste
  • ¼ teaspoon freshly ground white pepper more or less to taste
  • 1 pinch allspice
  • 2 tablespoons finely chopped fresh parsley

To Cook the Swedish Meatballs

  • 2 tablespoons refined coconut oil plus more as needed

For the Gravy

  • 3 tablespoons ghee or 3 tablespoons refined coconut oil
  • 3 tablespoons arrowroot powder
  • 2 cups compliant beef broth low-sodium preferred
  • 1 cup unsweetened, full-fat coconut cream see Notes
  • 1 teaspoon compliant Dijon mustard see Notes
  • 1 teaspoon salt more or less to taste
  • 1 teaspoon freshly cracked black pepper more or less to taste
  • 1 dash coconut aminos optional

Serving Suggestions (All Optional)

  • mashed potatoes or mashed cauliflower
  • compliant lingonberry jam or compliant raspberry jam

Instructions

To Make the Swedish Meatballs

  • Add 1 pound lean ground beef, 1 pound ground pork, ⅓ cup super-fine blanched almond flour, 1 large egg, 1 tablespoon minced fresh garlic, 1 cup finely chopped white onion, 1 teaspoon salt, ¼ teaspoon freshly ground black pepper, ¼ teaspoon freshly ground white pepper, 1 pinch allspice, and 2 tablespoons finely chopped fresh parsley to large mixing bowl.
  • Gently mix together ingredients with hands, ensuring all ingredients are fully incorporated. Be careful not to overmix.
  • Using scoop with release handle, portion meatball mixture into individual scoops of desired size. Roll each scoop gently between palms to form into meatballs, then place formed meatballs on large baking sheet and set aside. Repeat until entire mixture has been formed into equally-sized meatballs.

To Cook the Swedish Meatballs

  • Place large skillet on stovetop over medium heat. When pan is warm, add 1 to 2 tablespoons refined coconut oil and continue heating skillet until oil is hot and shimmering.
  • Once oil is hot, place meatballs in skillet in one even layer, being careful not to overcrowd pan. Work in batches as needed depending on size of skillet and size and number of meatballs.
  • Cook meatballs until browned on bottom, then flip meatballs over. Repeat until meatballs are browned on all sides, then transfer cooked meatballs to large plate and set aside. Repeat with remaining meatballs until all have been fully cooked.

To Make the Gravy

  • Return empty skillet to stovetop and reduce heat to medium-low. Add 3 tablespoons ghee and warm ghee until melted, swirling and tilting pan occasionally to distribute ghee across entire skillet.
  • When ghee has melted, sprinkle 3 tablespoons arrowroot powder into skillet, then vigorously whisk arrowroot into melted ghee until fully combined.
  • Once combined, slowly pour 2 cups compliant beef broth into skillet in small increments, whisking constantly to incorporate beef broth into arrowroot roux. Continue until all beef broth has been added and mixture has become thin and smooth.
  • Increase heat under skillet to medium and continue whisking mixture until slightly thickened.
  • Once mixture has thickened, remove skillet from heat and let cool slightly. Slowly pour 1 cup unsweetened, full-fat coconut cream into skillet and whisk to incorporate fully.
  • Return skillet to heat. Add 1 teaspoon compliant Dijon mustard, 1 teaspoon salt, 1 teaspoon freshly cracked black pepper, and 1 dash coconut aminos (if desired). Whisk mixture until all ingredienst are fully incorporated, then reduce heat under skillet to medium-low.
  • Simmer mixture 3 to 5 minutes, stirring occasionally, until gravy has thickened to desired consistency.
  • When satisfied with consistency, return meatballs to skillet. Coat meatballs with gravy on all sides and simmer just until meatballs are heated through.

To Serve

  • Portion mashed potatoes or mashed cauliflower onto serving plates or bowls.
  • Top with Swedish meatballs, then spoon desired amount of gravy over meatballs.
  • Serve warm with compliant lingonberry jam if desired and plenty of additional gravy.
  • Quantity: Actual number of meatballs made will depend entirely on the size of your portions. Smaller scoops of the meatball mixture will yield more meatballs; larger scoops will yield fewer meatballs.
  • Coconut Cream: Place an unopened can of unsweetened, full-fat coconut milk in the fridge overnight. When you’re ready to use it, remove the can from the fridge without shaking it. Open the can and scoop out the thick, white portion that has separated from the coconut water. This is your coconut cream. Discard the remaining liquid or use it for something else. Note: you may need to use 2 cans of coconut milk to yield 1 cup of coconut cream.
  • Important: Do NOT use coconut creamer, coco lopez, or cream of coconut. These are not the same as coconut cream, and they are not Whole30-compatible. Also, be sure your coconut cream is unsweetened.
  • Dijon Mustard: Be sure to use a Dijon that isn’t made with white wine or sugar. If you can’t find any or don’t have any on hand, you can omit the mustard from the recipe.
  • Coconut Aminos: This is mainly to give the dish a deeper color and an extra bit of flavor. It’s totally optional – feel free to skip it if needed.
  • Keep it Whole30: Replace the lingonberry jam with St. Dalfour Red Raspberry Fruit Spread. It balances the creaminess of the gravy and the umami of the meatballs while being sugar-free and Whole30-compatible.
  • Make it Dairy Free: Use refined coconut oil instead of ghee, as ghee is only lactose free.

Approximate Information for One Serving

Serving Size: 1 serving meatballs with sauceCalories: 612calProtein: 33gFat: 49gSaturated Fat: 27gTrans Fat: 0.5gCholesterol: 154mgSodium: 1190mgPotassium: 704mgTotal Carbs: 11gFiber: 2gSugar: 1gNet Carbs: 9gVitamin A: 166IUVitamin C: 6mgCalcium: 62mgIron: 4mg
Nutrition Disclaimers
Number of total servings shown is approximate. Actual number of servings will depend on your preferred portion sizes.
Nutritional values shown are general guidelines and reflect information for 1 serving using the ingredients listed, not including any optional ingredients. Actual macros may vary slightly depending on specific brands and types of ingredients used.
To determine the weight of one serving, prepare the recipe as instructed. Weigh the finished recipe, then divide the weight of the finished recipe (not including the weight of the container the food is in) by the desired number of servings. Result will be the weight of one serving.

Did You Make This Recipe?

Tag @40aprons on Instagram and be sure to leave a review on the blog post!

Leave A Review

Your email address will not be published. Required fields are marked *

Recipe Rating




This site uses Akismet to reduce spam. Learn how your comment data is processed.

62 Comments

  1. This was delicious! I couldn’t believe it was whole30. The sauce is so creamy and tasty. But I really wish there would’ve been some indication/approximation of how big to make the meatballs and how long to cook them. I browned them on all sides and found they weren’t anywhere close to being fully cooked, so I had to throw them in the oven after while I mashed my potatoes and made the sauce.4 stars

    1. We are so sorry you had that experience, Louise. We do hope you will try this recipe again. Try using a scoop that equates to a tablespoon 🙂5 stars

  2. To avoid standing over the stove and the added oil I broiled the meatballs on high for 5 minutes to get some color and set them- then made sauce in a big skillet and put meatballs in to finish cooking. Came out great. Only change was I put in quite a bit of allspice- maybe a teaspoon which is a lot more than a “pinch” Good recipe!

  3. To clarify, it will take 20 minutes just for cooking, but it’s a lot easier, faster, and less messy than standing there batch frying meatballs. You should be able to get all the meatballs in the same pan and just have 1 batch.

  4. Is this 660 calories for the entire recipe, or per serving? Per serving would be a lot. My question is how many meatballs is a serving in one sitting? Like if I want some for lunch I don’t want to eat a ton of calories.

  5. Do you think I could make the meatballs ahead of time and freeze them, then reheat in crockpot with sauce? I’d like to take these camping for a easy meal.

  6. These are delicious! Great recipe, easy to follow. I didn’t have allspice so I used a pinch of ground clove —still felt like a trip to ikea for our tastebuds. Yes the cooking time for me was much much longer but I can try a hotter pan. Will definitely be making again. Great job, thanks for the recipe!5 stars

Where To Next?