President Donald Trump, at his Michigan rally on Tuesday night marking 100 days in office, gave a shout-out to his traveling groupies from the campaign trail. There was “my friend, Blacks for Trump,” the guy in the brick-patterned suit he identified as “Mr. Wall,” the group of “beautiful women” from North Carolina and the “Front Row Joes.”

“I miss you guys,” he said. “I miss the campaign.”

I believe him.

Those were simpler times, when he could make up nonsense claims about how Joe Biden, “the worst president in history,” had turned the United States into a “failing nation” and a “third-world country” - and could present an alternative in which he himself would end the Ukraine war in 24 hours, spread peace across the planet and make a booming U.S. economy the envy of the world.

After 100 days on the job, Trump has found the hard work of governing to be less pleasant. His tariffs have destabilized markets and brought historic levels of pessimism to American businesses and consumers. His policies have alienated allies and emboldened Russia and China. He has the lowest approval rating that any president in generations has experienced at this stage of his presidency.

So what did Trump do to mark his 100th day in office? He renewed his campaign against Biden.

“What’s better, Crooked Joe or Sleepy Joe?” he asked his supporters in Michigan. “Ready? A poll!”

Having ascertained from the crowd that they preferred the moniker “Crooked Joe,” Trump revived a favorite campaign story about his retired former opponent. “He goes to the beach, right? And he could fall asleep … drooling out of the side of his mouth. And he’d be sleeping within minutes.” The story went on in disjointed fashion: “Carrying the aluminum chair — you know, the kind that’s meant for old people and children to carry? It weighs, like, about four ounces … He’d be in a bathing suit. Somebody convinced him that he looks great in a bathing suit.”

Trump invoked Biden’s name 21 times on Tuesday night. By comparison, Trump made just two mentions of the economy in an hour and a half, and seven of inflation.

Here was a president with so little to say about his own achievements that he dwelled on the imagined failures of another man: “Sleepy Joe, the worst president in history. … ”

On some level, Trump must have known it wouldn’t really work to blame Biden for his own problems. Recounting a conversation with an appointee about the price of eggs, Trump said the price would have to come down, because “nobody is going to believe me when you get out there that it’s Sleepy Joe Biden’s fault.”

And yet that’s just what Trump spent the night doing. For 100 days, he has run the country with authoritarian sweep, unconstrained by Congress or by concern for what is legal or constitutional. If things aren’t going well, he has nobody to blame but himself.

Yet he looked everywhere for villains to take the fall. He mocked “Kamala, Kamala, Kamala” and “lunatic” Bernie Sanders “going around with AOC.” He blamed “fake polls” put out by the “crooked people” in the media. He cited the “totally crazy” backbenchers who want to impeach him and imagined that “the radical Democrat Party is racing to the defense of some of the most violent savages on the face of the Earth.”

He recited his grievances as if the months and years had never passed: Democrats “tried to cheat” in 2024. They “tried to jail your president.” To his familiar list of persecutors, he added a few new entrants: “grandstander” Republicans, the Federal Reserve and “communist, radical left judges.”

Even so, he insisted that he presided over “the most successful first 100 days of any administration in the history of our country, and that’s according to many, many people.” By “many people,” he apparently meant Stephen Miller, for the deputy chief of staff joined Trump on the stage and shouted at the crowd that Trump is “the greatest president in American history!”

The crowd cheered for his inventions. They cheered for Elon Musk and Pete Hegseth. They cheered for a video showing migrants, deported without due process, being humiliated at a prison in El Salvador. They cheered him for pardoning the “political prisoners” who attacked the Capitol. They cheered when a junior aide joined him onstage and asked, “Trump 2028, anybody?”

The rally began, as during the campaign, with the song “God Bless the USA” and ended with Trump doing his dance to “YMCA.” Supporters waved placards proclaiming a new “golden age.”

And yet, the magic was gone. The pool traveling with Trump’s motorcade found relatively few supporters lining the route. Attendees started trickling out of the arena 30 minutes into his speech and continued doing so over the next hour.

Perhaps they had come seeking reassurance about their present troubles — only to hear from a man mired stubbornly in the past.