Bad Bunny made history again last night, as the first Spanish-language headliner of Coachella. He opened his set with a pre-recorded monologue in Spanish expressing his gratitude for getting the chance to give this historic performance, and at one point he asked the crowd if they prefer he speak in English or Spanish, to which the crowd responded by cheering for the latter. He played for two hours, with appearances from Post Malone (who had some technical difficulties), Jhayco, Jowell & Randy, and Ñengo Flow, and his set also featured dancers, elaborate visuals, an on-screen tribute to the styles of Caribbean music that Bad Bunny's music is inspired by, a jet ski, and more. His hits-filled set opened with "Tití Me Preguntó" and was heavy on songs from last year's excellent Un Verano Sin Ti, and he also did other fan faves like "DÁKITI," "Yo Perreo Sola," "La Canción," "Si Veo a Tu Mamá," "Estamos Bien," his verse from Cardi B's "I Like It," and more. From The Guardian's review:

The ambition – all the guests, the Latin music 101 interludes, the spotlight on dancers and the forefathers of reggaeton – was held together, ultimately, by staggering charisma. Bad Bunny beckons, commands, opens his heart, and the people listen, whether they understand Spanish or not. I haven’t seen a superstar finale with as few phones in the air as in his final number, Después de la Playa, a sexy come-on with a driving mambo beat. Some people filmed; everyone else danced. Bad Bunny exited the stage and the band kept playing, the dancers still flexing, people still mambo-ing, the party still going even as it was ending.

Watch Bad Bunny's full set by rewinding the livestream, which is embedded below, and check out his full setlist:

Bad Bunny @ Coachella 2023 Setlist (via)
Tití me preguntó
Moscow Mule
Efecto
Neverita (Set Change)
Si Veo a Tu Mamá (New version)
La Difícil
La Santa (With intro of "A Tu Merced")
Vete (With intro of "Pero Ya No")
Otra noche en Miami (With intro of "Ser Bichote" / shortened)
Estamos Bien (with Intro Ni Bien Ni Mal)
Si Estuviésemos Juntos
Te Boté (Remix) (New version/ shortened)

Interlude (Salsa Mix: Las Tumbas/ Aguanile/ Brujería)

I Like It (Cardi B cover) (Shortened)
El apagón
Interlude (Reggaeton History Interlude)
Safaera (with Jowell & Randy)
Yo Perreo Sola
Un coco

Acoustic:
La canción (J Balvin & Bad Bunny cover) (with Post Malone)
Yonaguni (with Post Malone) (Acapella due to technical problems with the guitar.)

B Stage:
DÁKITI (Bad Bunny & Jhayco song) (with Jhayco)
Tarot (with Jhayco)
No me conoce (Jhayco song) (with Jhayco)
Callaíta

A Stage:
Me porto bonito
Después de la playa

More From Brooklyn Vegan