She was portrayed by Francesca Zoutewelle.
Believing that her crush Zac Leeson would propose to her, Joanna bought herself a wedding dress from one of her favourite designers. When he never proposed, she realised that he wasn’t actually in love with her. The two did, however, continue having a secret sexual relationship up until Zac's engagement to her best friend Kylie Stokes.
Wanting her friend to look nice, Joanna lent her unworn wedding dress to Kylie. The day after the wedding, Kylie and Zac went to Joanna's to return the wedding dress. Kylie's boasting about her happiness began to provoke Joanna, as she was still madly in love with Zac and believed that Kylie had stolen him from her. As a result of Joanna's jealousy, she started to fight with Kylie. Zac tried to break the two apart, but not before Kylie hit her head hard and died. Although Zac wanted to call the police, Joanna wouldn't let him. She dressed Kylie back in the wedding dress and stored the body in one the freezers at her family's old butcher shop which she lived above. Later that night, when the floods came, Joanna and Zac dumped Kylie's body in the river.
After Kylie's funeral a few days later, Zac told Joanna that he planned on telling Agatha Raisin what they'd done. Determined to keep their crime a secret, she froze him to death at the butcher shop. Following the news that Zac had been reported missing, the next day Agatha went to the butcher shop after she realised that it was likely home to the freezer where Kylie was frozen. Having discovered Zac's dead body, Agatha was cornered by Joanna, who explained her crimes while threateningly wielding a knife. Before Joanna could attack Agatha, however, she was interrupted by the police and Agatha's friends. The police were able to successfully disarm and apprehend Joanna. (The Day the Floods Came)