⚠️ Full spoilers ahead. This review discusses the entire book including the ending. You've been warned.

Crooked — Vi Keeland & Penelope Ward | Full Spoiler Review
Reviewed by LD 🎧 Audiobook

Crooked — Vi Keeland & Penelope Ward | Full Spoiler Review

by Vi Keeland & Penelope Ward

★★★★★4.5
🎧 Reviewed by LD

Audiobook review — narration rated as part of the experience.

Posted September 29, 2026

🎧 Reviewed by LD | Rating: 4.2/5 | Steam: 🔥🔥🔥🔥 | Standalone


⚠️ This is a full spoiler review. If you haven’t read Crooked yet — go read it first. We’ll be here when you’re done.


The Opening

A mob boss’s daughter. A bodyguard who shows up uninvited. A broken heel, a thrown phone, and a man who takes a phone to the face and still shows up for work. This book did not waste a single second getting me hooked.

Crooked is a slow-burn romance wrapped in organized crime and Hollywood chaos, and if that doesn’t already have you reaching for your book app, I don’t know what to tell you.

The Full Story — Spoilers Included

Meet Juliette

Juliette is a screenwriter in LA, dealing with the very specific nightmare that is a difficult Hollywood actor named Bradley who wants rewrites at all hours of the night. She’s sharp, she’s funny, and she is trying very hard to pretend that her father’s “pizzeria” is just a pizzeria.

It is not a pizzeria.

Vince — her dad — runs organized crime out of it, and one morning he calls her in code to tell her that someone wants his business and someone wants her. Before she can fully process that, he informs her that a bodyguard will be arriving. That morning. Whether she likes it or not.

She does not like it.

The Meet-Cute (I Cannot)

She gets out of her car, her heel snaps, she twists her ankle, and in a moment of pure cathartic rage she throws first the heel and then her phone — directly into the face of the man who has just arrived to protect her.

That man is Wes.

I love him already.

He follows her home that night fully intending to stay. She tells him he can sleep in his car. He does. And the next morning she wakes up to a police officer at her door because a neighbor called in the suspicious man sitting outside all night. Wes told the officer they’d had a little lover’s spat and she’d made him sleep in the car.

They have known each other for approximately 5 minutes.

Getting Comfortable (Sort Of)

The two of them settle into an uneasy rhythm. Juliette’s neighbor keeps inviting her to book club, and since Wes refuses to let her go without him and also refuses to leave her alone to sit in a room full of people he hasn’t vetted, he ends up staying inside while they meet. They each read their favourite passage from the book. Juliette gets too embarrassed to read hers out loud in front of Wes. So Wes reads it to the whole room instead. And then he gets very obviously turned on by it.

I mean. Okay. Book club has never sounded more appealing.

The threats against Juliette escalate — two of Vince’s enemies fly into LAX, and Vince calls Wes with a lockdown order. Juliette is supposed to go out with friends that night and is absolutely not having the lockdown situation. She gets all dressed up, Wes says no, she threatens to call her uncles until someone tells her what’s going on, and then she just ducks out her window and walks to her friend’s place next door. He notices, follows, talks the friend into keeping Juliette home, and then accompanies her on a date with a guy named Jet because he refuses to wait in the car.

Which is good, actually, because Jet shows up late and Wes walks in with a photo proving Jet had been making out with another woman minutes before their date. Jet cannot deny it. Juliette is done, she wants to go home. So Wes takes her to Venice Beach instead, a seagull steals her shoe, and somewhere in between the chaos they start actually becoming friends.

Italy

Vince gets word that Juliette is a confirmed target and her address is compromised. She needs to leave LA. She refuses. Wes asks what it would take for her to go, and she says: tell me what my father has over you. How did you end up working for him?

So he tells her. He once responded to a call where her aunt was being beaten. He beat the man to pieces. Vince showed up and tells Wes he will have the aunt change her story — say she’d hit the man with a frying pan — which cleared Wes of the charges he was facing. In exchange, Wes works for Vince. No jail. No record. Just… this… forever.

They go to Ortigia, Italy, to stay at her grandmother’s house. The neighbour immediately invites them to supper, and as a cover Wes tells her they’ve been dating five years, and they spend the meal building out elaborate fake backstories for themselves. It is genuinely adorable.

Italy is where things start to shift. A woman calls on what Juliette thought was her phone, but later realises is Wes’s phone — she accidentally answered it. He says it’s a sex buddy, nothing serious, she knew he was in LA and wanted to reconnect. Juliette goes to her room. Wes, not willing to let her sulk, tells her they’re going out whether she likes it or not, and he carries through on the threat. They spend the whole day on a rented boat, diving, and everything between them gets softer.

