Netflix’s teenage drama is tripping over itself

It took XO, KittyThe Netflix teen drama sprung from To all the boys I’ve loved before film trilogy, more than half of it first season to really find his footing. With clunky dialogue and endearing voiceover narration by the titular Kitty (Anna Cathcart), exposition was clearly not the show’s forte.

If you need a refresher, we last left Kitty at the end of her first semester at the Korean Independent School of Seoul (KISS). She was 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 was set for season two. And yet the show’s second outing suffers from the same struggles that plagued its first installment.

“I never imagined that Yuri would call her mom and get me back in, but now that I have a second chance, I’m not going to screw it up,” Kitty says in the first 30 seconds of this new season. Much of the show is like this where the voiceover or dialogue explicitly states motives and conflicts. It’s like seeing the results of “Netflix mandate” to have characters announce what they are doing for optimal background viewing that unfolds in real time.

Immediately, season two resets the clock on many of the developments that ended 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 cannot ethically share her feelings. Kitty and Dae try to be friends for now. 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), a more lackluster romantic partner for Q who deserves better; and Eunice (Ryu Han-bi), who couples with Dae.



With increased screen time for Juliana, that basically makes five new characters, which XO, Kitty is not prepared to juggle his original five. Instead of diving into the arcs it’s already worked to set up, the show wastes time on these fresh, often pointless characters. And because there isn’t enough time for everyone, some characters drop out for a few episodes and then randomly show up later, and many plot lines go nowhere. Unsurprisingly, season two is at its strongest when the scenes stick with the original cast, with Kitty’s dynamic with Min Ho and Yuri (the ones built on from last season) being the most interesting. Min Ho’s story in particular is gently 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 the language, culture, food and music are thoughtfully incorporated. Kitty’s quest to learn more about her late mother and Korean family continues with more moving results. And if you came to the show because To all the boys I’ve loved beforea visit from Peter Kavinsky—originator of the “Covey” nickname, which of course gets commented on—might trigger some feelings of love (although Noah Centineo really can’t pass for 22 anymore).

Season two also hits all the pleasant teen-show notes, with some K-drama DNA sprinkled in: a school dance, a ski weekend where everyone’s secrets come out, a high-stakes talent show, 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 his audience to fall for it sooner.

XO, Kitty season two premieres January 16 on Netflix