Refugee-led nonprofit Tapestry Farms fights Quad Cities food deserts with gardens

Jon Burns/Little Village

Half of Iowa’s grocery stores closed in the last quarter of the 20th century, according to the Iowa Department of Public Health. Today, roughly 40 percent of Iowans live a half mile or more from the nearest source of fresh fruits and vegetables—a minor inconvenience for folks with ready access to transportation, but devastating to the health of low-income Iowans whose neighborhoods are disproportionately left out to dry in food deserts.

According to IDPH, the further one must travel to access healthy food, the more likely they are to have chronic diet-related diseases such as obesity, diabetes and cardiovascular issues. Statewide, 9.4 percent of Iowans are food insecure, according to data collected by the nonprofit Feeding America. This trend extends to the Quad Cities, where nearly 11 percent of Rock Island County and 9 percent of Scott County residents are food insecure, and where many of the region’s poorest residents live miles from the nearest grocery store.

Of course, grocery stores and food pantries aren’t the only sources of healthy food. Two Quad Cities organizations have looked to harness the power of gardens and food forests to fill food gaps, with two very different degrees of success.

If you’ve never heard of a food forest, it’s almost exactly what you would expect: a designated area specifically used to grow native food-yielding trees and plants for a community. The Quad City Food Forest had been working to do just that since 2014. The goal of the organization was to provide sustainable and free food to areas of the QC experiencing extreme food insecurity.

The organization faced a number of setbacks in 2021, and not just from the pandemic. In April, their main location in downtown Davenport was destroyed, their entire crop cut down to nothing. Then, the City of Davenport retracted the Food Forest’s license. The Food Forest attempted to rebuild, but with mounting obstacles, their efforts were unsuccessful. Presently, the organization has gone defunct.

Despite the fate of the Quad City Food Forest, the fight for food reciprocity in the QC continues.

Another Davenport-based organization, Tapestry Farms, promotes urban gardening with a focus on providing resources to refugees and honoring their immense knowledge of gardening and food. The nonprofit has been operating since 2017, and so far, they’ve reclaimed several plots of vacant land in the QC and turned them into lush garden spaces.

Jon Burns/Little Village

“Our plots, for the most part, are located in areas designated as food deserts by the USDA,” founder and director Ann McGlynn said. But as she and the dedicated volunteers of Tapestry Farms have worked toward providing for the people in these areas, they’ve seen firsthand the complex social issues that lead to food deserts.

“We’ve started to talk about neighborhoods facing food apartheid,” McGlynn said. “These are neighborhoods that have experienced decades of disinvestment and discrimination.”

Racial and economic inequality are tied up with food insecurity, she explained. Many of the people behind the work at Tapestry Farms have experienced this treatment, and they use their experiences to direct the progress of the nonprofit. Most notably, Tapestry Farms works to make the resettlement process for refugees easier, in spite of language, cultural and financial barriers.

“We grow fresh vegetables and flowers, and either give it away to refugee families or sell shares in our CSA,” McGlynn said. These crops can include tomatoes, cabbage, corn, carrots, potatoes, squash, sunflowers and apples, in addition to kohlrabi, amaranth, intoryi and pawpaws, produce familiar to many African and Middle Eastern immigrants living in the QC. Tapestry also utilizes jembes, a type of hoe traditional in African agriculture, in their gardens.

“It’s hard to succinctly explain what this box of veggies means,” the org posted on Facebook in July, along with a photo of one of their summer CSA shares, bursting with peppers, zucchini, flowers and more. “This box represents access to fresh, beautiful produce for anyone, no matter their income. It represents meaningful employment and social services support for refugees. And, it represents a lot of hard work and collaboration towards changing food systems in our community.”

Recently, Tapestry has teamed up with Backyard Abundance, a conservation education nonprofit in Johnson County, to plan an expansive new garden on a plot of land at Third and Brown streets in Davenport. The org also received a $10,000 grant from the Quad Cities Community Foundation this fall, which McGlynn said will go toward hiring new staff and welcoming new refugees.

Roughly 225 refugees have arrived in the Quad Cities every year over the past decade. That number is expected to double in the years ahead, with more and more people relocating from Myanmar, Afghanistan and central and eastern Africa.

Ultimately, grants and community support make all the difference for organizations combating food insecurity, and the lack of them are often why they fail. The work of these organizations starts in the relationships between neighbors. Ending food insecurity is impossible without mobilizing to make fresh food readily available to everyone in our communities.

Information about donating to and volunteering with Tapestry Farms can be found on their website, Look into the people and associations in your own communities fighting for food security — they have the power to change everything.

Charly Heber-Spates is a freelance writer based in the Quad Cities. This article was originally published in Little Village issue 300.

[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='/refugee-led-nonprofit-tapestry-farms-fights-quad-cities-food-deserts-with-gardens/#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="200"/><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>