Traditional Ukrainian Kapusniak Recipe: Sauerkraut Soup with Pork and Millet

Prep time: 20 minutes | Cook time: 1 hour 30 minutes | Serves: 6 | Difficulty: Easy
Quick Overview

- Simmer pork ribs into a rich broth with onion, bay leaf, and peppercorns
- Rinse the millet and sauté the onion and carrot
- Add potatoes to the broth and cook until nearly tender
- Stir in the sautéed vegetables, millet, and sauerkraut
- Simmer until the millet is soft and the flavors come together
- Adjust the sourness with reserved sauerkraut juice, then finish with garlic, dill, and parsley
What Kapusniak Is
Kapusniak (капусняк) is Ukraine’s everyday sauerkraut soup, built on fermented cabbage, pork, potatoes, and a handful of grain. The name comes directly from “кисла капуста” (kysla kapusta), meaning sour cabbage, the ingredient that gives the soup its characteristic tang.5 After borscht, it is widely considered the second most popular soup on the Ukrainian table.4,5
Grain is where the Ukrainian version most often distinguishes itself from its Polish and Slovak cousins. Many kapusniak recipes stir in a handful of millet, rice, buckwheat, or pearl barley for body, though a version built on nothing but broth is equally traditional.4 Poland’s kapuśniak, by comparison, is usually made without grain and is sometimes thickened with flour and butter instead.2
No single recipe governs kapusniak — it changes by cook, region, and season.4 A meaty pot built on pork or smoked pork is the everyday version, while a meatless version simmered with dried mushrooms carries the soup through Lent and other fasting periods.4,5
History and Cultural Roots
Sauerkraut itself predates the popular legend crediting the Mongol Golden Horde with carrying fermented cabbage into Europe from Asia. Food historians Glenn Randall Mack and Asele Surina found no evidence for that route, tracing European sauerkraut production back to the early Western Roman Empire instead.1 The Slavic peoples of Europe most likely arrived at the technique on their own.1
That independence matters for how kapusniak took shape. Long before refrigeration, salting and fermenting cabbage was one of the few reliable ways a household could stretch a vegetable through a Central and Eastern European winter, and turning that preserved cabbage into a hot pot with whatever meat or grain was on hand followed naturally.
The Cossack Way
The version of kapusniak most Ukrainian households still recognize traces to the Zaporizhian Cossacks, a self-governing military community that controlled the lands below the Dnieper rapids from the 15th to the 18th centuries, resisting the Polish–Lithuanian Commonwealth, the Russian Empire, and the Crimean Khanate in turn.4 When the Russian Empire ordered the destruction of the Zaporozhian Sich in 1775, the Cossacks scattered into surrounding villages and carried their cooking habits with them.4
Grain was central to that cooking. Ration records for one Zaporizhian regiment in the early 1720s list around 50 kilograms of millet issued annually to a single artillery serviceman, alongside rye, wheat, and buckwheat flour.3 Kapusniak recipes still echo that legacy: many versions stir in a handful of millet, though rice, buckwheat, pearl barley, or wheat can stand in just as well.4
Ukrainian folklore adds a warmer footnote. According to local legend, village women learned the Cossack method of cooking kapusniak, known as “po Kozatskyi” — the Cossack way — as a means of drawing the newly settled bachelors into their households. That is part of why the soup still carries that name in some parts of Ukraine today.4
Traditional Kapusniak Recipe (Authentic Method)
Recipe developed independently; links for further reading appear at the end of this article.
Ingredients
For the broth:
- 700 g (1.5 lb) pork ribs, bone-in
- 2.5 liters (10 cups) water
- 1 medium onion, halved
- 2 bay leaves
- 8 whole black peppercorns

