Heat the olive oil in a large pot or Dutch oven over medium heat.
Add the sliced onion, chopped garlic, and the optional dried chile.
Season with salt and pepper and cook for about 5 minutes, stirring until the onion softens and the garlic is fragrant.
Add the chopped tomatoes and cook, stirring occasionally, for 10 to 15 minutes until they break down and the mixture thickens. If using canned tomatoes, crush them with your spoon as they cook.
Pour in 1 cup (240 ml) of the warm stock and bring to a simmer.
Stir in the bread cubes until they are fully submerged, then simmer for another minute.
Remove the pot from the heat.
Let the soup stand for at least 10 minutes, allowing the bread to absorb the liquid and create a thick, rustic texture.
Add more stock if you prefer a thinner consistency.
Before serving, remove the chile, stir in the fresh basil, and check the seasoning, adding more salt and pepper if needed. Ladle into bowls and finish with a generous drizzle of extra virgin olive oil.
Adjust the final consistency to your liking. For a thicker, more porridge-like soup, let it rest longer. For a soup with more distinct pieces of bread, serve it sooner.