In a fantasy world populated by mages, alchemists, and magical creatures, the novel opens in the aftermath of a battle against Guy Shadowfade, a powerful dark sorcerer. Karina the Tempest, a heroic warrior, pursues Shadowfade's most feared lieutenant, the Thornwitch, into a hedge maze on the castle grounds. Instead of the fearsome combatant she expects, Karina finds a disarmed young woman sitting calmly on a bench, stripped of her thorny armor. Noticing a lock on the outside of the witch's bedroom door, Karina suspects the woman was more prisoner than willing accomplice. She declares the Thornwitch dead but spares the woman behind the persona, telling her to be good and not make Karina regret her mercy.
That woman is Violet Thistlewaite, who arrives in Dragon's Rest, a battered mountain town that spent decades under Shadowfade's oppressive rule. She carries a sentient houseplant named Bartleby, a territorial former adversary she accidentally transformed into a pothos years earlier, and jewels stolen from Shadowfade's treasury. Violet plans to open a flower shop, drawing on a secondary, weaker spring of power instead of the dark magic she wielded as the Thornwitch. This new magic stings her hands but produces beautiful, harmless flowers rather than poisonous thorns.
Violet rents the other half of a shared building from Prudence "Pru" Marsh, a warm musician, and Pru's twin brother Nathaniel Marsh, a former alchemist now running the family apothecary. Their first meeting is a disaster: Nathaniel accidentally topples crates of alchemical equipment, and Violet's magic surges in response, filling the greenhouse with flowers. Stunned by her power, Nathaniel remains cold, warning her to stay away from his equipment.
Nathaniel carries his own burdens. He left Dragon's Rest at 19 to study alchemy at the Crucible, the royal university, and spent a decade developing weapons for the Queen. When he returned to merge alchemy with his family's herbal medicine business, an experimental potion exploded, killing both his parents. Consumed by guilt, he swore off alchemy. Now he struggles to keep the apothecary afloat while hiding from Pru that their parents took out a second mortgage to fund his education, with roughly two and a half months to begin payments or lose the building.
Violet befriends Quinn, a beekeeper, and Regular Guy, an elderly baker whose tongue Shadowfade cut out years earlier. She names her shop Rough Around the Hedges and opens to great success. She and Nathaniel maintain a prickly dynamic through competitive chalkboard signs, and he dismisses her flowers as useless. Meanwhile, an alchemist named Sedgwick arrives in town, requests dangerous ingredients from Nathaniel, and opens a rival business undercutting the apothecary's prices.
A strange black blight begins appearing throughout Dragon's Rest, rotting any organic material it touches. A rock goblin with a peridot gemstone in his chest, whom Violet names Peri, attaches himself to her. Peri's slide, a group of rock goblins that can combine into larger forms, instinctively builds stone barriers over the blight. Pru discovers her violin music can rally the creatures.
Violet and Nathaniel's relationship shifts from antagonism toward connection. They exchange handwritten notes and share vulnerable truths through late-night conversations. Nathaniel confesses the full story of his parents' deaths; Violet reveals her adoptive father told her she was abandoned because her magic was too dangerous. Nathaniel creates a Sweet Dreams Elixir to cure her nightmares, transforming her sleep and deepening their bond.
When a blight-infected cherry tree crashes toward them, Violet saves Nathaniel by conjuring a protective wall of thorns. Shaken, she kisses him amidst the fallen blossoms. However, after recognizing Sedgwick as a former rival from Shadowfade Castle, Violet considers fleeing Dragon's Rest and pulls away, telling Nathaniel she cannot pursue a relationship.
Violet's backstory unfolds through memory: Sedgwick once gave her a letter proving Shadowfade kidnapped her as a child from her mother, Captain Marigold Thistlewaite, rather than rescuing an abandoned girl. After the devastating sack of Silbourne, where Violet received the scar on her face, she refused to act as the Thornwitch again. Shadowfade locked her away, but she secretly sent a letter that brought Karina to the castle. When Karina proved unable to defeat Shadowfade alone, Violet drove a thorn-dagger through his chest.
In a pivotal conversation, Violet challenges Nathaniel to stop letting fear prevent him from using his talents, telling him "without risk, there can be no hope of change" (221). He begins selling alchemical medicines, marking his return to his calling. Pru tells Violet the founding legend of Dragon's Rest: A witch and warrior defeated a dragon using magical gemstones called the Eyes of the Serpent. Violet realizes Sedgwick believes the Eye is hidden in town. When she and Pru break into Shadowfade Castle, they find a book about resurrection rituals, revealing Sedgwick's plan to bring Shadowfade back from the dead.
Violet and Nathaniel act on their feelings. In the greenhouse, Nathaniel discovers the blight reacts differently to flowers Violet conjures from pure imagination versus those grown from seeds, theorizing Sedgwick may be using alchemy to inhibit her power.
The crisis escalates when Sedgwick confronts Violet, revealing he knows she is the Thornwitch. He paralyzes her with an alchemical vial and seizes Peri after recognizing the peridot as the Eye of the Serpent. Working independently, Nathaniel discovers every blight sample contains Violet's magical signature and finds her unconscious in her wrecked shop, still bearing the Thornwitch's thorny features. Violet confesses she has been unknowingly draining life energy from surrounding plants to fuel her new magic, creating the rot as a byproduct. Overwhelmed, Nathaniel leaves.
When Nathaniel brings the news to the town meeting, he discovers many residents already knew Violet's identity. Quinn reveals she is the former "Hornet Queen," another of Shadowfade's agents, and several townspeople are also former associates who attend a weekly survivors' support group. Dragon's Rest has long been a haven for people escaping Shadowfade's control. Pru reveals their aunt Althea was killed while working as an alchemist for Shadowfade, explaining their mother's distrust of the field. Pru admonishes Nathaniel for denying Violet the grace he himself received, and he realizes his mistake. Meanwhile, Violet resolves to face Sedgwick alone after Karina refuses to send help.
The community rallies and arrives at Shadowfade Castle as Violet stalls Sedgwick. Nathaniel brings alchemical weapons, and Pru plays her violin to summon the rock goblins, which combine into a massive stone dragon that destroys the coffin containing Shadowfade's preserved body. As the castle collapses, Violet unleashes her full power, growing a protective dome of thorns while tearing the structure apart. She channels her magic into creating the Serpent Gardens, an elaborate public garden grown from the ruins without draining external plant energy for the first time. Sedgwick and the rock goblins turn to stone, with the Eye held in Sedgwick's petrified hand.
Nathaniel apologizes and declares he loves every part of Violet, thorns and all. They forge a shared future: Violet discovers she can draw small amounts of energy from plants to dry herbs for the apothecary without causing blight. Nathaniel offers to sell her half of the building, and they become engaged, forging a ring from her conjured vines transformed into gold by his alchemy.
In an epilogue set a year later, the rock goblins have un-petrified and flown away, but Peri returns with the peridot restored. Violet suggests offering Sedgwick the same second chance she received. The novel closes with Violet affirming that goodness is not a fixed state but a daily choice, and that while the Thornwitch will always be part of her, she is no longer a villain.