[{"@context":"https:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/equallywed.com\/san-francisco-city-hall-wedding-frankie-ryan\/#BlogPosting","mainEntityOfPage":"https:\/\/equallywed.com\/san-francisco-city-hall-wedding-frankie-ryan\/","headline":"Frankie and Ryan\u2019s Romantic San Francisco City Hall Wedding","name":"Frankie and Ryan\u2019s Romantic San Francisco City Hall Wedding","description":"From a cinematic 'Notting Hill' inspired proposal in London to a timeless ceremony under the dome, explore Frankie and Ryan\u2019s elegant San Francisco City Hall wedding. Discover how this couple celebrated their love story at the same local restaurant where they had their very first date.","datePublished":"2026-01-20","dateModified":"2026-01-20","author":{"@type":"Person","@id":"https:\/\/equallywed.com\/author\/kpalladino\/#Person","name":"Kirsten Palladino","url":"https:\/\/equallywed.com\/author\/kpalladino\/","identifier":2,"image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/76421eab241dc39d43a493849d7bc676e4b1c60c6b1167f727466599b6882eca?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/76421eab241dc39d43a493849d7bc676e4b1c60c6b1167f727466599b6882eca?s=96&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Equally Wed","logo":{"@type":"ImageObject","@id":"http:\/\/equallywed.com\/wp-content\/uploads\/2018\/08\/equally-wed-lgbtq-weddings-logo.jpg","url":"http:\/\/equallywed.com\/wp-content\/uploads\/2018\/08\/equally-wed-lgbtq-weddings-logo.jpg","width":218,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/equallywed.com\/wp-content\/uploads\/2026\/01\/san-francisco-city-hall-gay-wedding-frankie-ryan.webp","url":"https:\/\/equallywed.com\/wp-content\/uploads\/2026\/01\/san-francisco-city-hall-gay-wedding-frankie-ryan.webp","height":2100,"width":1400},"url":"https:\/\/equallywed.com\/san-francisco-city-hall-wedding-frankie-ryan\/","about":["Real LGBTQ+ Weddings"],"wordCount":780,"keywords":[" city hall wedding","Bumble","San Francisco","tuxedos"],"articleBody":"We’re swooning over Frankie and Ryan’s San Francisco City Hall gay wedding photos. This celebration of love proves that sometimes the most romantic moments in life truly feel like they belong on the silver screen.The Proposal: A Cinematic Start in LondonThe road to the altar began with a surprise that felt like a scene from a movie. “I proposed on a surprise trip to London,” Frankie says. “One of our recent favorite movies is Notting Hill and I proposed in front of the book store from the movie. It was followed by a surprise Sabrina Carpenter concert.”The Love Story: From a First Date at GreensLong before their London engagement, the couple’s story started with a digital connection and a memorable first meal. “We met on Bumble like many other couples,” Frankie says. “We talked over text for weeks before setting up our first date. Ryan was vegetarian so I picked a vegan restaurant called Greens in San Francisco, which is where we had our reception lunch. At first sight he took my breath away.”While the date was an instant success, a moment of confusion at the end nearly led Frankie to believe otherwise. “I thought the date went well until the check came… when I put my card down and the waiter went to grab the check, Ryan said ‘No, no! We are definitely splitting it’ and put down his card. I thought, ‘Well, he definitely didn’t like the date and doesn’t want to see me again.'”Thankfully, Ryan quickly cleared the air. “He asked me to go on a long walk after the date and insisted on driving me home,” Frankie says. “At my front door, he made sure to lock down a time for a second date on the spot. I said goodbye and reached for the door. It was like a movie moment when he gave my arm a gentle tug and gave me a look. The look said ‘am I not going to get a kiss at the end of the date?’. I leaned in and had our first kiss before saying goodbye.”As a queer writer, I love how their story comes full circle\u2014from a nervous first date at Greens to celebrating their reception in that very same space as husbands.The Big Day: A Timeless City Hall CelebrationWhen it came time to plan their wedding, the couple focused on intimacy, meaningful locations, and inspiration from the wedding ending in Sex and the City: The Movie. The grooms wore custom tuxedos as their guests looked on, all clad in neutral tones, at the grooms’ request. Classic white florals flanked them at their altar, while violinist Rose Crelli serenaded the couple.“We wanted a simple and elegant San Francisco City Hall wedding with our immediate family and one friend each,” says Frankie. Above all, they wanted the wedding to be about “the ones we love the most and something that would be timeless when looking back. We had our quick wedding at City Hall and went to Greens for a lunch reception.”Frankie and Ryan certainly shine like movie stars in these portraits by This Modern Romance. As they step into this new chapter, we wish them a lifetime of “movie moments” that continue to take their breath away.Thoughts on Queer WeddingsThe gay grooms didn’t encounter any challenges planning their LGBTQ+ wedding. Instead, the process felt effortless from start to finish. “Everyone from start to finish was so welcoming and made the process incredibly smooth,” says Frankie.Frankie\u2019s gratitude for the journey toward marriage equality is a beautiful reminder of why these days matter so much. “As LGBTQ+ people, we don’t take the right to be married lightly. I am thankful for those who paved this path before us to allow us to have a family and be with who we love.” Love in Every Stitch: Generation Tux Brings Inclusive Style to Every CoupleSearch the Equally Wed directory of LGBTQ+ inclusive wedding vendors.jQuery(document).ready(function($) {SABAI.init($(\"#sabai-embed-wordpress-shortcode-3\"));}); Select categoryBar ServicesBeauty, Grooming and HealthBusiness Owner Self-Identification-Asian-owned-Black-owned-Immigrant-owned-Latinx-owned-LGBTQ+-Trans and\/or nonbinary-Woman-owned businessCateringCeremony MusicCounseling and TherapyDance LessonsDestination WeddingsEqually Wed Pro LGBTQ+ Inclusive CertifiedEvent RentalsFashionFavors and GiftsFlowers and Floral DesignHotelsJewelryLGBTQ+ Inclusive and AffirmingLighting and DecorMusic, DJs and EntertainmentOfficiantsPhotographyPlanningPlatinum Wedding VendorsRestaurantsStationeryTravelUnique ServicesVenuesVideographyWedding Cakes & Sweets jQuery(document).ready(function($) { $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search input').keydown(function(e){ if (e.keyCode == 13) { $(\"#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-submit .sabai-btn\").click(); } }); var category_templates = {}, categories = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: 'https:\/\/equallywed.com\/sabai\/taxonomy\/termlist?bundle=directory_listing_category&parent=0&__type=json' }, limit: 5 }); categories.initialize(); category_templates.header = 'Suggested Categories'; category_templates.suggestion = function(item){return ' ' + item.title}; var listing_templates = {}, listings = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('title'), queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { wildcard: 'QUERY', url: 'https:\/\/equallywed.com\/sabai\/directory\/listinglist?query=QUERY&__type=json&bundle_type=directory_listing&num=50' }, limit: 50 }); listings.initialize(); listing_templates.header = 'Suggested Listings'; listing_templates.suggestion = function(item){return ' ' + item.title}; $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-keyword input').typeahead( {highlight: true, minLength: 1} , {name: 'listings', displayKey: 'title', source: listings.ttAdapter(), templates: listing_templates} , {name: 'categories', displayKey: 'title', source: categories.ttAdapter(), templates: category_templates} ).bind('typeahead:selected', function(obj, datum, name) { if (name === 'listings') window.location.href = datum.url; if (name === 'categories') { window.location.href = datum.url + '?address=' + encodeURIComponent($('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location input[name=\"address\"]').val()); } }); var geocoder, location = $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location input[type=text]'); var autocomplete, location_templates = {}, findLocation = function(q, cb) { if (!google.maps.places) return; if (!autocomplete) autocomplete = new google.maps.places.AutocompleteService(); autocomplete.getPlacePredictions({input: q, types: ['(regions)']}, function(predictions, status){ if (status == google.maps.places.PlacesServiceStatus.OK) { cb(predictions); } }); }; location_templates.header = 'Suggested Locations'; location_templates.suggestion = function(item){return ' ' + item.description}; var state_templates = {}, states = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: 'https:\/\/equallywed.com\/sabai\/directory\/locationlist?column=state&addon=&__type=json' }, limit: 5 }); states.initialize(); state_templates.header = 'Suggested States \/ Provinces \/ Regions'; state_templates.suggestion = function(item){return ' ' + item.value}; var city_templates = {}, cities = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: 'https:\/\/equallywed.com\/sabai\/directory\/locationlist?column=city&addon=&__type=json' }, limit: 5 }); cities.initialize(); city_templates.header = 'City'; city_templates.suggestion = function(item){return ' ' + item.value}; var zip_templates = {}, zips = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: 'https:\/\/equallywed.com\/sabai\/directory\/locationlist?column=zip&addon=&__type=json' }, limit: 5 }); zips.initialize(); zip_templates.header = 'Suggested Zip Codes'; zip_templates.suggestion = function(item){return ' ' + item.value}; var country_templates = {}, countries = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: 'https:\/\/equallywed.com\/sabai\/directory\/locationlist?column=country&addon=&__type=json' }, limit: 5 }); countries.initialize(); country_templates.header = 'Suggested Countries'; country_templates.suggestion = function(item){return ' ' + item.value}; location.typeahead( {highlight: true, minLength: 1} , {name: 'location', displayKey: 'description', source: findLocation, templates: location_templates} , {name: 'city', source: cities.ttAdapter(), templates: city_templates} , {name: 'state', source: states.ttAdapter(), templates: state_templates} , {name: 'zip', source: zips.ttAdapter(), templates: zip_templates} , {name: 'country', source: countries.ttAdapter(), templates: country_templates} ).bind('typeahead:selected', function(obj, datum, name) { if (name !== 'location') { $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location input[name=\"address_type\"]').val(name); } }).bind('keyup', function(e) { if (e.keyCode !== 13 && e.keyCode !== 27 && e.keyCode !== 32) { $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location input[name=\"address_type\"]').val(''); } }); $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-radius-trigger').click(function(e){ var $this = $(this), container = $this.parent(), radius = container.find('input[name=\"directory_radius\"]'), slid; SABAI.popover( $this, { html: true, container: container, placement: function (pop, ele) { return window.innerWidth - $(ele).offset().left > 300 ? 'bottom' : (SABAI.isRTL ? 'right' : 'left');}, title: 'Location Options', content: '' + 'Search Radius: mi' + '' + '' + ' Get My Location' } ); container.on('shown.bs.sabaipopover', function(){ if (slid) return; var label = container.find('.sabai-directory-search-radius-label strong').text(radius.val()); container.find('.sabai-directory-search-radius-slider').slider({animate: true, min: 0, max: 100, value: radius.val(), step: 1, slide: function(e, ui){ radius.val(ui.value); label.text(ui.value); }}); if (navigator.geolocation && (document.location.protocol === 'https:' || document.location.hostname === 'localhost') ) { var geocode = function (trigger) { if (trigger) SABAI.ajaxLoader(trigger); if (!geocoder) geocoder = new google.maps.Geocoder(); navigator.geolocation.getCurrentPosition( function (pos) { geocoder.geocode({'latLng': new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude)}, function(results, status) { if (trigger) SABAI.ajaxLoader(trigger, true); if (status == google.maps.GeocoderStatus.OK) { location.val(results[0].formatted_address).typeahead('val', results[0].formatted_address).effect('highlight', {}, 2000); $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location') .find('input[name=\"center\"]').val(results[0].geometry.location.lat() + ',' + results[0].geometry.location.lng()).end() .find('input[name=\"address_type\"]').val(''); } }); }, function (error) { if (trigger) { SABAI.ajaxLoader(trigger, true); } SABAI.flash(error.message, 'danger'); SABAI.console.log(error.message + ' (' + error.code + ')'); }, {enableHighAccuracy:true, timeout:5000} ); }; container.find('.sabai-directory-search-geolocate').show().click(function(e){ e.preventDefault(); geocode($(this)); }); } slid = true; }); }); $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-submit .sabai-btn').click(function(e){ var $this = $(this), form = $this.closest('form'); e.preventDefault(); form.find('[placeholder]').each(function() { var input = $(this); if (input.val() == input.attr('placeholder')) { input.val(''); } }); var submit = function(){form.submit()}; var center = $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location input[name=\"center\"]'); if (location.val() && $('#sabai-embed-wordpress-shortcode-3 .sabai-directory-search-location input[name=\"address_type\"]').val() === '' ) { if (!geocoder) geocoder = new google.maps.Geocoder(); geocoder.geocode({address: location.val()}, function(results, status) { switch (status) { case google.maps.GeocoderStatus.OK: center.val(results[0].geometry.location.lat() + ',' + results[0].geometry.location.lng()); submit(); break; case google.maps.GeocoderStatus.ZERO_RESULTS: alert('Invalid location'); break; default: alert(status); } }); } else { center.val(''); submit(); } }); });FEATURED LGBTQ+ INCLUSIVE AND QUEER AFFIRMING WEDDING VENDORSPhotographer: This Modern RomanceCeremony Venue: San Francisco City HallReception Venue: Greens RestaurantMusicians: Rose Crelli Violin"},{"@context":"https:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Frankie and Ryan\u2019s Romantic San Francisco City Hall Wedding","item":"https:\/\/equallywed.com\/san-francisco-city-hall-wedding-frankie-ryan\/#breadcrumbitem"}]}]