Seventeen-year-old Jade Nguyen, a Vietnamese American from Philadelphia, arrives in Đà Lạt, Vietnam, with her 13-year-old sister Lily to spend five weeks at a French colonial house their estranged father, Ba, is renovating into a bed-and-breakfast called Nhà Hoa (Flower House). Jade has lied to her mother about receiving a full scholarship to the University of Pennsylvania; she actually needs Ba to cover the remaining tuition. Ba's condition is simple: Stay the summer and the money is hers. He left the family four years ago without child support, while their mother works grueling hours at a nail salon.
Ba introduces his business partner Ông Sáu ("Ông" being a Vietnamese honorific akin to "Mr.") and Ông Sáu's niece Florence Ngo, who attended boarding school in Connecticut and will help Jade build the house's website. Jade resolves to avoid forming attachments and focus solely on the deal. She privately reflects on her bisexuality, a secret known only to her ex-best friend Halle, and on the childhood diary Ba read and mocked when she was seven, which taught her to hide who she really is.
From the start, Nhà Hoa is oppressive. Ba has painted the windows shut, trapping heat inside. Dead insects accumulate on Jade's windowsill every morning. The refrigerator consistently rots food. Short interstitial chapters narrated from the house's perspective reveal that Nhà Hoa is sentient, hungry for inhabitants, and delighted by the family's arrival. Jade begins experiencing nightly sleep paralysis, waking unable to move and spitting out an insect leg. One night she finds a young Vietnamese woman at the open refrigerator who offers palms full of maggots, repeating "Đừng ăn" (Don't eat). Jade flees, convinced it was a nightmare.
During a fishing trip, Ba reveals that Bà Cổ, his maternal grandmother and Jade's great-grandmother, was born at Nhà Hoa and worked there as a child. The Dumont family, French colonial officers, originally owned the house, and Ba wants to restore it as a family legacy. The rare vulnerability softens Jade, and they share a genuinely happy evening cooking dinner together. When Jade later tries to tell Ba she saw a ghost, he dismisses her as a liar trying to escape the deal. Furious, she recruits Florence to stage fake hauntings: writing messages on mirrors, scraping branches against windows, and hiding Bluetooth speakers to play eerie music.
Ba's white American investors, Alma, who holds a PhD in French Indochina history, and her husband Thomas, visit for dinner. Alma fixates on the house's first proprietor, Marion Dumont, a linguist who became agoraphobic and never left the house, dismissing the Vietnamese workers who lived there as mere attendants. Meanwhile, in dream-visions, the ghost from the kitchen identifies herself as Cam and shares memories by touching Jade's temple. Jade learns that Cam married Pierre Dumont, the twin brother of Marion's husband Roger, trapping her in the colonial household. Marion, cruel and deteriorating, tormented Cam and called the Vietnamese servants parasites.
Jade discovers the attic, where old photographs show a formal portrait with Marion at its center and Bà Cổ peeking from the background curtains, branded with the inscription "the savage ruined it." Another photograph shows Cam in a bridal áo dài, a traditional Vietnamese garment, beside Pierre. Events then escalate beyond what the fake haunting can explain. Smart bulbs activate on their own. The chandelier in Lily's room explodes, showering her with glass. Lily begins sleepwalking, carving a door frame and muttering about measuring height, echoing markings once used to record the Dumont children's growth. Marion appears to Jade during sleep paralysis, pressing her into the mattress and whispering "My heart is here, little rat" as her neck stretches grotesquely.
Jade and Florence grow closer, sharing an evening at the night market and later talking until dawn at Florence's home. Through continued visions, Jade pieces together the house's true nature: Nhà Hoa is an active participant in the haunting, having absorbed the character of its inhabitants over a century. Ba confronts Jade after discovering through hidden cameras that Florence entered the house before the lights malfunctioned. Lily overhears and learns Jade came for money, not family. That night, Jade finds Ba unearthing human skulls beneath a dying hydrangea, worms writhing from his eye ducts. She realizes Ba is under Marion's influence and discovers he has been supplementing meals with ground insects. The refrigerator was never broken: Cam had been rotting the food to prevent the family from consuming parasites. Jade also learns Florence has been stealing Ba's renovation notebooks to gather evidence of financial fraud, and she storms out feeling betrayed.
On July 28th, Jade's 18th birthday and the house's grand opening, Florence arrives and they share their first kiss. Jade panics when the sensation triggers a memory of Marion's decaying body and pushes Florence away. At the party, Ba signals Jade to launch the website. Instead of the booking page, Jade has published a detailed exposé documenting the colonial violence embedded in Nhà Hoa, the Dumonts' cruelty, Cam's death, and the names of those who suffered there. No one believes her. Afterward, Ba reveals all his money is invested in the house and there was never a plan to pay her tuition. He tells Lily that Jade was the one who told him to leave four years ago: When Ba, distraught over his mother's death, asked 13-year-old Jade whether it was okay for something unhappy to go, she said yes. Ba slaps Jade. Lily, devastated, runs out.
Jade flees to the woods. Cam visits in the dream-limbo and warns her not to return, but Jade refuses to abandon her family. She returns with gasoline and pours fuel on the porch. Resisting the house's whispered promises, she calls Mom and confesses everything: the scholarship lie, telling Ba to leave, and that she likes girls. Mom replies: "You're my daughter, no matter what." Jade also leaves a voicemail for Halle, admitting she kissed Marcus—Halle's longtime crush—not out of desire but to deflect attention from her own identity, and that choosing fear over their friendship was wrong.
Alma, grief-stricken because Thomas died in a car accident that Cam orchestrated by controlling Jade's sleepwalking body, ambushes Jade. Inside the house, Jade finds Florence tied up, Ba cooking under compulsion, and Lily moving in a daze. Marion descends the staircase and reveals a final truth: Cam, under Marion's influence, stabbed Pierre before being led to the balcony to hang. Cam was both victim and killer, and she manipulated Jade throughout the summer out of loneliness and fear of being left alone with Marion. Mom bursts in and strikes Ba with a frying pan. They free Florence and flee. Alma throws her lighter at Jade, whose fuel-soaked áo dài ignites. Ba intercepts the flame, shielding his daughter. Burning, he tells Jade "Ba thương con" (Dad loves you) and asks her to come with him. Jade refuses. Ba walks into Nhà Hoa and closes the door. The house burns.
Two months later, the family stands at a bus station in Đà Lạt. Jade and Lily have been treated with antiparasitic drugs. The fire is officially ruled an accident after Alma retains lawyers. Neither Jade nor Florence is going to college; both are taking gap years. Jade keeps Ba's wallet on her at all times. She tells Florence she loves her. Florence flinches, and Jade laughs. They kiss one last time before parting. A final interstitial from the house's perspective closes the novel: Nhà Hoa is ash, Marion's ghost still walks its remains, and the narration promises, "There will always be another."