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!
🇸🇪 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!
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
- 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.
- 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!
- 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.
🥘 More Recipes You’ll Love
- Easy Paleo Gravy (Whole30)
- Whole30 Instant Pot Mashed Potatoes with Garlic and Herbs
- Baked Chicken Meatballs
- Oven-Roasted Diced Potatoes
- Whole30 Chicken Bacon Ranch Poppers
- Egg Roll in a Bowl Meal Prep (Whole30, Paleo, Keto)
- Whole30 Crockpot Mashed Potatoes
- 40 of the Best Paleo Recipes Around
- Air Fryer Chicken Legs
- Whole30 Chicken Lo Mein
- Perfectly Crispy Gluten Free Fried Chicken
- Whole30 Beef Stroganoff
Whole30 Swedish Meatballs with Gravy (Paleo, Gluten Free)
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
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!
Never Miss A Meal!
New Recipes Straight To Your Inbox
A curated selection of our most recent recipes, delivered straight to your inbox once a week.
Delicious and non whole 30 household members loved it too! Thank you!
S0 glad everyone loved it! Thanks for sharing, Amy!
Easy and so delicious. Thank you for sharing, I’ll definitely make this again
So glad you enjoyed it, Rene!
How many meatballs is 1 serving? Nutrition on the page says 660 calories but that seems really high for 1 serving.
The number of meatballs in 1 serving would depend on how small or large you make the meatballs, which is why we don’t specify a number. The nutrition information reflects 1 serving out of 6 servings total and it includes both the meatballs and the sauce. Once you’ve made the recipe, divide the total yield into 6 equally-sized portions. You may find that 1/6 of the total yield is too much for you and your ideal serving size could be closer to 1/8 of the total yield.
Second time making this. I used Costco chicken meatballs but the sauce is amazing with the coconut milk. 2 thumbs up !! Delicious 😁
Thanks for coming back to this recipe, Brigitte! So glad you love it! 😊
Love this dish. Everyone who has tried it has been very impressed. Slight flavor of coconut due to the milk, but I think it adds a bit of creative flavor. Thank you for a dairy-free and gluten-free version of this dish!
Thanks so much for the review, Bekah! So glad everyone enjoyed!
delish. used yellow mustard bc i had to dijon.. and used gluten free flour instead of almond and arrowroot bc it’s all I had on hand.
Yum! Glad you could make it your own and enjoy it. 🙂
Eureka! This was so forgiving and exquisite. I subbed almond flour and arrowroot for Bob’s gluten-free flour and also used all ground beef (I left out the ground pork for this). Wow, delicious. I also popped these in the oven and the leftover gravy is what I used in place of beef broth for the sauce. I also added a pinch of nutmeg to the meatballs. I’m noting these modifications in case it is helpful to anyone else with a slightly minimalist pantry or is absent with any of the original ingredients noted in the recipe. I put a very generous amount of allspice- maybe a half teaspoon to one teaspoon worth. I really like the texture and flavor of the coconut cream used in this recipe. Thanks for sharing this wonderful recipe.
We are thrilled to hear you had such a positive experience! Thanks for sharing. 🙂
These were so tasty and easy to make! I’ve never had meatballs with jam, but it was insanely delicious. I baked mine in the oven too and served with mashed caul. Definitely will be on repeat over here!
I love these meatballs! I’ve made them a bunch. My question is, do you think I could make them in the instant pot? Thanks!
Glad you like them! We would do this: set the IP to high sauté setting, add the oil, and working in batches, add each meatball and cook for 3-4 mins. Once finished cooking, set aside. In sauté mode, add ghee or coconut oil to skillet and heat through, then stir in arrowroot. Whisk vigorously until well combined, then slowly pour in beef broth. Whisk vigorously; mixture will gel at first but will thin as the remaining broth is whisked in.
When all broth is incorporated and smooth. Add in coconut cream, Dijon mustard, salt, lots of freshly cracked black pepper, and a dash coconut aminos for color, if desired. Simmer until thickened to desired texture, a couple minutes. Return meatballs to IP and coat with sauce.
This was one of my favorite recipes of yours! I made the meatballs 1 ounce and they were the perfect size! I had zero issues with the meatballs falling apart while cooking and I was so proud. We had these with smashed potatoes. My husband said to keep this one in the rotation.