Skip to main content

Living La Vida Local in San Francisco



I’ve lived in San Francisco for almost eight years, I’ve had countless visitors from all over the world and often I volunteer to be their personal tour guide. By the end of their visit, their feet are usually hurting really bad as I’ve most likely dragged them over all the 43 hills of San Francisco: after all, it is my goal to show them the quintessential San Francisco hoods that ooze the true flair of this fabulous city. Typically I have little trouble convincing them that I live in the best city on earth and that they should seriously consider relocating.

But sometimes I am out of town or my work doesn’t permit me to be at their side constantly. And what I noticed on these rare occasions, is that my friends don’t like San Francisco that much: they find it dirty, crowded and above all: super-touristy. In other words, they probably visited only the red spots as laid out on Eric Fischer’s heat map “Locals & Tourists”.

Tourists (red): The areas that are flashing up bright red on the heat map are the following: Fisherman’s Wharf, Embarcadero, Union Square, North Beach, Alcatraz, Chinatown and the Golden Gate Bridge. I’m not saying that you shouldn’t go there, but to take note that this is NOT where people in San Francisco typically hang out.

Locals (blue): While there’s a long list of truly local neighborhoods in San Francisco, I will only talk about the ones that I am most familiar with. In the following paragraphs I will highlight the following eight areas and feature 2 businesses in each of them: Tenderloin, Hayes Valley, NOPA, Mission, Castro, Cole Valley, Sunset and Richmond.

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/Locals.jpg” caption=”Locals vs Tourists — Heat Map by Eric Fischer“]

The Tenderloin

This neighborhood is probably one of the reasons why my friends who weren’t able to enjoy my personal services as tour guide, ended up not liking San Francisco: it borders the glitzy Union Square and in fact if you just took a wrong turn you quickly found yourself amongst people shooting up heroin on the streets or relieving themselves in an apartment entrance. Granted, the Tenderloin, which is traditionally home to the transient population, has its flaws. But to be honest it is a side of San Francisco that you should also see and acknowledge. Therefore, in order to promote this area, I’d like to recommend two places — neither of which are trying to change (gentrify) the neighborhood, but which instead are reflecting its character and its inhabitants: Kusina Ni Tess is a Filipino restaurant on grimy Ellis Street. Maria is the heart and soul of this place and she serves a fantastic traditional Filipino breakfast. I really recommend that all jet-lagged travelers come here instead of going to the nearby 24-hour diners; Maria opens her doors at 7am sharp! The other place I’d like to recommend is Saigon Sandwich: over 2500 Yelp reviews with a 4.5 star average…enough said!

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/Saigon.jpg” caption=”Saigon Sandwich in the Tenderloin”]

Hayes Valley

I feel it was only a few years ago when a highway ramp dumped a huge amount of cars right into the heart of this neighborhood. Yet on my most recent visit I saw this very same spot marked with a temple, previously featured at Burning Man; funny how things change. In my mind though, the turning point for when Hayes Valley changed its image, was not so much marked by the destruction of said highway ramp, but by the opening of a coffeeshop in a garage at 315 Linden Street: aka, the first Blue Bottle location.(Yet another success story that started in a garage!) Nowadays Hayes Valley rents have sky-rocketed and while I personally still wouldn’t want to live here, I do come here frequently to do some shopping. In fact, my favorite pair of trousers is from a men’s store called Welcome Stranger (460 Gough St). So ditch the commercial Union Square and come here for some great independent shopping.

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/Blue-Bottle.jpg” caption=”The original Blue Bottle location in Hayes Valley”]

NOPA

When I first moved to San Francisco this neighborhood technically didn’t exist, or at least it wasn’t called NOPA (which — by the way — stands for North of Panhandle). Back in the days, Divisadero Street was quite an unappealing stretch to hang out, but along with the San Francisco tech-revolution, this area has been radically gentrified and now features some of San Francisco’s hippest restaurants and shops. Personally though, I like the less glitzy/hip shops and so one of my favorite places in this area is the Oasis Café (901 Divisadero St), a very casual Ethiopian restaurant, which my colleague introduced me to a while ago. Yet even I am not immune to the hipster virus and so I also highly recommend to get in line at b. Patisserie and sample one of their signature items: the Kougin Amann. My tip: buy a bunch of different pastries, some coffee and head to Alta Plaza Park, which is the less famous cousin of Alamo Square: the views and the Victorian houses around here are equally stunning, yet they come with less selfie sticks!

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/Kougin-Amman.jpg” caption=”Pumpkin Kougin Amann from b. Patisserie”]

The Mission

This neighborhood is also commonly known as the “Banana Belt” of San Francisco as it enjoys more sunshine and less fog than the rest of the city. Traditionally, this has been the home to the Latin American population and even though the area is not immune to gentrification, you can still find the best tacos in the city here. In fact, my absolute favorite Mexican restaurant is La Taqueria (Mission & 25th). Just writing about them makes me crave their carne asado burrito…mmh! And while I love eating out, my passion is to re-create my international dining experiences at home. At La Palma Mexicatessen (2884 24th St) I find those ingredients that your typical supermarket won’t feature, such as a large assortment of beans as well as corn in all its glorious variations. Note: I mentioned earlier that the Mission is not immune to gentrification and so I’ve purposely omitted any mention of the cool and hip places that have set up shop over the past few years. But if you want to check them out, just walk on Valencia Street between 14th and 21st Street.

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/La-Tacquaria.jpg” caption=”Carne Asado Burrito at La Taqueria”]

