Ćufte are the Balkan answer to Italian meatballs - tender, juicy, and simmered in a rich tomato sauce until the rice inside swells and the flavors meld. Found on dinner tables across Croatia, Bosnia, Serbia, and beyond, this is the kind of dish that disappears fast and makes perfect leftovers.

Prep time: 20 minutes. Cook time: 35 minutes. Servings: 4 (about 16 meatballs).

Key Takeaways

  • Rice is the secret. Unlike Italian meatballs that use breadcrumbs as filler, Croatian ćufte include uncooked rice that absorbs the tomato sauce as it simmers, creating a tender, flavorful center.
  • Vegeta makes it Balkan. This all-purpose seasoning blend of dried vegetables and salt is the backbone of Balkan cooking. It adds a depth that salt alone cannot match.
  • Fried then simmered. The meatballs are browned in oil first to build a golden crust, then simmered in tomato sauce so the exterior softens while the center stays juicy.
  • Smaller is better. Traditional ćufte are smaller than Italian meatballs - about walnut-sized. The compact shape keeps them tender and helps them absorb more sauce.
  • Mashed potatoes are mandatory. The creamy potatoes soak up the tomato sauce and make every bite count. Rice or crusty bread also work.

How to Make Croatian Ćufte

  1. Soak the breadcrumbs. Place the breadcrumbs in a small bowl and pour the milk over them. Let sit for 5 minutes until the bread absorbs the liquid. Squeeze out any excess moisture.

Ingredients

    • “1 lb (450 g) ground beef, 80/20”
  • “1/2 lb (225 g) ground pork”
  • “1 cup (100 g) plain breadcrumbs”
  • “1/4 cup (60 ml) whole milk”
  • “1 large egg”
  • “1 medium onion, finely minced”
  • “2 cloves garlic, minced”
  • “1/2 cup (100 g) uncooked white rice, rinsed”
  • “1 tsp Vegeta seasoning (or 1/2 tsp each salt, garlic powder, and onion powder)”
  • “1/2 tsp paprika”
  • “1/2 tsp black pepper”
  • “1/4 cup (35 g) all-purpose flour, for dusting”
  • “3 tbsp vegetable oil, for frying”
  • “1 tbsp tomato paste”
  • “1 can (14 oz / 400 g) crushed tomatoes”
  • “1 1/2 cups (360 ml) water”
  • “2 bay leaves”
  • “1 tsp paprika (sweet or smoked)”
  • “Salt and pepper to taste”
  • “Fresh parsley, chopped, for garnish”
  • “Mashed potatoes, for serving”
  1. Mix the meat. In a large bowl, combine ground beef, ground pork, soaked breadcrumbs, egg, minced onion, garlic, rinsed rice, Vegeta, 1/2 tsp paprika, and black pepper. Mix gently with your hands until just combined. Do not overwork the meat.
  2. Rest the mixture. Cover the bowl with plastic wrap and refrigerate for 30 minutes to 1 hour. This helps the ćufte hold together during simmering.
  3. Shape the ćufte. Lightly wet your hands and roll the mixture into 16 balls, about 1.5 inches across. Place the flour in a shallow dish. Dust each meatball lightly with flour, shaking off any excess.
  4. Brown the meatballs. Heat the vegetable oil in a large, deep skillet or Dutch oven over medium-high heat. Add the meatballs in batches, leaving space between each. Brown for 2 to 3 minutes per side until golden. Remove to a plate.
  5. Make the sauce. Reduce heat to medium. Add the tomato paste to the skillet and cook for 1 minute, stirring. Pour in the crushed tomatoes and water. Add the bay leaves, 1 tsp paprika, and a pinch of salt and pepper. Stir to combine and bring to a gentle simmer.
  6. Simmer the ćufte. Gently return the meatballs to the sauce, nestling them in. Cover and simmer for 25 to 30 minutes, turning once halfway, until the rice is tender and the meatballs are cooked through.
  7. Serve. Remove the bay leaves. Taste the sauce and adjust seasoning. Spoon the ćufte and sauce over mashed potatoes. Garnish with fresh parsley.

What Are Ćufte?

Ćufte (pronounced “CHUF-teh”) are traditional Balkan meatballs found across Croatia, Bosnia, Serbia, Montenegro, North Macedonia, and other former Yugoslav countries. The word has Persian origins, meaning “small meat cookies in a sauce” - and in some Bosnian restaurants, you will still hear them referred to as cookies.

Unlike Italian meatballs that rely on breadcrumbs and oregano, ćufte are defined by three characteristics:

  • Rice in the mixture. Uncooked white rice is mixed directly into the meat. As the ćufte simmer in tomato sauce, the rice absorbs the liquid and swells, creating a tender, almost pillowy center.
  • Beef-pork blend. Most traditional recipes use a mix of ground beef and ground pork. The pork fat keeps the meatballs juicy through the long simmer.
  • Vegeta seasoning. This dried vegetable and salt blend is the signature flavor of Balkan cooking. It adds a savory depth that plain salt cannot match.

In Croatia specifically, meatballs are called polpete in the Dalmatian coastal region (influenced by Italian polpette) and ćufte or faširani šnicli in the continental interior. The recipe below follows the continental style - beef and pork with rice, simmered in tomato sauce.

The Rice Difference