Then his family calls. His grandmother is dying and doesn’t have much time. Wes is gutted. He doesn’t think he can get to her in time. Juliette doesn’t hesitate. She calls her father, demands they leave Italy immediately, and makes it happen. They make it to his grandmother. She’s sicker than expected, and they arrive to stay at his family’s house pretending to be a couple — which means one room and one bed.

Wes is going to sleep on the floor. Juliette decides that’s not practical, since his mother might pop in. They sleep in the same bed and end up snuggled together by morning. The next morning, Juliette propositions him. He says he can’t.

He gets one good visit in and when they go to see his grandmother again they arrive just after she passes away. Wes is devastated but can’t cry. Juliette puts her foot down — they are not leaving before the funeral. At the funeral, Wes is in the receiving line and loses track of Juliette, who has been wandering around snooping. She gets herself trapped in an embalming room when the door locks behind her. He finds her. Back at the house, she propositions him again. He moves to the couch.

He is trying very, very hard.

Back in LA — Things Get Real

When they return home, Juliette’s lockdown is over. Things between them have shifted — there’s distance on Wes’s side, and Juliette is not happy about it. She sneaks out to her friend’s next door. He completely loses it, drives all over looking for her, and when she gets home he flips out and then kisses her. They fight a little more and then sleep together.

After that they’re fooling around regularly. He takes her to Palm Springs. For a minute there, it genuinely feels like everything is going to be fine.

Something Is Wrong

On their way to her work one day Wes thinks they are being followed. They get to the studio lot, Wes kisses her goodbye and then notices the same black sedan parked a few rows back. He’d been watching the wrong direction — because the person approaching isn’t coming from outside the lot. They’re sliding into the passenger seat of his car.

It’s a woman — it’s actually his boss. She is not happy. She tells him he better not blow the entire operation.

Wes gets the information. I’ll leave it at that for now.

The Reveal

Here’s the thing about Wes. The thing that changes everything.

He is not just a bodyguard. He has never just been a bodyguard. Wes is undercover NYPD, placed inside Vince’s operation by his captain — Captain Dana Rorque — who is running a sting on the crime families. The reason he ended up in Vince’s orbit at all? Vince leveraged the situation with the aunt to get his hooks in. And Wes, already in debt to the man, became the perfect inside asset.

He has been reporting to the NYPD this entire time. And Juliette, who has no idea, accidentally gives him the location of the meeting he’s been tasked with finding out — because she heard Vince mention it and thought nothing of it.

I need you to sit with that for a second.

Everything Falls Apart

They are out at a farmers market, Wes is distant and Juliette has had enough. She storms off. And a few minutes later she feels something hit her — except it’s not a something. It’s Wes, bleeding and unconscious.

Wes was shot. Better yet he took a bullet for her.

She refuses to leave the hospital. She goes to the chapel and tells a priest everything. She goes back to Wes’s room and says she wants to run away with him. He tells her to go home and when she gets home, her dad is outside waiting.

Juliette doesn’t fully trust Wes anymore. She can feel something is off — and when Wes tells her he has to go do a police lineup to see if he can determine who shot him and she can’t come, she follows him in her neighbour’s car. He doesn’t go to the police station. He goes to Hotel Aventura. A woman answers the door.

She thinks he’s cheating.

He’s not. The woman is his captain, though he only tells her it’s a police officer and that the meeting was moved to a hotel so Vince’s men wouldn’t see him going to the station. She mostly believes him. But her mind is already running.

And then, while Wes is in the shower, Juliette finds a secret phone hidden in the room. It beeps. She listens to the voicemail from his captain — something about pulling a “random police officer” off an assignment that “completely doesn’t affect you.” Except why would you call someone to tell them about something that doesn’t affect them at all? Let alone what seasoned police officer would leave their secret work phone with the ringer on?!? You wouldn’t. You’d leave it on silent at all times… Am I right?

She puts it together. He didn’t stumble into her life. He was placed there. He’s been using her to get to her father. Everything — including, possibly, everything between them — was an operation.

She is done.

She waits for him, lays out everything she knows, tells him to get out, and says she’ll inform her father he is no longer capable of protecting her. He leaves. Calls Vince. Eventually Vince releases him — Wes didn’t quit, Vince fired him — that’s what Vince tells Juliette. Since Juliette won’t speak to him, Wes leaves a letter in her mailbox explaining everything and saying he won’t contact her again.