The Castro

Granted, the Castro itself has also become a tourist hotspot, but since I’ve lived in this area for many years, I can tell you a few things that are definitely off the beaten path: one of them are the Seward Street Slides. They are nested amongst the steep hills of Eureka Valley and you will have to really exercise your gluteus maximus to get there. But let me assure you that it is totally worth it: sliding down those concrete slides with almost warp speed always transports me back into my childhood! Seriously, I’m impressed that in a country that is obsessed with taking über-precautions when it comes to child play, this attraction even exists. And once you’re done playing, I recommend a visit to Café Flore. Granted, this place doesn’t offer any gastronomical highlights, yet it’s still one of the best places for people watching in San Francisco: after all, isn’t sipping on an Apérol Spritz the perfect accompaniment to a drag queen sighting!

Cole Valley

While only a few blocks away from the busy (and touristy) Haight Street, the character of this neighborhood is totally different: cozy and so cute! Seriously, every time I come down the hills leading into Cole Valley, I am mesmerized by the Victorian houses and the tranquil streets. I often use this neighborhood as starting point for a walk to Golden Gate Park: in fact, I suggest picking up a sandwich at Say Cheese (856 Cole St) for a picnic on Strawberry Hill. On the other hand, if you’re in the mood for something sweeter, a visit at The Ice Cream Bar (815 Cole St) should be on your agenda. I can only concur with fellow Yelper, Joanna M, who says the following about this old-school ice-cream parlor: “If you’re coming for ice cream, bring me back a New Orleans Hangover — a perfectly balanced float with chicory coffee syrup and sweet cream ice cream.”

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/Brownie.jpg” caption=”Brownie Sundae at The Ice Cream Bear in Cole Valley”]

The Sunset

Climate-wise, the Sunset — despite its name — is the opposite of the Mission: it’s often foggy, windy and cold. And while that might be one reason why it’s not higher on the tourist index, I like the Sunset because it’s honest and it’s truly local. The area, in fact, is divided into the Inner and Outer Sunset. The former has its epicenter around 9th & Irving where you’ll find a plethora of great, local businesses: go check out the Golden Bear Trading Company, which started out as a not-much-loved small corner store and has over the recent years picked up so much Yelp love that it is now said to be one of San Francisco’s best places to get a filter coffee. (Although the real secret is their Turkish coffee!) My recommendation would be to next hop on the N-Judah and take it all the way down to Ocean Beach: the far corner of the Outer Sunset. The blocks between 42nd and 48th Avenues have witnessed a true revival over the last few years and are now featuring some of San Francisco’s trendiest shops and restaurants. And while not “trendy” in a hipster-sort-of-way, my to-go place is the Java Beach Café (1396 La Playa St): I usually come here before embarking on a stroll by the ocean. Their bonfire sandwich with a side of homemade coleslaw represents the perfect picnic at the beach!

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/o-1-2.jpg” caption=”The Java Beach Café at the turnaround of the N-Judah Line”]

The Richmond

If — after finishing your picnic at Ocean Beach — you then stroll northward, you’ll eventually get to the Outer Richmond. This is mostly a residential area, but with pockets of vibrant local businesses. One of these pockets is called Balboa Village and in it you’ll find Cassava (3519 Balboa St), a down-to-earth yet chic restaurant, which my friend introduced me to recently. I heartily concur with fellow Yelper, Alex B, who writes: “The place itself was casual, yet the experience is not – the menu has great variety and the people who work here love their jobs. The casual feeling turns to one that makes you feel like you’re at a fancier place, because the people here really take care of you to make sure you’re enjoying you time.” And since there’s an Outer Richmond, there surely must be an Inner Richmond: correct! The Inner Richmond’s best kept secret is the Clement Street Farmers Market, which boasts not only an opportunity to buy fresh produce, but it is also a great place to observe the San Francisco residents in their local habitat. (The street musicians will provide the perfect soundtrack.)

[full_image img=”https://www.yelpblog.com/wp-content/uploads/2016/04/o-5.jpg” caption=”Pork Rib Hash at Cassava in the Balboa Village”]

 

Intrigued to discover more of San Francisco’s non-touristy areas? — Make sure you’ve downloaded the Yelp App and add me as your friend — the two of us will be your key to all the truly local spots in San Francisco. Additionally, I recommend downloading the Detour App and purchasing the walking tours of San Francisco. These tours are narrated by San Francisco locals and even as a local myself I have learned so much about this fantastic City by the Bay…Enjoy!

[cta_button url=”ulibilke.yelp.com” text=”Friend Me” type=”primary”]

[cta_button url=”https://www.yelp.com/mobile” text=”Download the Yelp App” type=”primary”]

[cta_button url=”https://www.detour.com/san-francisco” text=”Download the Detour App” type=”primary”]

[inline_half_col img=”https://www.yelpblog.com/wp-content/uploads/2016/04/o-3-1.jpg”]

[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_unknown 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='/life-at-yelp/living-la-vida-local-in-san-francisco/#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' >Phone</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_unknown 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='/life-at-yelp/living-la-vida-local-in-san-francisco/#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>