Vegetable Geeks: Rhapsody in Greens and Reds and Yellows

delicious spinach Hi there! Welcome to the first blog post by vegetable geeks Melody and Theresa. We are both vegetable-loving Iowa City folks who enjoy cooking and baking for the pleasure of both the soul and the tongue. We’re embarking on a three-month project to document our joie de vivre de cooking, and inviting whomever cares to peek in to join us as we go. Both of us strive to cook with whole foods and as locally and organically as is reasonable. We believe eating healthfully starts with what comes directly from the earth, that a diet laden with colorful plants is prescriptive medicine, and that a glutton for veggies is the luckiest feast-mongerer of them all.

Cooking with the vegetables in season will also be a goal for us while maintaining this blog, and we anxiously anticipate spring and summer’s arrival with their asparagus and arugula and tomatoes and zucchini and mmmmmmmmmmmmmmmm.

We also reserve our right to bake! Cakes and cookies and baklava might find their home on these pages, as well.

Because neither of us eat meat, our posts here will initially be absent of most animal products. Please remember us and stop by to visit if you are a vegetable-lover yourself.

May the chard be with you,
Melody and Theresa

Rhapsody in Greens & Reds & Yellows

For several years in my adult life, I lived in a housing cooperative where we cooked meals for each other twice each month. The idea was that if each of us cooked for the house twice per month, two-thirds of the time we’d have home-cooked meals to enjoy together. And generally, not only were these home-cooked meals, they were made from scratch, often with organic items. Buying beans and rice and other products in bulk kept prices down in theory, and it’d be my guess that we would have food available for cooking 95% of the time. We might have to settle for a one-bean chili with rice if the fresh produce had all been eaten for the week, but creative roommates were able to “cook” something up every time.

It got a little experimental at times. “Fennel Sticks” (baked tofu covered in fennel seeds) and Casserole Surprise are among the dishes that will live in some roommates’ personal infamy. (We chefs are always hardest on ourselves.) After moving out of these houses, the thing I come back to the most is how much I miss eating like that, experiments and all. Not every night was well thought out and balanced, but the majority of people gave it their best shot with what they had to work with. I will still remember enjoying night after night of vegetable-heavy, fiberriffic meals cooked for me. Whole grains, plant-based proteins, and greens waiting for me on the dining room table. What a great dream.

Meals with a buttload of veggies are considerably underrated in American cuisine. I caught Rachel Ray on the Food Network at the gym the other night and her 30-minute meal consisted of meat, pasta, and bread (lamb chili, couscous, and pita, to be starchily precise). The fruits and veggies in her meal included dried apricot, raisins, onions, and peppers. Despite the nutritional merits of these foods, where’s the fiber? Where’s the folic acid? Her colon must not be pleased with her.

But enough with the bitching and the storytelling. Today I’m going to share a recipe that packs in a lot of greens for low-calorie nutritional benefits, mixed with appetite-satisfying protein on top of a pasta base. It feels fresh to eat, cooks up in a snap, and tastes pretty damn good if you ask me.

Spinach & Tempeh over Elbow Rigati


  • 32 oz. spinach
  • 2-8 oz. packages of tempeh
  • 1 medium yellow onion
  • 1 red pepper
  • 1 yellow pepper
  • Garlic galore (Use fewer than 4 cloves if you don’t have a garlic tolerance like I do, 5+ if you do!)
  • 2-4 tbsp olive oil (The amount you will need to use depends on the type of pan you have. Cast irons soak up the oil and you’ll need more to keep the pan slicked. Non-stick pans like Teflon don’t need much. Only use the amount you want for flavoring the dish.)
  • Elbow rigati (That means “ridged”; un-ridged elbow macaroni would work just swell, too.)
  • Salt and pepper (to taste)

Thickly slice your onion and peppers and set aside. Slices should be about a half-inch wide at their widest part. Cube your tempeh and set that aside too.

Fill a 2-quart saucepan with water, add lots salt to flavor the pasta and to get it to that al dente stage, and heat it till boiling. When your water reaches a bubbling boil, add the pasta, stir, and cook for about 9 minutes for an al dente (firm but not hard) style. You can use other pastas if you prefer, and just follow the directions on the box. It’s best to time cooking the pasta with the rest of the dish so that the pasta can be served immediately. I recommend getting the uncooked pasta in the boiling water after the onions start to cook and before you add the spinach, which is described in the following steps.

Get your frying pan going over low to medium-low heat, adding half your olive oil. Heat for a minute, then add your onion slices and cubes of tempeh and cover. The best judge of whether you should move on to the next step is your nose. While you’re waiting for this scent to waft past your nostrils, mince the garlic. Also, make sure you stir the onions and tempeh around a few times, too. Even cooking is good cooking. When you smell a sweet savoriness in the air, your onion is ready for you.

Add the spinach and recover. It’s going to take a minute for the spinach to cook down before you have room for your slices of red pepper. When there’s enough room in the pan, toss your peppers and garlic in, stir up, and cook for about 5 more minutes. Stir things up some more, and add salt and pepper to taste. And you’re done! Turn off that heat!

Serve about 2/3-1 cup of the elbow pasta with several scoopfuls of the spinach and tempeh dish. Serves 4 hearty portions.

The more one cooks, the faster chopping and mincing gets. I’ve got this dish down to taking about 20-30 minutes to make, depending on how else I choose to doctor it each night. It’s simple, colorful, and fun to eat.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/vegetable-geeks-rhapsody-in-greens-and-reds-and-yellows/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Comments</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="148"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>