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.
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.
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 🙂
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!
I’m so glad you enjoyed it!
This was sooooo good! I actually used 1/2 elk and 1/2 pork. I served it over cauliflower rice-YUM!
Oh, wow, that sounds delicious!!
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.
Would it be possible to sub veggie broth for beef broth to make these vegetarian?
Sure, give it a shot!!
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.
It’s per serving, but 660 calories isn’t necessarily inappropriate for a meal, especially if it’s your big one of the day!
These are delicious!! As someone who has a dairy allergy, I thank you! Making them again this week! 🙂
Could I substitute the egg for something? My son is allergic to eggs.
You can probably omit the egg here actually! Or try a flax egg: mix together 1 tbsp ground flaxseed with 3 tbsp warm water and let sit about 10 minutes.
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.
Yes!
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!