Based on https://www.seriouseats.com/hot-borscht-beet-meat-soup-recipe, but made to be vegetarian + better.
8 cups veggie broth
1 large onion, cut into small dice (12 ounces; 340g)
1 medium carrot, cut into small dice (4 ounces; 115g)
1 celery rib, cut into small dice (2 ounces; 55g)
4 medium cloves garlic, minced
1 small celery root (celeriac), peeled and cut into small dice (9 ounces; 255g)
1 medium parsnip, peeled and cut into small dice (6 ounces; 170g)
2 pounds red beets (900g; about 5 medium beets), peeled diced
½ (12-ounce; 340g) head green or white cabbage, quartered, cored, and shredded
1 (28-ounce; 784g) can roasted tomatoes
4 medium red potatoes (1 pound; 450g), diced
1 teaspoon (5g) ground fennel seed
1 tablespoon (15g) paprika, preferably hot
Red wine vinegar, to taste
½ cup (120ml) crème fraîche (or sour cream), for garnish
Minced fresh dill, for garnish
Good, thick bread
In a large, heavy-bottomed stockpot, heat oil over medium-high heat until shimmering. Add onion, carrot, celery, and garlic and cook, stirring, until softened, about 5 minutes.
Add celery root, parsnip, beets, cabbage, potatoes, tomatoes and broth, and cook until vegetables are tender, about 20-30 minutes.
Season with salt, pepper, and spices. Add vinegar until soup hits the perfect balance of sweet and sour to your taste.
Coat the bread with a layer of olive oil and broil until golden brown.
Ladle hot borscht into bowls and top with dollops of crème fraîche and fresh dill. Serve with toasted bread. Remaining soup can be refrigerated for up to 5 days and frozen for up to 3 months.