MealsDinner35 min start to plate1 serving

Tofu and kale stir-fry

A plant-based meal that clears 40 g of protein without a powder, which most of them do not. Firm tofu is the whole reason: at 17 g per 100 g it is nearly three times the protein of the soft block sitting next to it on the shelf.

Calories
644 cal
per serving
Protein
46.1 g
per serving
Carbs
60.3 g
per serving
Fat
28.6 g
per serving

Calculated from 4 source records at the amounts in the ingredient table below. Nothing on this page is a hand-entered total.

Seared tofu cubes with kale over brown rice, peanut sauce drizzled on top

Portion control

Dial the tofu and kale stir-fry

Amounts are weighed in the state each source record is measured in, which is raw or dry for anything you cook. Change a number and every total below recalculates from the same records the baseline uses.

1 serving: 644 cal, 46.1 g protein.

1 serving

Calories
644 cal
Protein
46.1 g
Carbs
60.3 g
Fat
28.6 g
Fiber
12.3 g
Sugar
Unavailable
Sodium
125 mg
Ingredient amounts
  • Weigh 60 g before cooking. It lands at about 179 g cooked, which is what you see on the plate and not what you log.

One macro cannot be totalled

  • Sugar has no value on these records:
    • Firm tofu, raw, prepared with calcium sulfate
    • Brown long-grain rice, dry
    • Peanut butter, creamy, for the sauce

Summing only the ingredients that do carry a value would produce a smaller number presented as a complete one, so the figure is withheld instead.

Servings eaten
1 serving

The recipe as written yields 1 serving. Per serving it is 644 cal and 46.1 g of protein.

Substitution

Why this meal

Why this meal clears a real protein floor

Most plant-based dinners get close to a protein target and stop short. This one clears it because the tofu is doing the work a powder would do elsewhere. Firm tofu prepared with calcium sulfate carries 17.3 g of protein per 100 g, and at the 200 g this recipe calls for, that is 34.6 g of protein and 288 kcal before the rice, kale, or peanut sauce contribute anything. That single ingredient supplies 75 percent of the meal's protein and 45 percent of its calories. The full build totals 644 kcal, 46.1 g of protein, 60.3 g of carbohydrate, 28.6 g of fat, and 12.3 g of fiber, with 125 mg of sodium. Sugar reads as unavailable rather than as a number, because the firm tofu record carries no sugar value and a null does not get rounded down to fill the gap.

Tofu is not one ingredient with one macro profile. The block you buy sets the meal's whole protein case, and the difference is large enough to change which meal you actually ate. Swap the calcium-sulfate firm block for the extra-firm block prepared with nigari, at the same 200 g, and protein drops to 20 g, calories to 166. That is nearly 15 g less protein for the same weight of food. The substitution exists on this page because extra-firm holds its shape better under high heat, which matters for the sear, but it is not a like-for-like swap on the numbers that make this meal worth logging in the first place. If the protein figure is the reason you're making this, check the label for calcium sulfate as the coagulant rather than nigari, because "tofu" on a shopping list does not specify which block comes home.

Plant protein sources generally need a larger total per meal to reach the same leucine trigger that animal protein hits at a smaller serving, which is one reason a 46 g plant-based dinner reads differently on paper than a 46 g chicken dinner. The plant-based proteins guide covers the scoring behind that gap. If dairy isn't off the table for you, Greek yogurt reaches a comparable protein number without a pressing step or a firmness decision, and is worth keeping in rotation alongside this one rather than instead of it.

Calculated nutrition

What one serving contains

Every figure is scaled from the USDA records listed at the bottom of this page, summed at full precision, and rounded once. A macro that any ingredient record does not carry is reported as unavailable instead of being quietly dropped from the sum.

Calculated nutrition for Tofu and kale stir-fry
MacroPer serving
Calories (cal)644 cal
Protein (g)46.1 g
Carbs (g)60.3 g
Fat (g)28.6 g
Fiber (g)12.3 g
Sugar (g)Unavailable
Sodium (mg)125 mg

Why sugar is unavailable

  • Sugar has no value in the USDA records behind these ingredients:
    • Firm tofu, raw, prepared with calcium sulfate FDC 172475
    • Brown long-grain rice, dry FDC 2512380
    • Peanut butter, creamy, for the sauce FDC 2262072

