About 30 people, some from as far away as North Carolina, clustered on Independence Mall Saturday morning for a “We The People” rally, billed as an event for “Patriots, Militia, 3%, [and] constitution loving Americans.” Across Market Street, hundreds of protesters began amassing in the hours leading up to the rally, waving signs with slogans like “No Phascists in Philly.”

A maze of barricades and swarms of police kept the two sides shouting distance from each other. Many of those protesting couldn’t actually hear what was being said at the “We The People” rally over the loud chanting and music of the protest.

In the build-up to the event, speculation that white supremacists and members of the Proud Boys would attend — and bring violence with them — swirled online. An online petition resulted in the firing of one former Comcast employee who appeared to be slated to work security for the rally, while another called for the National Park Service to pull the event’s permit.

On Saturday, the rally and protest were both contained and largely violence-free. Isolated skirmishes erupted as the two sides broke up and started drifting home; police took away a handful of people but did not yet confirm any arrests.

Inside the small pen where the rally took place, speakers passed the microphone, alternatively calling for unity, a return to constitutional values and criticizing the protesters for being intolerant. They even brought up local issues such as Philadelphia’s tax on sweetened beverages.

“This is a real group of people, there’s no fascists,” said speaker Tye Smith. “All lives matter, we all need to come together and stop with the nonsense.” Attendees wearing Flyers gear, Make America Great Again hats, and waving American flags, cheered.

Speaker inside the We The People rally speaks against the sugar tax, says he loves everyone, “even the people across the street,” meaning the counter-protesters. pic.twitter.com/Gqzi0rLBj8 — Laura Benshoff (@LEBenshoff) November 17, 2018

“The government isn’t there to give you stuff, they’re there to protect you from harm,” said attendee Kevin Anderson from Chester County, sporting a camo Trump 2020 hat. He carried a sign comparing former President Barack Obama to Adolf Hitler and Vladimir Lenin.

On the rally itself, he said: “We have the right to share our opinion just like they do, but we shouldn’t shout each other down across the street.”

For a first part of the rally, reporters were kept away and could not hear speeches. But once journalists were allowed in, those speaking at the rally focused on their support for the Constitution, President Trump and conservative values. The speeches focused on themes such as “Don’t Tread on Me” not the alt-right chants that filled the 2017 “Unite the Right” gathering in Charlottesville, Virginia.

The diverse group of protesters across the street coalesced near the building housing the Liberty Bell, separated from the rally by several rows of metal barricades. Their politics differed, but they shared a basic refusal of what they saw as a rally promoting hate.

“Nazis shouldn’t have a safe space in any area,” said Joe Cox, a bike courier and Philadelphia City Council At-Large candidate.

This is Joe Cox. He is protesting the We The People rally because he says “Nazis shouldn’t have a safe space.” pic.twitter.com/ceAq2gpBoU — Laura Benshoff (@LEBenshoff) November 17, 2018

“We have a very wimpy group over on the other side,” said Jeffrey Solow of Elkins Park, pointing at the rally across the street. “Philadelphia certainly showed that there’s more people with these sentiments than with those sentiments.”

Protest groups had been calling attention to the event as a magnet for white supremacists and known members of organizations dedicated as “hate groups,” by the Southern Poverty Law Center, such as the Proud Boys. On Saturday, many protesters seemed to be reacting to that message, even as the event itself stayed mostly to conservative talking points. Purported members of the Proud Boys did attend, although they kept their distance from organizers.

Over the course of about four hours, the two sides largely spoke to their own constituents, gesturing to the other group to make a point.

As the rally wound down, event organizer Holly Delcampo praised attendees and called on them to exit peacefully. “We just proved that we are the tolerant ones, we are the patient ones, we are the non-racist ones,” she said.

Across the street, where protesters outnumbered the rally 10:1, came a constant stream of curses, heckles, and invective. “Assholes! Assholes!” was given a backbeat by a brass-and-drum band, which also spontaneously played instrumentals like “Beat It” by Michael Jackson, the Darth Vader theme from Star Wars, and the Channel 6 Action News theme.

Many protesters adopted the image of Gritty, the new Flyers mascot, to express their views. Mike Gerkovich of West Philadelphia made his own protest sign, a painting of the tarot card for “judgement.” In the place of a trumpeting angel he painted Gritty.

“He’s become an icon of the left,” said Gerkovich. “Like-minded people have made him an ally.”

Rally-goers trickled out in small groups, and in some cases encountered protesters which lead to altercations. Two attendees, Tye Smith and Zach Rehl, were given a police escort to the Philadelphia Police Headquarters at 8th and Race Streets, where they waited to be picked up and driven away. The first two cars — an Uber, then a taxi — refused to pick them up when the drivers encountered a swarm of cameras and jeering counter-protesters.

Peter Crimmins contributed to this report.