A Note of Solidarity
Today, Ukraine faces an unprovoked and brutal invasion by Russia, with the Ukrainian people enduring an incredibly harsh war. As we celebrate and preserve Ukrainian culinary heritage through recipes like this, it is important to acknowledge the courage and resilience of the Ukrainian people during these difficult times. My heart stands with all Ukrainians. I wish Ukraine and its people victory and the swiftest possible peace.

Traditional Ukrainian Kapusniak Recipe: Sauerkraut Soup with Pork and Millet

A deep ceramic bowl of traditional Ukrainian kapusniak — a thick, cloudy amber-golden sauerkraut soup, not red borscht, not a clear broth — filled with pale shredded sauerkraut strands, soft potato chunks, and a bone-in pork rib piece with meat falling away from the bone, crowned with a generous dollop of white sour cream melting at its edges and a generous shower of fresh chopped dill, steam rising from the surface.

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


Quick Overview

Extreme close-up of kapusniak's surface texture: tangled pale sauerkraut strands and yielding potato cubes suspended in a slightly cloudy amber broth, tiny droplets of golden pork fat shimmering on the liquid surface, a fragment of dark pork rib meat visible beneath, and a fringe of vivid green dill fronds resting at the edge of the sour cream dollop.
  1. Simmer pork ribs into a rich broth with onion, bay leaf, and peppercorns
  2. Rinse the millet and sauté the onion and carrot
  3. Add potatoes to the broth and cook until nearly tender
  4. Stir in the sautéed vegetables, millet, and sauerkraut
  5. Simmer until the millet is soft and the flavors come together
  6. 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
Flat-lay arrangement of raw kapusniak ingredients: a rack of meaty bone-in pork ribs glistening with fresh moisture, a halved yellow onion showing its concentric rings cut-side up, a small cluster of dried bay leaves, a scattering of whole black peppercorns, and a large measuring jug of clear cold water, all grouped together as distinct individual components.

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

  1. 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.
  2. 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.
  3. Rinse the millet. Wash the millet under running water until the water runs clear, then set it aside.
  4. Sauté the vegetables. Heat the oil in a skillet and cook the diced onion and grated carrot until softened, about 5 minutes.
  5. Cook the potatoes. Return the strained broth to a simmer, add the diced potatoes, and cook for 10 minutes.
  6. 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.
  7. 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.
  8. 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)

A wide rustic bowl of finished kapusniak served as a full portion — the murky pale-gold sauerkraut broth dense with softened cabbage strands and tender potato pieces, a large pork rib bone protruding from the surface with shredded meat clinging to it, a smooth white dome of sour cream at the center gradually dissolving into the hot soup, and a scattering of bright green fresh dill across the top.
  • 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 Recipe Card

Traditional Ukrainian Kapusniak

Prep 20 minutesCook 1 hour 30 minutesServes 6

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

  1. 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.
  2. 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.
  3. Rinse the millet. Wash the millet under running water until the water runs clear, then set it aside.
  4. Sauté the vegetables. Heat the oil in a skillet and cook the diced onion and grated carrot until softened, about 5 minutes.
  5. Cook the potatoes. Return the strained broth to a simmer, add the diced potatoes, and cook for 10 minutes.
  6. 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.
  7. 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.
  8. 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.

  1. “Sauerkraut.” Wikipedia. en.wikipedia.org/wiki/Sauerkraut — history of sauerkraut production in Europe, nutritional data, and health research.
  2. “Cabbage soup.” Wikipedia. en.wikipedia.org/wiki/Cabbage_soup — naming and regional variations of sauerkraut soup across Slavic cuisines.
  3. “Cossack cuisine.” Wikipedia. en.wikipedia.org/wiki/Cossack_cuisine — Zaporizhian Cossack diet, grain rations, and traditional dishes.
  4. “Kapusnyak – Ukrainian Sauerkraut Soup.” Kitchen Epiphanies. kitchenepiphanies.com/kapusnyak-ukrainian-sauerkraut-soup — Cossack history, regional variation, and technique.
  5. “Ukrainian sauerkraut soup.” Ukrainian Recipes. ukrainian-recipes.com/sour-cabbage-soup-ukrainian-kapusniak — etymology, seasonal variations, and Lenten preparation.
  6. “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.
  7. “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.

Get our free cookbook: 5 Heritage Recipes

We don’t spam! Read more in our privacy policy


Leave a Reply

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