A few weeks ago, I was scrolling through Thai restaurant menus at 6:30 p.m., half-hoping someone would pick for me again. Sam wanted pad thai. Our daughter wanted something with peanut sauce. And Biscuit just wanted anything that fell on the floor.
Then it hit me — why not make tofu satay? I grew up ordering chicken satay every time we went to our favorite Thai spot, and when I switched to cooking more plant-based meals at home, I kept missing those smoky, sweet-savory skewers. So I figured out a way to make them that actually works on a weeknight.

The secret is in the prep: freeze the tofu, thaw it completely, then press it dry. It sounds like extra work, but this simple process changes the texture entirely — the tofu gets firmer and more porous, so it soaks up marinade instead of just sitting there looking polite. The result has a chewy, chicken-like quality that even Sam couldn’t tell apart from the real thing.
Why This Works Better Than Takeout
Vegan satay is harder to find than you’d think. Most Thai restaurants serve it with chicken, and the occasional tofu version tends to be soft, pale, and under-seasoned. Making it at home lets you control the marinade, the bake time, and that caramelized finish.
This one passed the Tuesday test. The tofu sits in the freezer overnight anyway, so by the time you’re thinking about dinner on Wednesday morning, the hardest part is already done.

What You Need
The skewers:
- Extra-firm tofu — one 14-ounce block (about 400 grams). Do not skimp on firmness; anything softer falls apart when you thread it.
- Neutral oil — peanut, avocado, or refined coconut oil. Something with a high smoke point for baking at 400 degrees.
- Soy sauce — light or dark, whatever you have in the cabinet.
- Full-fat coconut milk — from a can, not the carton kind. It adds creaminess and depth to the marinade.
- Red curry paste — one tablespoon is plenty for mild heat. Use more if your family likes it spicy.
- Curry powder, garlic, ginger, onion powder — the warm backbone of the marinade.
- Brown sugar — just a tablespoon to balance everything out.
- Fresh lime juice — brightens up all that richness.
To serve:
- Cooked jasmine rice (optional but recommended)
- Peanut sauce — store-bought is totally fine, or make your own if you have time
- Sliced cucumber, fresh cilantro, lime wedges
How to Make It
1. Prep the tofu. Freeze a whole block of extra-firm tofu until solid — I just stick it in the freezer a few days ahead and forget about it. Thaw it completely in the fridge or on the counter, then wrap it in a clean kitchen towel and press gently to remove excess water.
2. Soak your skewers. If you’re using bamboo skewers, soak them in water for 20 to 30 minutes so they don’t burn in the oven. Metal skewers skip this step entirely.

3. Cut and marinate. Slice the pressed tofu into large cubes — about one inch on each side, sturdy enough to thread without breaking. In a bowl, whisk together the oil, soy sauce, coconut milk, red curry paste, curry powder, grated garlic, grated ginger, onion powder, brown sugar, and lime juice until smooth. Add the tofu and toss gently to coat every piece.
Cover and let it sit for at least 30 minutes. If you plan ahead and marinate overnight, the flavor deepens in a way that’s genuinely worth the extra time.

4. Thread the skewers. Slide the tofu cubes onto the soaked skewers, leaving just a tiny gap between pieces so heat can circulate. Set aside any leftover marinade — you’ll need it in a minute.

5. Bake. Preheat the oven to 400 degrees Fahrenheit (200 Celsius) and line a baking sheet with parchment paper. Arrange the skewers on the sheet with a little space between each one — they should roast, not steam. Brush them lightly with half the reserved marinade.
Bake for 10 minutes, flip carefully, brush with the remaining marinade, and bake for another 10 minutes until the edges are golden and slightly caramelized.

6. Broil (optional). If you want deeper color and a hint of char on the edges, switch the oven to broil for one or two minutes at the end. Keep an eye on it — broilers work fast and tofu can go from golden to burnt in seconds.

7. Serve. Bring the skewers to the table hot, alongside jasmine rice, a bowl of peanut sauce for dipping, sliced cucumber, fresh cilantro, and lime wedges. Let everyone dress their own satay — it feels like a little party.
Tips That Actually Help
Do not skip the freeze-and-thaw step. I know it sounds like one more thing to remember, but the texture difference is real. Frozen-then-thawed tofu absorbs marinade and holds its shape during baking in a way that fresh tofu just cannot match.
Press it dry. Any moisture left on the surface dilutes the marinade. A five-minute press with paper towels or a clean towel makes a noticeable difference.
Cut them big. If the cubes are too small, they’ll crumble when you thread them. Aim for about one-inch pieces — hefty enough to handle but not so large that the marinade doesn’t penetrate.
Space matters on the baking sheet. Leave at least an inch between skewers. Crowded tofu steams instead of roasting, and you lose all that beautiful caramelization.
Brush twice. The first brush goes on before baking; the second goes on after flipping. This keeps the tofu moist and builds flavor with each layer of glaze.
Serving Ideas
This works as a main dish for lunch or dinner alongside jasmine rice and a drizzle of peanut sauce. It’s also great as a starter before something heartier — Thai red curry, pad thai, even just a big salad with crunchy noodles.
If you’re making a spread, pair it with fresh summer rolls. And when the savory part is done, mango ice cream (vegan or not) makes the perfect finish.
Storing and Reheating
Fridge: Cool the skewers completely, then seal them in an airtight container. They’ll keep for up to four days.
Freezer: Once cooled, freeze the satay in a freezer-safe container for up to three months. Thaw in the fridge before reheating.
To reheat: Lay the skewers on a baking sheet and warm them in a 375-degree oven (190 Celsius) for about five minutes, until heated through. You can also microwave two or three skewers at a time in 30-second intervals.
A note from Nora: I made this on a rainy Tuesday last month and Sam took one bite before asking if it was chicken. I didn’t correct him immediately — let the moment linger for a second, which felt like a small victory in our kitchen. Our daughter loaded her skewer with more peanut sauce than tofu and said it tasted like something from a restaurant we once visited on vacation. Sometimes that’s all you want: a meal that feels like somewhere else, even if it started as a block of frozen tofu on your counter.
Maybe that is the real gift of small rituals: they do not fix everything, but they remind us that even an ordinary Tuesday can hold something lovely.





Leave a Reply