For the soup:
- 2 tbsp (30 ml) vegetable oil
- 1 medium onion, finely diced
- 1 large carrot, grated
- 450 g (1 lb) potatoes, peeled and diced
- 60 g (⅓ cup) millet
- 500 g (about 3½ cups, drained) sauerkraut, juice reserved
- 2 garlic cloves, minced
- Salt and pepper, to taste
- Fresh dill and parsley, chopped, for garnish
Method
- Make the broth. Place the pork ribs, water, halved onion, bay leaves, and peppercorns in a large pot. Bring to a boil, skim off the foam, then reduce to a simmer and cook for 50–60 minutes, until the meat is tender.
- Prepare the meat. Lift the ribs out and let them cool slightly, then remove the meat from the bones and cut it into bite-size pieces. Strain the broth and discard the onion, bay leaves, and peppercorns.
- Rinse the millet. Wash the millet under running water until the water runs clear, then set it aside.
- Sauté the vegetables. Heat the oil in a skillet and cook the diced onion and grated carrot until softened, about 5 minutes.
- Cook the potatoes. Return the strained broth to a simmer, add the diced potatoes, and cook for 10 minutes.
- Combine. Stir the sautéed vegetables, millet, and sauerkraut into the pot. Simmer for 20–25 minutes, until the millet is tender and the potatoes are fully cooked.
- Season. Return the meat to the pot and heat through. Taste and adjust the sourness with reserved sauerkraut juice, then season with salt and pepper.
- Finish. Stir in the garlic during the last minute of cooking. Ladle into bowls and garnish with fresh dill and parsley.
Kitchen Tips
Ukrainian recipes typically call for rinsing the millet thoroughly before it goes into the pot, sometimes scalding it as well, until the water runs clear.5 Skipping this step is the most common reason a home cook ends up with a duller, slightly dusty-tasting soup.
Sauerkraut varies widely in sourness from batch to batch, so its reserved juice should be added gradually near the end of cooking rather than all at once — a splash at a time, tasting as it goes in.
A cook who prefers a lighter, clearer soup can leave out the millet entirely and let the broth stand on its own, which is just as traditional as the grain-thickened version.4 Others thicken the pot with a spoonful of flour worked into softened butter and whisked in near the end.4
Kapusniak rewards patience. The sourness mellows and the millet continues absorbing broth overnight, so a pot made a day ahead is often the better bowl.
For a meatless version, swap the pork broth for a mushroom broth made from dried wild mushrooms rehydrated in cold water, adding the strained soaking liquid along with the mushrooms — a preparation that has carried the soup through Lent for generations.5
Nutritional Information
Per Serving (about 1½ cups, 1 of 6 servings)

- Calories: approximately 335–415 kcal
- Protein: approximately 17–20g
- Total fat: approximately 19–23g
- Carbohydrates: approximately 26–32g
- Dietary fiber: approximately 5–6g
- Sodium: approximately 555–680mg (varies significantly with the sauerkraut brand and added salt)
Nutritional values are estimates calculated from the specific ingredient quantities in this recipe, using standard reference values. They will vary depending on the cut of pork, the sauerkraut brand, and how much added salt is used.
Sauerkraut is notably low in calories while supplying meaningful vitamin C and vitamin K, and fermentation increases the bioavailability of its nutrients compared with raw cabbage.1 Millet contributes fiber, magnesium, and prebiotic compounds that support digestion, and it is naturally gluten-free.7 Fermented foods more broadly have drawn growing research interest for their role in gut health, since the live cultures they carry can build a more diverse gut microbiome when eaten regularly.6
Storage and Reheating
Kapusniak keeps well in the refrigerator for up to 4 days in an airtight container, and the flavor typically deepens by the second day as the millet and sauerkraut continue to soften into the broth.
The soup freezes for up to 3 months, though the potatoes can turn slightly grainy after thawing. Freezing the soup without potatoes and adding freshly cooked ones at reheating time preserves the best texture.
Reheat gently on the stovetop over medium-low heat, stirring occasionally, until hot throughout. A hard boil is not necessary and can break the potatoes apart.
Traditional Ukrainian Kapusniak

