White Bean Soup (Pasulj): A Cheap, Filling Balkan Staple

Pasulj is Serbian white bean soup - slow-cooked with smoked pork, onion, and paprika until the beans are creamy and the broth is deep and smoky. Under $2 per serving, over 20g protein per bowl, and one of the most batch-cook-friendly meals in the Balkan repertoire.

White Bean Soup (Pasulj): A Cheap, Filling Balkan Staple

Pasulj is Serbia's national dish in all but official name. It appears on every restaurant menu, it's what people make when they want something comforting and substantial, and it's what Balkan grandmothers make on cold Sundays in industrial quantities. The simplicity is the point: white beans, smoked pork, onion, paprika, and time.

For home cooks, pasulj is one of the best reasons to explore Balkan cuisine. The ingredients are cheap and universally available, the technique is forgiving, and a single batch feeds a family for two days.

Ingredients (serves 6-8)

  • 500g dried white beans (cannellini or great northern)
  • 300g smoked pork ribs or smoked pork neck
  • 1 large onion, diced
  • 3 cloves garlic
  • 2 tbsp sunflower oil
  • 2 tbsp sweet paprika
  • 1 tsp hot paprika (optional)
  • 1 bay leaf
  • Salt and black pepper
  • 2.5 litres water

For the zaprΕΎak (flavour base added at the end):

  • 3 tbsp sunflower oil
  • 1 medium onion, diced very fine
  • 1 tbsp flour
  • 1 tbsp sweet paprika

Method

  1. Soak beans overnight in cold water, or use the quick-soak method: boil for 2 minutes, turn off heat, soak for 1 hour.
  2. Drain beans, cover with fresh water (2.5 litres), add smoked meat, bay leaf, and bring to a boil. Skim the foam that rises for the first few minutes.
  3. Reduce to a low simmer. Add the diced onion and garlic. Cook for 1.5-2 hours until beans are fully tender but not falling apart.
  4. Remove smoked meat, shred the meat off the bone, and return meat to the pot.
  5. For the zaprΕΎak: heat oil in a small pan, add finely diced onion and cook until golden-brown (about 12-15 minutes - don't rush this). Add flour, stir for 1 minute, then add paprika and immediately add 2-3 ladles of hot broth from the soup pot. Whisk until smooth and pour back into the soup.
  6. Simmer for 15 more minutes. Season with salt and pepper. The broth should be somewhat thickened and deep orange-red from the paprika.

The ZaprΕΎak

The zaprΕΎak is what makes Serbian pasulj different from ordinary bean soup. It's a small quantity of deeply caramelised onion with paprika and flour, fried until the flour toasts slightly, then emulsified into the broth. It adds a nutty, smoky depth that no amount of additional seasoning can replicate. Do not skip it.

Macro Breakdown

Per bowl (approx. 350ml broth plus beans and meat):

  • Calories: ~340 kcal
  • Protein: ~22g
  • Carbohydrates: ~38g
  • Fat: ~8g

Pasulj is one of the better protein-per-calorie options in Balkan cooking. White beans deliver plant protein alongside the meat, and the fat content is moderate. Cost estimate: approximately $1.80-2.20 per serving at standard supermarket prices for dried beans and smoked pork.

Batch Cooking and Storage

Pasulj improves significantly the next day - the beans absorb more broth flavour and the texture becomes creamier. It keeps in the fridge for 5 days and freezes very well for up to 3 months. Reheat with a splash of water as it thickens on cooling.

For a weekly batch-cooking schedule built around pasulj alongside other Balkan dishes, see the Balkan budget meal plan. For a broader introduction to the cuisine, the Balkans table guide covers all the key dishes.

Serving

Pasulj is served in a deep bowl, ideally with warm crusty bread. A spoonful of sour cream or kajmak stirred in at the table adds richness. A side of pickled chillies or turšija (pickled mixed vegetables) cuts through the heaviness and is worth having if you can find them.