Prep the vegetables. Dice the onion, carrot, celery, and zucchini.
Mince the garlic. Keep everything roughly the same size for even cooking.
Warm the pot. Set a large soup pot over medium heat. Add 2 tablespoons of olive oil and let it shimmer.
Sauté the aromatics. Add onion, carrot, and celery with a pinch of salt.
Cook 5–7 minutes, stirring often, until softened and lightly golden at the edges.
Add the garlic and spices. Stir in the garlic, dried oregano, and a pinch of red pepper flakes. Cook 30–60 seconds until fragrant. Don’t let the garlic brown.
Build the broth. Pour in the crushed tomatoes and vegetable broth.
Add the bay leaf. Stir to combine and bring to a gentle simmer.
Add the zucchini. Stir in the diced zucchini. Simmer 8–10 minutes until the vegetables are tender but still have a little bite.
Season and brighten. Fish out the bay leaf.
Add 1–2 tablespoons of lemon juice. Taste and season with salt and black pepper. Adjust chili flakes if you like more heat.
Finish with greens and herbs. Stir in the spinach and cook just until wilted, about 1 minute.
Off the heat, fold in chopped basil or parsley.
Optional extras. If using, add cooked small pasta or a cup of rinsed white beans. If you’re not keeping it vegan, finish bowls with grated Parmesan and a drizzle of olive oil.
Serve. Ladle into warm bowls. Top with more herbs, fresh pepper, and a squeeze of lemon if you want extra zip.