Press the tofu: Wrap the block of tofu in a clean towel and place something heavy on top for 20–30 minutes.
This removes excess moisture so it crisps and holds together on the grill.
Mix the marinade: In a bowl, whisk 1/4 cup BBQ sauce, 1 tablespoon soy sauce, 1 tablespoon oil, 1 teaspoon vinegar, 1 teaspoon maple syrup, 1 clove minced garlic, 1/2 teaspoon smoked paprika, and a pinch of black pepper. Taste and adjust salt or sweetness if needed.
Cut the tofu: Slice pressed tofu into 1- to 1.25-inch cubes. Thicker cubes stay sturdier on skewers and won’t dry out as easily.
Marinate: Toss tofu cubes in the marinade.
Let them sit for at least 20–30 minutes, or up to 8 hours in the fridge. The longer they marinate, the deeper the flavor.
Prep the veggies and fruit: Cut bell peppers, red onion, and pineapple into skewer-friendly chunks. Aim for similar sizes so everything cooks evenly.
Preheat the grill or oven: Heat a grill to medium-high and oil the grates.
For an oven, preheat to 425°F (220°C) and line a sheet pan with parchment or foil. A grill pan on the stove also works well.
Assemble the skewers: Thread tofu, peppers, onion, and pineapple onto skewers, alternating colors and textures. Don’t pack them too tightly—space helps them char and caramelize.
Grill or bake: - Grill: Cook 8–12 minutes total, turning every 2–3 minutes until you see good grill marks and light char. - Oven: Bake 18–22 minutes, turning once halfway through.
Glaze with BBQ sauce: During the last few minutes, brush skewers with extra BBQ sauce on all sides.
Let the sauce caramelize slightly without burning.
Rest and serve: Remove from heat and rest 2 minutes. Garnish with chopped parsley or cilantro and a squeeze of lime. Serve with extra BBQ sauce on the side.