Thousands of protesters were in a celebratory mood across San Francisco on Saturday, claiming victory over a right-wing group that, in the face of large-scale resistance, canceled a rally near the Golden Gate Bridge and a subsequent news conference.
The rally's cancellation didn't stop counter-protesters and anti-fascists from showing up in force with a message that far-right groups, including neo-Nazis and white supremacists, are not welcome in this liberal, diverse city.
Droves of people filled the streets around Alamo Square Park, then marched through the Mission District with blaring party music as they fired off chants in opposition to the Trump administration, racism and the violence that plagued Charlottesville, Va., during a rally earlier this month.
"We defeated hate!" one man shouted.
"This is a victory rally!" another man yelled. "This is a victory over white supremacy!"
San Francisco Mayor Ed Lee said he was proud of the people who came out to march.
"They made sure that the themes of love and compassion dominated over hate speech," Lee said at an evening news conference.
He added, "This will continue to happen because it's part of the DNA of people who live and work in San Francisco, and I'm extremely proud of everybody's participation here."
There was just one arrest, for public intoxication, the San Francisco Police Department said.
"What you saw today was a city that came together," said SFPD Chief Bill Scott. "You saw a city that communicated and coordinated, and you saw an appropriate response from the Police Department."
San Francisco officials had been concerned that violence could break out, as it has in the Bay Area before, between far-right and anti-fascist activists after the right-wing group Patriot Prayer announced a Saturday rally at Crissy Field.
Joey Gibson, the group's founder and organizer of the event, canceled the rally Friday, saying he feared violent retaliation from anti-fascist protesters. He then scheduled a news conference at Alamo Square Park for Saturday afternoon, but that too was canceled when city officials blocked access to the park.
Gibson ended up holding a news conference in Daly City with Kyle Chapman, the far-right activist and veteran of violent Bay Area protests who is known as "Based Stickman." The two railed against the media and politicians, saying those forces combined to create unsafe circumstances for the rally.
Gibson has denounced white supremacists and urged nationalist figures, including Richard Spencer, to stay away from the planned event.
But Gibson's past Patriot Prayer events in Seattle and Portland, Ore., have attracted violent individuals and white supremacists, according to the Southern Poverty Law Center. Jeremy Christian, a man accused of stabbing two people to death on a Portland train after they tried to stop a man from harassing Muslim women, attended one of Gibson's events, the center has said.
London Breed, president of the San Francisco board of Supervisors, announced Saturday morning that Alamo Square Park would be closed to the public. Workers erected a fence around the park.
Later, dozens of demonstrators shouting, "Let us in!" and holding signs that read "Resist the right" stood near the entrance to the park, surrounding a few dozen police officers on motorcycles wearing riot helmets.
One protester wearing a "Black Lives Matter" shirt, who said he was a teacher but asked not to be identified, said the demonstration was about making racists feel unwelcome in San Francisco.
"We're here to stand up to white supremacy," he said. "This is just one day. There's white supremacy in our everyday lives."
The crowd appeared to have completely taken over the area where Gibson's news conference was to have been held. Many said they felt compelled to take a stand against far-right groups.
"We thought it was important to put our bodies on the line," said Kelly Schultz, a 27-year-old high school teacher from nearby Richmond. "I don't really have an opinion on what they're doing, but I thought it was important to be out here against it."
In a live broadcast streamed on the online site Periscope, Gibson complained about how Lee, U.S. House Minority Leader Nancy Pelosi (D-San Francisco) and the media had unfairly lumped his group in with white supremacists. He also criticized officials for not calling out the violent acts of anti-fascist protesters, known as antifa, at other rallies.
"Do you stand with antifa or not? Ask your mayor. Ask Nancy Pelosi. They're using them as tools," Gibson said. "They're afraid to speak against them."
Asked at a news conference about Gibson's comments that officials had conflated his group with white supremacists, Lee said far-right groups "tried that message in other places, like Portland and Charlottesville," only to have violence occur.
"If people want to have a stage in San Francisco, they'd better have a message that contributes to people's lives rather than find ways to hurt them," the mayor said. "That's why I think certain voices found it very difficult to have their voices heard today."
The Times has repeatedly published Gibson's contentions that his group was not affiliated with white supremacists and that his comments that the list of speakers for the "Freedom Rally" included a black man and a transgender woman. Chapman ignored requests for comment from The Times and suggested reporters could "go to hell" in a Twitter tirade earlier this week.
Under close watch of U.S. Park Police, about two dozen demonstrators marched through Crissy Field, about three miles from Alamo Square Park, on Saturday afternoon with banners and chants against President Trump.
The demonstrators paid little mind to Terri Spencer and her companion, who wore a Trump/Pence cap. Spencer, 53, a Bay Area resident, said she had planned to go to the Freedom Rally "to support our friends."
When it was canceled, she showed up anyway to follow the counter-protest march.
It is just misguided hate," she said. "They will attack us for wearing red, white and blue. I just want this country to be united, you know, like it used to be."
Police asked marchers to stay in a small group, but otherwise did not interfere with the demonstration.
Later, a few demonstrators and Trump supporters got into a shouting match at the park, as police in riot gear stood by.
"You're the KKK!" someone shouted at a man in a red "Make America Great Again" cap.
"I'm Puerto Rican!" the man yelled back.
On Friday, Gibson and the organizer of a similar rally set for Sunday in Berkeley both said they were canceling the events due to threats of violence from anti-fascist groups.
In an earlier statement, Lee said the permit for the Crissy Field event had been rescinded. But late Friday, a group called the American Freedom Keepers created a Facebook group urging people to show up for the canceled event anyway.
Officials in San Francisco and Berkeley said they were still preparing for street clashes, and counter-protesters at the rally in the Mission District urged demonstrators to make their presence felt in Berkeley on Sunday.
As of Saturday morning, the Facebook page for Sunday's "Say No To Marxism" rally in Berkeley listed the event as canceled. The organizer, Amber Cummings, said in a Facebook message to The Times on Friday that she was "asking that no one come to my event."
Cummings cited "grave concerns for the safety of the people attending my event."
Cummings wrote that she still planned to go to Berkeley's Martin Luther King Jr. Civic Center Park on Sunday but that "I will attend this event alone."
Times staff writers Deborah Netburn and Hailey Branson-Potts contributed to this report.
5:25 p.m.: This article was updated with more comments from demonstrators.
4:55 p.m.: This article was updated with more comments from organizer of Freedom Rally.
3:55 p.m.: This article was updated with new details about the demonstration near Alamo Square Park.
3:20 p.m.: This article was updated with additional information about protests in San Francisco, comments from a press conference held by the founder of Patriot Prayer and additional background on the far-right groups who canceled events in the Bay Area on Saturday.
2 p.m.: This article was updated with more details about demonstrations.