Skip to main content

Honoring Juneteenth and its Texas origins



Texas historical marker at 2201 Strand Street | Alyssa B, Yelp

On June 19, 1865 – more than two years after President Abraham Lincoln signed the Emancipation Proclamation – General Order No. 3 was read on Galveston Island informing the public: “all slaves are free.” It was read by Union Maj. General Gordon Granger and enforced by nearly 2,000 Union troops and an estimated 5,000-10,000 U.S. Colored Troops, as they marched through Galveston announcing the order that would eventually free 250,000 enslaved people in Texas. In years that followed, that day would later be known as “Juneteenth” and celebrated by freedmen and women across Texas. 

Juneteenth, also known as Jubilee Day, Freedom Day, and Emancipation Day, has long been celebrated in Texas and is the oldest known celebration of the end of slavery in the United States. As freedmen and women migrated to other cities and neighboring states, the holiday became more widely known outside of Texas and celebrated with picnics, prayer, parades, festivals and ceremonies. Many Black Americans recognize Juneteenth as Independence Day, along with the anniversary of the Emancipation of Proclamation taken into effect on January 1, 1863. Currently 47 states and a growing number of employers (including Yelp) recognize June 19th as a holiday, and there are many grassroots and congressional efforts to make it a national holiday.

Tour along with us as we commemorate the abolition of slavery in Texas and visit Juneteenth’s historically significant sites as seen on Yelp…

General Order No. 3 preserved at the National Archives and Records Administration

Texas historical marker and “Absolute Equality” mural in The Strand | Farrah A, Yelp

The Strand Historic District – Galveston
Union Maj. General Gordon Granger issued General Order No. 3 from the Texas headquarters of the Union army housed at the Osterman building. Though the Osterman building has since been demolished, a historical marker was erected in 2014 at the site where the emancipation announcement was originally read and where enslaved people of Texans first learned about their freedom. In 2021, as part of the Juneteenth Legacy Project, a 5,000-square-foot mural, “Absolute Equality,” by lead artist Reginald C Adams was completed and overlooks the historic site. A mural dedication will take place on Juneteenth in Galveston, Texas, followed by numerous celebrations across the island.

Reedy Chapel AME Church | Farrah A, Yelp

Reedy Chapel – Galveston, Texas
Reedy Chapel dates back to 1848, serving as a place of worship for the enslaved people of Galveston. In 1865 after General Order No. 3 was read at Union headquarters, Union Maj. General Gordon Granger and his troops marched over to the US Custom House and Courthouse to deliver the news, along with a historically significant stop at Reedy Chapel, what was then referred to as “Negro Church.” “One of the many historical churches on the island,” Elite Yelper Melissa C shares. “After slavery ended in Texas, this church acted as a school educating freed men and women.” Today, it operates as an African Methodist Episcopal church and is still home to annual Juneteenth celebrations, with its inaugural event dating back to 1866. Reedy Chapel has received the Texas Historical Marker, the Historical Medallion, and is officially listed on the National Register of Historic Places.

1859 Ashton Villa | Farrah A, Yelp

1859 Ashton Villa – Galveston, Texas
Under the ownership of wealthy businessman and slave owner James Moreau Brown, Ashton Villa served as headquarters for the Confederate Army throughout the Civil War. Ashton Villa is rumored to be another location where General Order No. 3 was read in 1865. Thanks to the efforts of the late Texas representative and civil rights activist Al Edwards, Texas became the first state to recognize Juneteenth as a holiday in 1979; that same year, Edwards initiated an annual Juneteenth Celebration on the lawn of Ashton Villa, which continues to this day. In 2006, the Juneteenth Committee with the City of Galveston erected a statue of Representative Al Edwards reading General Order No. 3. Ashton Villa is under the ownership of the Galveston Historical Foundation and is listed in the National Register of Historic Places.

Emancipation Park | Farran M, Yelp

Emancipation Park – Houston, Texas
After slavery ended, celebrating Juneteenth in public parks and spaces was prohibited in many cities. In 1872 Black leaders in Houston purchased 10-acres of land for $1,000 and created a new home for Juneteenth celebrations; they named it Emancipation Park. This effort was led by freedmen Reverend John Henry “Jack” Yates, Richard Allen, Richard Brock, and Reverend Elias Dibble. Present day, the park is complete with an aquatics center, tennis and basketball courts, baseball field, rec center, art installations, and more. Emancipation Park is a protected historic landmark.

“This is such a beautiful park filled with a ton of history. It’s gorgeous, and has so much to offer. The lawn space is huge, so you could have a picnic, workout, etc… I walked around and listened to a guided audio tour on the GeoTourist app. I highly recommend doing the tour…” –Nicole W, Yelp Elite

Splash pad at Eastwoods Park | Lisa M, Yelp

Eastwoods Park – Austin
Originally called Wheeler’s Grove, this park served as the site of Austin’s first Juneteenth celebrations from the 1860s to the early 1900s. In 1928, the city’s master plans segregated Black Austinites from Wheeler’s Grove, which forced them to move festivities to Emancipation Park (later seized by the city in 1938) and alas Rosewood Park. Eastwoods Neighborhood Park has a Lone Star Legacy designation.

“Pretty nice size park with a great history tucked in a nice quiet neighborhood across the street from UT. They have a nice inventory of park goods including a softball field, one full basketball court, two tennis courts, barbecue pits, playgrounds, picnic tables, lots of trees and shade, restroom, and a couple of walking trails.” –Matt M, Yelp

Rosewood Park & Pool | photo by Katie B, Yelp

Rosewood Park & Pool – Austin
In 1928, the city purchased land to build a designated space for Black Austinites, naming it Rosewood Avenue Park and Playground for The Colored. After its opening in 1929, it became the new home for concerts, school dances, athletics, and Juneteenth celebrations – years before Emancipation Park was seized by the city in 1938. Rosewood Park is still home to the city’s annual Juneteenth celebration. It received the Lone Star Legacy Park award and also a Texas Historical Marker.

“The pool is packed on the weekends and when school is out since it is located in a densely populated area. If you can handle kids splashin’ around, then this is a great option to hang out with water close by. There is ample parking and the staff is super friendly.” –Luci H, Yelp


“Absolute Equality” | photo and mural by lead artist Reginald C. Adams of Houston

Additional Juneteenth events in Texas, or find a celebration near you on Yelp!

Austin
Central Texas Juneteenth Celebration

Dallas
Juneteenth Community Bike Ride (June 18th)
Juneteenth DFW Parade & Celebration at Fair Park
Dallas Juneteenth Festival at MLK Community Center 
African American Museum Presents Juneteenth Festival

Fort Worth
Juneteenth Fort Worth Community Festival
Opal’s Walk for Juneteenth

Houston-Galveston area
Juneteenth Festival and “Absolute Equality” mural dedication
156th Galveston Juneteenth Celebration & 42nd Annual Al Edwards’ Celebration
Galveston Island Juneteenth Festival
Reedy Chapel Virtual Program
Juneteenth in The Fifth Ward
BLCK Market Juneteenth Celebration

San Antonio
Night at the Missions Juneteenth Fundraiser
Juneteenth History Harvest
Juneteenth Block Party


[gravityform id="4" title="false" ajax="true"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/community/honoring-juneteenth-and-its-texas-origins/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Email</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>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_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('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_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = 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_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>
[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/community/honoring-juneteenth-and-its-texas-origins/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Name</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>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_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('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_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = 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_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>