Preheat your oven to 200C/390F.
Slice fresh tomatoes in half, season with salt and pepper, scatter garlic and thyme, drizzle with olive oil, and roast for 25-30 minutes.
Melt butter in a pot, add diced onion, and sauté until caramelized.
Stir in tomato puree, cook for a minute, then deglaze with balsamic vinegar.
Combine roasted tomatoes, garlic, thyme, and chicken stock in the pot with onions and simmer for at least 30 minutes.
Blend the soup to desired consistency using a hand blender.
Taste and adjust seasoning with salt and black pepper.