Adding up only the ingredients that do carry a value would produce a smaller number presented as a complete one, so the figure is withheld rather than under-reported. If your tracker demands a number, a blank field is a more accurate record than a zero.

Ingredients

The amounts that produce those numbers

Weigh in the state each line names. An ingredient whose page is already published links to it, and the rest are plain text until their page ships.

Ingredients for Tofu and kale stir-fry, with the amount each contributes
IngredientWeighCooked resultCaloriesProtein
Firm tofu, raw, prepared with calcium sulfate200 gnot cooked288 cal34.6 g
Brown long-grain rice, dry60 gabout 179 g2.98× the weighed amount220 cal4.4 g
Kale, stems removed120 gnot cooked42 cal3.5 g
Peanut butter, creamy, for the sauce15 gnot cooked95 cal3.6 g

Each amount is weighed in the state its source record is measured in, which is raw for meat and fish and dry for grains and pulses. That is also the state you weigh in, because the scale comes out before the pan does.

Measure state

Weigh it before it goes in the pan

Cooked weights below are what to expect on the plate. They are shown so the portion looks right, and they never enter a calculation. The last row in each card is the size of the mistake if you weigh the cooked result and log it against the raw or dry record anyway.

Brown long-grain rice, dry

Weigh before cooking
60 g
Expect on the plate
about 179 g
Counted in the total
220 cal
If you log the cooked weight here instead
655 cal

Energy-conserving ratio between FDC 2512380 (raw, 366 kcal per 100 g) and FDC 169704 (cooked, 123 kcal).

Method

How it comes together

  1. Weigh 200 g of tofu before pressing and log it against the raw firm-tofu record. Press that weighed portion for at least twenty minutes under something heavy, then sear it. The post-press scale weight is not the source-record weight.

  2. Start the brown rice first. It takes about twice as long as white and the stir-fry takes ten minutes.

  3. Sear the tofu cubes hard on two sides in a very hot dry nonstick pan before anything else goes in. Crowding the pan steams them instead.

  4. Thin the peanut butter with hot water, rice vinegar, and soy sauce into a pourable sauce. The soy sauce adds sodium that this ingredient table does not price, because the dataset has no record for it.

  5. Add the kale last with a splash of water and cover for two minutes so it steams rather than scorches.

Substitutions

What each swap costs

Each swap is recalculated end to end rather than patched, so the change and the resulting per-serving figures agree with what the recipe would report if it had been written that way from the start.

Firm tofu, raw, prepared with calcium sulfate200 g Tofu, Extra Firm, Prepared with Nigari

FDC 174290

Extra firm tofu prepared with nigari. Holds its shape better and, counterintuitively, carries considerably less protein per gram than the calcium-sulfate firm block.

Per-serving change from swapping Firm tofu, raw, prepared with calcium sulfate for Tofu, Extra Firm, Prepared with Nigari
MacroChange per servingNew per serving
Caloriesdown by 122 cal522 cal
Proteindown by 14.7 g31.4 g
Carbsdown by 3.2 g57.1 g
Fatdown by 6.9 g21.7 g
Fiberdown by 2.6 g9.7 g
SugarUnavailableUnavailable
Sodiumdown by 20 mg105 mg

Brown long-grain rice, dry60 g Rice, White, Long Grain, Unenriched, Raw

FDC 2512381

White rice when the meal is going in close to training and fiber is not welcome.

Per-serving change from swapping Brown long-grain rice, dry for Rice, White, Long Grain, Unenriched, Raw
MacroChange per servingNew per serving
Caloriesdown by 4 cal640 cal
Proteindown by 0.2 g45.9 g
Carbsup by 2.1 g62.4 g
Fatdown by 1.3 g27.3 g
Fiberdown by 1.7 g10.6 g
SugarUnavailableUnavailable
SodiumNo change125 mg

Logging

Logging this meal

Weigh the tofu before pressing and log 200 g against the raw firm-tofu record. Press that weighed portion for twenty minutes before searing. The water loss changes the scale weight, but it does not change the amount of tofu you started with or the source record used for the calculation. Press after weighing, rather than weighing a post-press block against a raw record.

