C

XO, Kitty trips over itself in season two

The Netflix teen drama tosses in too many new, pointless characters.

XO, Kitty trips over itself in season two

It took XO, Kitty, the Netflix teen drama spun off from the To All The Boys I’ve Loved Before movie trilogy, more than half of its first season to really find its footing. With clunky dialogue and on-the-nose voiceover narration by the titular Kitty (Anna Cathcart), exposition was clearly not the show’s strong suit.

If you need a refresher, we last left Kitty at the end of her first semester at Korean Independent School of Seoul (KISS). She got kicked out and then dumped her longtime boyfriend Dae (Minyeong Choi) because of her feelings for Yuri (Gia Kim), only to have Dae’s best friend Min Ho (Sang Heon Lee) confess his feelings for her on the plane home. There was a lot of drama! The stage had been set for season two. And yet the show’s sophomore outing suffers from the same struggles that plagued its first batch. 

“I never imagined Yuri would call her mom and get me back in, but now that I have a second chance, I’m not gonna mess it up,” Kitty narrates in the first 30 seconds of this new season. Much of the show is like this, with the voiceover or dialogue explicitly stating motives and conflicts. It’s like watching the results of the “Netflix mandate” to have characters announce what they’re doing for optimum background watching play out in real time. 

Right off the bat, season two resets the clock on a lot of the developments that wrapped up back in 2023. Kitty rejected Min Ho on the plane, so they’re back to “hating” each other. Yuri and her girlfriend Juliana (Regan Aliyah) are together, so Kitty can’t ethically share her feelings. Kitty and Dae are tentatively trying to be friends. And gay BFF Q (Anthony Keyvan) continues to be the voice of reason for everyone.

But the show also introduces several new characters: Praveena (Sasha Bhasin), another possible love interest for Kitty’s bisexual exploration; Stella (Audrey Huynh), a new roommate who sets her sights on Min Ho; Jin (Joshua Lee), one more lackluster romantic partner for Q, who deserves better; and Eunice (Ryu Han-bi), who pairs up with Dae. 

With increased screen time for Juliana, that basically makes five new characters, which XO, Kitty is not prepared to juggle along with its original five. Instead of diving into the arcs it already worked to set up, the show wastes time on these fresh, often pointless characters. And because there’s not enough time for everyone, some characters drop off for a few episodes only to pop up randomly later, and many plotlines don’t go anywhere. Unsurprisingly, season two is its strongest when the scenes stick to the original cast, with Kitty’s dynamics with Min Ho and Yuri (ones built upon from last season) being the most interesting. Min Ho’s story in particular is delicately developed, but Yuri’s clearly gets the short shrift in the back half of this season. 

XO, Kitty is still a beautiful love letter to Korea, as language, culture, food, and music are all incorporated with care. Kitty’s quest to learn more about her deceased mother and Korean family continues with more moving results. And if you came to the show because of To All The Boys I’ve Loved Before, a visit from Peter Kavinsky—the “Covey” nickname originator, which of course gets commented on—might spark some feelings of fondness (although Noah Centineo really cannot pass for 22 anymore). 

Season two also hits all the comfortable teen-show notes, with some K-drama DNA sprinkled in: a school dance, a ski weekend where everyone’s secrets come to light, a talent show with high stakes, love triangles galore, a plot for revenge, and so on. The ingredients are there, but the writing is not. And when the finale sets up a potentially more interesting future, it’s hard not to roll your eyes. XO, Kitty asked its audience to fall for that one before.

XO, Kitty season two premieres January 16 on Netflix 

 
Join the discussion...