Then he quits the NYPD entirely. No more undercover. (I will say — the book kind of glosses over the fact that his charges were only going away if he helped take Vince down. So the idea that they just… let him walk? I found that a little hard to swallow. But okay.)

He goes to work for his old supervisor’s bodyguard company. New client: Bradley. Yes, THAT Bradley.

The Grand Gesture (Multiple Grand Gestures, Actually)

Wes drives by Juliette’s house and just sits there. She spots him through the window and gives him a death glare. He gets out. She tells him to get off her property. He backs onto the sidewalk and starts yelling from there because she told him he couldn’t be on her property, not the sidewalk, and she agrees to give him five minutes in her garage.

He tells her he quit the NYPD. She says how can she know that’s not just another cover story?

So he calls his mom. On the spot. In front of her. “Mom, why did I quit the NYPD?” And his mom — bless her — says: “You gave up your job so you could move closer to Juliet. Because you’re crazy about her. You picked true love over your career.”

He gives Juliette her five minutes and then leaves. But he is not giving up.

He passes a garden nursery. He buys 100 flats of flowers. Eighteen flowers per flat. He plants all of them at her house, works guarding Bradley from noon to midnight, and then goes back to watch her reaction. He sits out front. When she sees him, he just drives away.

Then he joins her book club. He reads the entire book. He has sticky notes. He has annotations. He has thoughts.

She cannot stop thinking about him so she goes to his apartment building hoping to figure out which unit is his — and spots him through a coffee shop window sitting with a blonde. She assumes it’s a date and leaves.

It is not a date. It’s a brand new client he just met.

She goes to the premiere of her film with her agent Allan, determined to move on. Wes is there. With the same blonde. She’s ready to walk out — and then a loud bang goes off, like a gunshot. Wes immediately bolts across the room, wraps himself around her, and covers her with his body.

When it turns out to be nothing, he’s still holding her. And the only thing she can think to say is: “Are you dating that blonde?”

He’s not dating anyone. He couldn’t even handle working for Bradley anymore — he ditched his actual client to run to her, so yes, his new boss is furious with him, the client even more so — she does not want Wes protecting her anymore. But the boss tells him he would have done the exact same thing and he’s not firing him.

Vince gets arrested — one of his own family members flipped on him (not Juliette). Wes calls Juliette; she won’t answer. His mom talks him off the ledge and he goes to Juliette. News vans are parked outside. She’s crying. They talk.

She’s heading to New York for security reasons with Vince in custody — the arrest could create a power vacuum. At the airport, Wes is there. Her mother hired him as her security.

She agrees to it. They make up.

Three months later, Wes is no longer her bodyguard. He’s consulting on film sets, teaching actors what cops actually look like. He takes a “consulting trip” — which is actually a visit to Vince in prison. He wants the security detail lifted. He says he’s been seeing Juliette and can protect her himself. He tells Vince that one day he’s going to want to marry her.

Vince walks away. Asks him to bring a better sandwich next time.

That’s not a no.

Juliette writes her own book. They get engaged. She gives Wes a special copy of it — which is how she tells him she’s pregnant.

The Steam Rating Breakdown

🔥🔥🔥🔥 / 5 — Four flames. There are sex scenes, and a truth or dare scene that goes fully explicit. Warm with some heat throughout, then it turns up in the back half.

The Ending — Satisfied or Disappointed?

Satisfied. The Vince prison scene alone was worth it — watching Wes go ask her mob boss father if he can marry his daughter, armed with a sandwich, is such a good beat. And the book-as-pregnancy-reveal? Sweet without being over the top.

The ending is warm and earned and gives you exactly what you came for.

Would I Reread It?

Yes. The reveal holds up even when you know it’s coming, and honestly I think I’d catch more on a reread now that I know what Wes is actually doing in half those scenes.

Who Is This For

If you love a bodyguard romance with a slow burn, a plot twist that actually matters, and two leads who are genuinely fun to be with — this one is for you. The mob boss dad adds just enough chaos to keep things interesting, and the Italy section alone is worth the listen.

Where to Get This Book

Book cover of Crooked by Vi Keeland and Penelope Ward

📖 Physical Book
Amazon US | Amazon CA | Bookshop.org

🎧 Audiobook
Audible US | Audible CA
🎁 New to Audible? Get 3 months free (US)
🎁 New to Libro.fm? Get 2 free audiobooks

📱 Ebook
Kindle US | Kindle CA


Ready for more from LD? Find them here

Plot Twisted. 🔥

🎧 | Genre: Contemporary Romance | Steam: 🔥🔥🔥🔥

 

Join the Discussion

Your email address will not be published. Required fields are marked *