The stir-fry format hides two additions that a bowl like this one does not price anywhere in its ingredient table. The first is oil. This recipe sears the tofu in a very hot, dry, nonstick pan on purpose and steams the kale with a splash of water instead of sautéing it, specifically because oil is the ingredient a stir-fry loses track of fastest. It goes into the pan rather than onto a plate you weigh, and a wide pan or a wok needs more surface coated than a single seared cutlet does, which is exactly why a "glug until it looks right" habit produces a larger unmeasured amount here than it does in a smaller skillet. If you deviate from the dry-pan method and add oil, weigh it and log it as its own line rather than folding it into "stir-fry" as one guess.

The second is the sauce. Thinning the peanut butter with soy sauce adds sodium that this ingredient table does not carry, because the dataset has no matching record for it. The 125 mg of sodium on this page is real, and it is also incomplete: it is what the tofu, rice, kale, and peanut butter contribute on their own, not what ends up in the bowl once you season it. Fifteen grams of peanut butter is small enough that its own macros rarely need a second look, but the soy sauce riding along with it does.

Timing and goal fit

Timing and goal fit

This is a dinner build, not a pre-training one. At 644 kcal with 28.6 g of fat, it sits heavily the way any seared-protein-plus-rice plate does, and the fiber load from the kale and the tofu skin adds to that rather than against it. Give it real time to digest before a session, the same rule that applies to any dense plate with this much fat and fiber together.

Where it earns its place is a day that has been light on vegetables. Kale carries most of the meal's 12.3 g of fiber, which is a real number against a day where the rest of your food has been rice, bread, and protein with nothing green in it. That is also the day this meal is worth reaching for over a lighter option, since the fiber is doing a job the rest of the day did not.

For meal prep, the method is built to survive a reheat. Pressing the tofu first and searing it hard on a dry pan sets the surface before it ever goes near a fridge, which is why it comes back out of a container without turning spongy the way an unpressed, un-seared block does. The meal prep entry covers the storage side of that in more detail.

If this bowl is going in close to a session and the fiber load is unwelcome, the substitution table swaps the brown rice for white at the same 60 g dry weight, which trims fiber without touching the tofu or the protein number that makes this meal worth building in the first place.

Built for

  • Weeknight dinner without meat
  • Meal prep that reheats without going rubbery
  • Higher-fiber dinner on a day that was light on vegetables

Goals it serves

  • muscle gain
  • high protein
  • meal prep

Dietary pattern

  • vegan
  • vegetarian
  • dairy free

Time

Prep
15 min
Cook
20 min
Total
35 min
Yield
1 serving

Sources

Where every number comes from

Source record behind each ingredient amount
IngredientSource recordFDC IDDataset
Firm tofu, raw, prepared with calcium sulfateTofu, raw, firm, prepared with calcium sulfate172475SR Legacy
Brown long-grain rice, dryRice, brown, long grain, unenriched, raw2512380Foundation Foods
Kale, stems removedKale, raw323505Foundation Foods
Peanut butter, creamy, for the saucePeanut butter, creamy2262072Foundation Foods

How these numbers are produced

  • Every figure is scaled from the records above with the same function the food pages use, summed at full precision, split across the 1 serving this recipe yields, and rounded once at the end. No total on this page was typed by hand.
  • Cooked weights are shown so you know what to expect on the plate. They never enter a calculation, because the nutrition belongs to the weighed amount and not to the water it gained or lost.
  • Optional ingredients sit outside the baseline and are priced separately, so the headline macros describe the recipe as written.
  • A macro that any ingredient record does not carry is reported as unavailable rather than summed from the ingredients that do carry it. Across this dataset, sugar is absent on 228 of 405 records, which is why this meal cannot report it.
  • Seasoning, stock, vinegar, and sauces are named in the method and excluded from the totals, because no record in the dataset prices them and a guessed figure is worse than a stated omission.

Data source

  • USDA FoodData Central Foundation Foods, exported 2026-04-30, 363 records normalized. Download the dataset.
  • USDA FoodData Central SR Legacy, exported 2018-04, 42 records normalized. Download the dataset.

Written by Stephen Walker. Published August 16, 2026. Last reviewed August 16, 2026.

Save this meal once and log it in seconds.

Take the gram amounts above into Fuel as a saved recipe, then adjust the one ingredient that changes day to day.

Download Fuel