Preheat your waffle iron. You want it fully hot, medium-high setting. A hot iron equals crisp edges, period.
Prep the veggies. Grate zucchini or carrot on the small holes of a box grater. Wrap in a clean towel and squeeze out as much liquid as you can. This step is non-negotiable.
Whisk dry ingredients. In a large bowl, combine whole wheat flour, brown sugar, baking powder, baking soda, salt, and any spices (cinnamon, nutmeg).
Mix wet ingredients. In a separate bowl, whisk milk, eggs, oil, and vanilla until smooth.
Combine. Pour wet into dry and stir with a spatula just until a few streaks remain. Fold in the grated, squeezed-dry veggies (and chocolate chips or nuts if using). Stop mixing when it looks mostly combined—some small lumps are fine.
Rest the batter. Let it sit 5 minutes. This hydrates the whole wheat flour and improves texture. Yes, five minutes is worth it.
Cook. Lightly grease the waffle iron if needed. Add batter (usually 1/2 to 3/4 cup per waffle depending on iron size) and cook until deeply golden and crisp, 3–5 minutes. Don't peek too early—steam escaping is your done signal.
Keep them crisp. Place cooked waffles on a wire rack in a 200°F oven while you finish the batch. This prevents soggy bottoms.
Serve. Top with butter and maple syrup, a dollop of Greek yogurt and berries, or go high-protein with peanut butter and banana.