Heat olive oil in a medium dutch oven or other heavy pot over medium-high heat. Cook onions, stirring occasionally, until fragrant, about 30 seconds.
Add carrots and celery and season with some salt. Cook, stirring frequently, until the carrots and celery have softened a bit, and are starting to brown, about 5 minutes. Deglaze the pan by adding in a bit of water and scraping the bottom of the pan to remove and dissolve all the browned food bits from the pan. This will provide a rich flavor to the soup.
Add in and stir together all the remaining ingredients, except the spinach. Bring to a boil, then turn the heat to low, cover, and simmer for about 20 minutes, until the meatballs are heated through and potatoes are soft enough. Check and stir as needed.
Remove the bay leaf and stir in the spinach. Cook for about 1 minute, until the spinach is wilted.
Serve and enjoy. Top with oyster crackers or parmesan cheese, as desired.