Ingredients
For the broth
- 700 g (1.5 lb) pork ribs, bone-in
- 2.5 liters (10 cups) water
- 1 medium onion, halved
- 2 bay leaves
- 8 whole black peppercorns
For the soup
- 2 tbsp (30 ml) vegetable oil
- 1 medium onion, finely diced
- 1 large carrot, grated
- 450 g (1 lb) potatoes, peeled and diced
- 60 g (⅓ cup) millet
- 500 g (about 3½ cups, drained) sauerkraut, juice reserved
- 2 garlic cloves, minced
- Salt and pepper, to taste
- Fresh dill and parsley, chopped, for garnish
Instructions
- Make the broth. Place the pork ribs, water, halved onion, bay leaves, and peppercorns in a large pot. Bring to a boil, skim off the foam, then reduce to a simmer and cook for 50–60 minutes, until the meat is tender.
- Prepare the meat. Lift the ribs out and let them cool slightly, then remove the meat from the bones and cut it into bite-size pieces. Strain the broth and discard the onion, bay leaves, and peppercorns.
- Rinse the millet. Wash the millet under running water until the water runs clear, then set it aside.
- Sauté the vegetables. Heat the oil in a skillet and cook the diced onion and grated carrot until softened, about 5 minutes.
- Cook the potatoes. Return the strained broth to a simmer, add the diced potatoes, and cook for 10 minutes.
- Combine. Stir the sautéed vegetables, millet, and sauerkraut into the pot. Simmer for 20–25 minutes, until the millet is tender and the potatoes are fully cooked.
- Season. Return the meat to the pot and heat through. Taste and adjust the sourness with reserved sauerkraut juice, then season with salt and pepper.
- Finish. Stir in the garlic during the last minute of cooking. Ladle into bowls and garnish with fresh dill and parsley.
Frequently Asked Questions
What is the difference between Ukrainian kapusniak and Polish kapuśniak?
Both soups share sauerkraut, pork, and potatoes as a base, but the Ukrainian version more often includes millet or another grain for body.4 The Polish version leans more on a flour-and-butter thickener and typically skips the grain.2
Can kapusniak be made without meat?
Yes, and it is entirely traditional rather than a modern substitution. A mushroom broth made from dried wild mushrooms carries the soup through Lent and other fasting periods, with millet still adding heartiness.5
Can rice or buckwheat replace the millet?
Yes. Kapusniak has long been made with rice, buckwheat, pearl barley, or wheat in place of millet, and a version made with no grain at all, relying on broth alone, is equally traditional.4
Can fresh cabbage replace sauerkraut?
Yes. In spring and summer, when a household’s sauerkraut supply ran low, kapusniak was traditionally made with fresh cabbage and a splash of fermented bread kvass to restore the characteristic sour edge.5
Is kapusniak the same as Ukrainian borscht?
No. Borscht is built on beets and is the more widely known Ukrainian soup, while kapusniak gets its tang from sauerkraut and ranks as the second most popular soup in the country.4,5
What should kapusniak be served with?
Dark rye bread is the standard accompaniment, and a spoonful of sour cream on top is common in many households, though it is optional.
Looking for a Lighter Version?
Kapusniak already leans toward the healthy end of Ukrainian cooking thanks to its sauerkraut base and millet, but the traditional pork rib broth adds a fair amount of saturated fat and sodium. The Healthy Kapusniak recipe on this site explores a leaner version built on a lighter protein and reduced added salt, with the sauerkraut and millet fully intact.
Read the Healthy Kapusniak recipe
Further Reading & Sources
The following sources were consulted in researching the history, technique, and regional context of traditional Ukrainian kapusniak. Heritage Healthy Kitchen’s recipe was developed independently; these links are provided for readers who want to explore further.
- “Sauerkraut.” Wikipedia. en.wikipedia.org/wiki/Sauerkraut — history of sauerkraut production in Europe, nutritional data, and health research.
- “Cabbage soup.” Wikipedia. en.wikipedia.org/wiki/Cabbage_soup — naming and regional variations of sauerkraut soup across Slavic cuisines.
- “Cossack cuisine.” Wikipedia. en.wikipedia.org/wiki/Cossack_cuisine — Zaporizhian Cossack diet, grain rations, and traditional dishes.
- “Kapusnyak – Ukrainian Sauerkraut Soup.” Kitchen Epiphanies. kitchenepiphanies.com/kapusnyak-ukrainian-sauerkraut-soup — Cossack history, regional variation, and technique.
- “Ukrainian sauerkraut soup.” Ukrainian Recipes. ukrainian-recipes.com/sour-cabbage-soup-ukrainian-kapusniak — etymology, seasonal variations, and Lenten preparation.
- “Fermented foods can add depth to your diet.” Harvard Health Publishing. health.harvard.edu/healthy-aging-and-longevity/fermented-foods-can-add-depth-to-your-diet — research on fermented foods, probiotics, and gut health.
- “Millet: Types, benefits, uses, and more.” Medical News Today, medically reviewed by Kim Chin, RD. medicalnewstoday.com/articles/what-is-millet — nutrient profile and health research on millet.
Disclaimer
The information in this article is provided for educational and informational purposes only. Heritage Healthy Kitchen makes no representations or warranties regarding the accuracy or completeness of any content on this site. Nutritional values are estimates only and will vary depending on the specific ingredients, brands, and measurements used. This content is not intended as dietary, medical, or professional nutritional advice. Always consult a qualified healthcare provider regarding any dietary needs or health conditions. Heritage Healthy Kitchen is not responsible for any outcomes resulting from the use of recipes or information published on this site.




Leave a Reply