Soups & Stews
This bakso soup recipe delivers the ultimate comfort in every steaming bowl—crispy meatballs that shatter with the first bite, floating in a fragrant broth infused with lemongrass and spices.
The secret lies in the meatballs: a delicate balance of ground meat, tapioca starch for that signature snap, and a pinch of baking soda to ensure they stay irresistibly light.
I perfected this version after years of testing, and it’s now my go-to for cozy family dinners or when I crave the nostalgic flavors of Indonesia.
The broth is where the magic happens—a slow-simmered blend of chicken stock, coconut milk, and aromatic spices that create layers of warmth and depth. What sets this recipe apart is the technique: frying the meatballs until golden before adding them to the broth ensures they stay crispy, not soggy.
The result is a harmonious contrast of textures and flavors that makes every spoonful feel like a hug in a bowl.
What you’ll end up with is a bowl of bakso soup that’s rich, aromatic, and perfectly balanced—crispy meatballs that burst with every bite, tender vegetables, and a broth so flavorful it tastes like it’s been simmering for hours.
The addition of fried shallots and lime wedges adds a final touch of crunch and brightness, elevating it from a simple meal to a restaurant-worthy experience.
This recipe is versatile enough to adapt—use fish-based meatballs for a lighter version or swap in tofu for a vegetarian twist—but the core technique remains the same.
Whether you're making it for a crowd or a quiet night in, the crispy meatballs and fragrant broth will have everyone asking for seconds. Let’s get cooking!
Ingredients for bakso soup
Crispy meatballs meet fragrant broth—here's what makes this bakso soup unforgettable.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Chicken 🍗 | 1 ½ lb | Boneless, skinless, 93% lean |
| Tapioca Starch 🌾 | ½ cup | For crispy texture |
| Eggs 🥚 | 2 whole | Large, room temperature |
| Green Onions 🧅 | ¼ cup | Finely chopped, white and green parts |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Coconut Milk 🥥 | 1 can | 13.5 oz can, full-fat |
| Lemongrass 🌿 | 3 stems | White parts only, bruised |
| Galangal 🌿 | 1 inch | Fresh, peeled, thinly sliced |
| Chicken Stock 💧 | 4 cups | Homemade or high-quality store-bought |
| Kaffir Lime Leaves 🍋 | 4 whole | Bruised, tied in knot |
| Fish Sauce 🍶 | 1 tbsp | Red Boat brand preferred |
| Sugar 🍚 | 1 tbsp | White granulated |
| Baking Soda 🧂 | ¼ tsp | For light texture |
| Vegetable Oil 🫒 | 2 tbsp | For frying meatballs |
| Shallots 🧅 | 4 whole | Thinly sliced, fried |
| Lime Wedges 🍋 | 2 whole | For serving |
The ground chicken is key—93% lean gives the best texture, but pork or beef works too if you prefer. Tapioca starch is non-negotiable for that signature snap, and Bob's Red Mill is my go-to brand. For the broth, homemade chicken stock makes all the difference, but Swanson or Pacific Foods work in a pinch. Look for fresh galangal and lemongrass at Asian markets—they'll have more variety than regular grocery stores. The kaffir lime leaves? Trader Joe's sells them frozen, which is perfect for this recipe.
No tapioca starch? Cornstarch at double the amount works, but texture won't be identical. Swap fish sauce for soy sauce plus a pinch of sugar if needed. For a vegetarian version, use tofu and mushroom stock instead of chicken. The baking soda is crucial—it's what makes the meatballs light, so don't skip it. If you can't find fresh galangal, ginger at half the amount gives a similar zing. The shallots should be fried until crispy—don't overcrowd the pan or they'll steam instead of fry.
Meatballs stay crispy for 2 days in the fridge if stored in broth. The full soup keeps for 4 days refrigerated or 3 months frozen. I double the recipe and freeze portions—just thaw overnight in the fridge before reheating. For serving, keep those lime wedges and fried shallots separate until ready to eat. The shallots get soggy if mixed in too early, and the lime adds that final bright pop of flavor.
Why You'll Love This Recipe
- No-Knead Magic: I swear by this trick—just mix the ground chicken, tapioca starch, and egg, then shape those dumplings in minutes. No rolling, no fuss, and they still hold together like pros.
- Garlic-Green Power: That minced garlic and chopped green onions? They’re the secret weapon. The broth gets this deep, savory punch while the dumplings stay tender—like a warm hug in a bowl.
- Leftover Hero: This soup actually tastes better the next day. I’ll make a big batch on Sunday, and by Wednesday, it’s still the star—just reheat the broth and toss in fresh dumplings.
- Budget Comfort: Ground chicken and pantry staples stretch to feed four for under $10. Honestly, it’s my go-to when I need something hearty but won’t break the bank. (Yes, even on a Tuesday night.)
Step-by-step instructions for bakso soup with crispy meatballs
Master the art of bakso with these precise techniques for meatballs that stay crispy even after simmering.
Prepare the Meatball Mixture
In a large mixing bowl, combine the 1.5 lb ground chicken, 0.5 cup tapioca starch, 2 whole eggs, 1 tbsp fish sauce, and 0.25 tsp baking soda. Using your hands, gently mix until all ingredients are fully incorporated but avoid overworking the mixture—this keeps the meatballs tender yet firm.
Here's the thing—tapioca starch is your secret weapon for that signature bakso texture. It creates a light, airy interior while forming a crispy exterior when fried. Add the 0.25 cup finely chopped green onions and 4 cloves minced garlic last, mixing just until combined. The mixture should hold together when pressed but not be sticky.
Form and Fry the Meatballs
Heat 2 tbsp vegetable oil in a large skillet over medium-high heat until shimmering but not smoking. Working in batches, carefully drop heaping tablespoon-sized portions of the meatball mixture into the hot oil—don't overcrowd the pan or they'll steam instead of fry.
Fry for 3-4 minutes per batch until the meatballs are golden brown on all sides and the exterior develops a crispy shell. You'll know they're ready when they float to the surface and maintain their shape when gently prodded with a chopstick. Transfer to a paper towel-lined plate to drain while you prepare the shallots.
Fry the Shallots for Flavor
In the same skillet (no need to clean it—the fond adds flavor), add the 4 whole thinly sliced shallots and fry over medium heat for 2-3 minutes until golden brown and fragrant. Remove with a slotted spoon and set aside on a separate plate—these crispy shallots will add depth to your broth.
Watch the heat carefully—shallots burn quickly. If they start to darken too much, reduce the heat slightly and stir constantly. The shallots should be crispy enough to hold their shape but not charred. This step builds the aromatic foundation for your soup.
Simmer the Aromatic Broth
In a large pot, combine the 4 cups chicken stock, 1 can coconut milk, 3 stems bruised lemongrass, 1 inch sliced galangal, 4 whole kaffir lime leaves tied in a knot, and 1 tbsp sugar. Bring to a gentle simmer over medium heat for 10 minutes to infuse the flavors.
Here's where the magic happens—the coconut milk and aromatic ingredients meld together. You'll notice the broth develop a fragrant, slightly sweet aroma with subtle citrus notes from the kaffir lime. Keep the heat low to prevent boiling, which can make the broth cloudy and break down the delicate flavors.
Finish the Soup with Crispy Elements
Return the fried meatballs and shallots to the pot and simmer gently for 5-7 minutes—just enough to heat through without steaming the crispy exterior. The broth should be warm but not boiling, which preserves that perfect texture contrast between tender meatballs and crispy exterior.
Taste and adjust seasoning with additional fish sauce if needed. Ladle into bowls and serve immediately with the 2 whole lime wedges on the side. Each spoonful should deliver that satisfying crunch from the meatballs and shallots, balanced by the creamy, aromatic broth. The lime wedge adds a bright finish that cuts through the richness.
Pro Tips For Making Bakso Soup
- CHILL THE DOUGH: I learned this the hard way—after mixing ground chicken, tapioca starch, and egg, resist the urge to shape the meatballs immediately. Let the dough sit in the fridge for 15–20 minutes. The starch needs time to hydrate properly, or your bakso will crumble when boiling, and no one wants mushy meatballs in soup.
- GRATE THE GARLIC: Skip the minced garlic—it burns too fast. Use a microplane or fine grater for your cloves, then sauté them in oil until just fragrant (about 30 seconds). Overcooking turns garlic bitter, and you’ll end up masking the bright, fresh flavor that balances the richness of the soup.
- BOIL GENTLY: High heat ruins bakso. After shaping, drop them into simmering—not boiling—water. A gentle roll keeps them intact, and the starch binds without bursting. If the water bubbles violently, lower the heat immediately; you’re cooking them too fast, and they’ll turn dense instead of light.
- USE COLD WATER: I was skeptical until I tried it: rinse the shaped bakso in cold water before boiling. This tightens the surface, preventing starch from dissolving too quickly and making them gummy. It’s a small step, but it guarantees your meatballs stay firm and delicious—not a sad, gluey mess.
Health benefits of bakso soup
Protein Powerhouse
This bakso soup delivers a lean protein punch with each serving containing about 25 grams of protein from the ground chicken meatballs. That's roughly 50% of your daily recommended intake in one bowl, making it an excellent choice for muscle repair and satiety.
The tapioca starch doesn't just create texture—it also provides a small but meaningful 10% of your daily fiber needs per serving. 💪
Balanced Nutrition
The coconut milk adds healthy fats while keeping the dish lighter than you'd expect. A single serving provides about 12 grams of fat, with 80% being heart-healthy saturated fats from the coconut.
The broth's chicken stock contributes 6 grams of protein per cup, while the fish sauce adds a subtle umami depth without significant calories. This balance makes bakso soup surprisingly nutritious for a comfort food.
Digestive Benefits
The galangal and lemongrass in the broth contain gingerol compounds that aid digestion and reduce bloating. Galangal, in particular, has been shown to stimulate digestive enzymes, helping your body break down proteins more efficiently.
The kaffir lime leaves add a citrusy note while contributing vitamin C and antioxidants that support your immune system. 🌿
Low-Calorie Comfort
At just 350-400 calories per serving, this bakso soup satisfies cravings without the guilt. The crispy meatballs provide satisfying texture with minimal calories—the tapioca starch creates that satisfying crunch while keeping the overall calorie count in check.
The broth's coconut milk adds creaminess without the heaviness of traditional cream-based soups. It's the perfect comfort food for those watching their waistlines.
Vitamin Boost
Each bowl packs a vitamin punch with significant amounts of vitamin B12 (from chicken), vitamin A (from coconut milk), and folate (from green onions). The fish sauce contributes B vitamins essential for energy metabolism.
Even the garnishes add nutritional value—the fried shallots provide vitamin C and antioxidants, while lime wedges offer a vitamin C boost and help with iron absorption from the meatballs.
Nutrition facts
Frequently asked questions
Why do the meatballs need to be fried before adding to the broth?
Frying the meatballs first creates that signature crispy exterior while keeping the inside tender. This technique prevents them from turning soggy when simmered in the broth later. The golden brown color also adds depth of flavor that soaking wouldn't achieve.
Can I make bakso soup with ground beef instead of chicken?
Ground beef works beautifully and adds richer flavor. Use the same amount of meat but reduce the tapioca starch to 0.375 cup since beef holds together better. For extra tenderness, add 1 tbsp cornstarch to the mixture. The cooking time remains the same—just 3-4 minutes per batch.
What's the secret to keeping the broth clear and flavorful?
Simmer the broth gently (low heat) and never let it boil vigorously. Skim any foam that rises, and remove the aromatic ingredients (lemongrass, galangal) after 10 minutes of simmering. For extra clarity, strain through a fine-mesh sieve before serving. The coconut milk helps naturally clarify the broth while adding creaminess.
How do I make this vegetarian?
Replace the ground chicken with 1.5 lb firm tofu (pressed and crumbled) plus 1 cup finely chopped mushrooms. Use 1 tbsp soy sauce instead of fish sauce and vegetable stock instead of chicken stock. The tapioca starch ratio stays the same. For umami depth, add 1 tsp miso paste to the broth. The texture will be slightly different but still delicious!
Can I prepare the meatballs ahead of time?
Yes! Fry the meatballs up to 2 days ahead and store them in the broth (kept refrigerated). Reheat gently in the broth before serving. For longer storage, freeze the cooked meatballs (without broth) for up to 3 months. When ready to use, simply reheat in the broth for 3-5 minutes to restore crispiness.
