This sweet-savory dish is a fun alternative to classic cranberry sauce.
Preheat the oven to 425°. On a rimmed baking sheet, arrange the shallots, cut-side up. Drizzle with 2 tbsp. oil; season generously with salt and pepper. Turn the shallots over and arrange in a single layer; season again. Roast until the shallots are browned in spots and begin to soften, about 10 minutes.
Toss the grapes with the remaining 1 tbsp. oil; season. Add the grapes to the baking sheet and arrange around the shallots. Roast until the grapes begin to split and the shallots are tender, about 10 minutes.
Meanwhile, in a medium saucepan, boil the vinegar over medium-high heat until reduced to 1/4 cup, about 5 minutes. Whisk in the butter, 1/2 tsp. thyme, and the vanilla; season. In a large bowl, gently stir the shallots, grapes, and reduced vinegar; season.
Transfer to a serving bowl. Sprinkle with the remaining 1/2 tsp. thyme. Serve warm or at room temperature.