The biggest difference between ćufte and other meatball traditions is the rice. While Italian meatballs use breadcrumbs as a binder and filler, Croatian ćufte include uncooked white rice that serves a dual purpose:

  • Texture. As the rice cooks inside the meatball, it absorbs the surrounding tomato sauce and swells, creating a soft, almost dumpling-like center.
  • Flavor. The rice soaks up the sauce from the inside out, making every bite taste like the sauce itself.
  • Structure. The swollen rice helps the meatball hold its shape without becoming dense or tough.

This technique is similar to how Greek youvarlakia use rice in meatballs simmered in avgolemono sauce, or how Middle Eastern kofta sometimes include bulgur. The rice transforms the meatball from a simple protein into a self-saucing comfort food.

Vegeta: The Balkan Secret Weapon

Vegeta is an all-purpose seasoning blend created in Croatia in 1959 by Podravka. It contains:

  • Dried vegetables (carrot, parsnip, onion, celery, parsley)
  • Salt
  • Monosodium glutamate (in traditional versions)
  • Flavor enhancers

Vegeta is to Balkan cooking what soy sauce is to East Asian cuisine - a universal flavor builder used in soups, stews, rice, vegetables, and meatballs. If you cannot find Vegeta, substitute with:

  • 1/2 tsp salt + 1/2 tsp garlic powder + 1/2 tsp onion powder
  • Or use a small amount of chicken bouillon powder

The flavor will not be exactly the same, but it will get you close.

Serving Suggestions

Croatian ćufte are traditionally served with:

  • Mashed potatoes (pire krumpir) - the classic pairing; creamy potatoes soak up the tomato sauce
  • White rice - for a starch-on-starch comfort meal
  • Crusty bread - to mop up every last drop of sauce
  • Green salad - a simple side of mixed greens with vinegar and oil cuts the richness

For a weeknight dinner, serve the ćufte over mashed potatoes with a quick green salad. For a weekend meal, add roasted vegetables and crusty bread.

Tips for Perfect Ćufte

  • Use a beef-pork blend. Pure beef makes dense meatballs. The pork fat keeps them juicy through the long simmer.
  • Do not skip the rice. It is the defining ingredient. Uncooked rice absorbs the sauce and creates the signature tender center.
  • Rest the mixture. Chilling for 30 minutes to 1 hour firms up the fat and helps the ćufte hold together. If you are short on time, 15 minutes minimum.
  • Dust with flour lightly. The flour helps the meatballs brown and thickens the sauce slightly. Too much flour creates a gummy coating.
  • Brown in batches. Crowding the skillet drops the oil temperature and causes the meatballs to steam instead of brown.
  • Simmer gently. A rolling boil will break the meatballs apart. Keep the sauce at a gentle simmer with the lid slightly ajar.
  • Check the rice. The ćufte are done when the rice inside is tender. Cut one open to check - the rice should be fully cooked and soft.

Variations

  • All-beef version. Use 1.5 lb ground beef instead of the beef-pork blend. The meatballs will be slightly leaner.
  • Baked ćufte. Place floured meatballs on a parchment-lined sheet pan. Bake at 400F (200C) for 20 minutes, then transfer to the tomato sauce and simmer for 15 minutes.
  • Ćufte with vegetables. Add diced carrots, celery, or bell pepper to the sauce for a heartier stew.
  • White sauce version (ćufte u bijelom sosu). Instead of tomato sauce, simmer the browned meatballs in a creamy béchamel or sour cream sauce. Popular in Bosnia.
  • Spicy ćufte. Add 1/2 tsp red pepper flakes or a diced chili to the meat mixture for heat.

Storage and Reheating

  • Fridge: Store cooled ćufte in sauce for up to 4 days in an airtight container.
  • Freezer: Freeze ćufte (without sauce) on a sheet pan, then transfer to a freezer bag for up to 3 months. Freeze sauce separately.
  • Reheat: Warm gently in a covered skillet over medium-low heat. Add a splash of water if the sauce has thickened.

Frequently Asked Questions

What is the difference between ćufte and Italian meatballs?

Ćufte contain uncooked rice that absorbs the tomato sauce during simmering, creating a tender, self-saucing center. Italian meatballs use breadcrumbs and are typically served with pasta. Ćufte are also smaller and simmered in the sauce longer, while Italian meatballs are often baked or fried and added to sauce at the end.

Can I make ćufte with just beef?

Yes. Use 1.5 lb ground beef instead of the beef-pork blend. The meatballs will be slightly leaner and denser. Adding an extra tablespoon of oil to the meat mixture helps compensate for the reduced fat.

What is Vegeta and where do I find it?

Vegeta is a Croatian all-purpose seasoning blend of dried vegetables, salt, and flavor enhancers. It is available at most grocery stores in the spice aisle, or at Eastern European specialty stores. If you cannot find it, substitute with a mix of salt, garlic powder, and onion powder.

Can I bake ćufte instead of frying them?

Yes. Place floured meatballs on a parchment-lined sheet pan and bake at 400F (200C) for 20 minutes. Then transfer to the tomato sauce and simmer for 15 minutes. The crust will be less crispy than frying, but the flavor is still good.

Why are my ćufte falling apart in the sauce?

The most common causes are: not resting the mixture before shaping, overworking the meat (which makes it tough), or using too much liquid in the sauce. Make sure to rest the mixture for at least 15 minutes, mix gently, and keep the sauce at a gentle simmer rather than a rolling boil.

Can I use brown rice instead of white?

Brown rice takes much longer to cook than white rice. If you use brown rice, increase the simmer time to 45 to 50 minutes and add extra water as needed. The texture will be slightly chewier.

Sources