Format: Audiobook, Hardcover
Length: 392 pages/14 hours & 27 minutes

Not Quite Dead Yet

A twisty thriller about a young woman trying to solve her own murder.

In seven days Jet Mason will be dead.

Jet is the daughter of one of the wealthiest families in Woodstock, Vermont. Twenty-seven years old, she’s still waiting for her life to begin. I’ll do it later, she always says. She has time.

Until Halloween night, when Jet is violently attacked by an unseen intruder.

She suffers a catastrophic head injury. The doctor is certain that within a week, the injury will trigger a deadly aneurysm.

Jet has never thought of herself as having enemies. But now she looks at everyone in a new light: her family, her former best friend turned sister-in-law, her ex-boyfriend.

She has at most seven days, and as her condition deteriorates she has only her childhood friend Billy for help. But nevertheless, she’s absolutely determined to finally finish something:

Jet is going to solve her own murder.

Published by Bantam
Published on July 17, 2025

My thoughts:

This was my first book by Holly Black, and I honestly didn’t expect it to hit as hard as it did. I went in thinking I was about to read a fast-paced popcorn thriller, but what I got was that and more. It’s a genuinely emotional, clever mystery with a protagonist I ended up rooting for every step of the way.

The setup is brilliantly simple. Jet Mason, a twenty-seven-year-old woman from a wealthy, influential family in Woodstock, Vermont, is violently attacked on Halloween night. The blow to her head doesn’t kill her, but it leaves her with a fatal aneurysm that will. The doctors tell her she has, at best, a week before it ruptures. Surgery is possible, but the odds of surviving it are so low that it’s basically not worth it. So Jet decides to spend her final days solving the most personal mystery imaginable: finding out who tried to kill her before she dies for real.

It’s part revenge story, part ticking-clock thriller, and Black makes the most of it. The pacing is tight from the first page to the last. Every moment feels charged because Jet is literally running out of time. You can feel her urgency in every conversation, every clue she follows, and every dizzying blackout she experiences as her condition worsens.

What really hooked me, though, was how grounded the story feels despite the high stakes. Jet isn’t some hardened detective; she’s a woman who’s spent most of her life waiting for “someday” and suddenly realizes she’s out of tomorrows. That gives her investigation a weight that’s more emotional than procedural. You desperately want her to live long enough to solve her murder so she can get that closure.

The mystery itself is solid, full of tension and misdirection. I had a few theories early on, and I was happy to be wrong. The reveal of who attacked Jet and why genuinely surprised me, which doesn’t happen often. And while some thrillers rely on shock value, this one earns its twists through character work. The people around Jet are all messy, layered, and believable. They feel like real people caught in a web of either privilege or resentment.

The book also doesn’t overstay its welcome. It’s fast and sharp with no filler and no wasted chapters. When it’s over, it leaves you with a lingering mix of satisfaction and melancholy.

The audiobook narration by Alex McKenna is excellent overall. She nails Jet’s voice, giving her just the right mix of wit, vulnerability, and quiet determination. My only gripe (and it’s a small one) is the voice she chose to use for Billy. He’s supposed to be a guy pushing thirty, but he sounded more like an awkward teen on the verge of puberty. The rest of the production is great, though, and McKenna’s delivery keeps the tension tight and the pacing crisp.

This book is equal parts mystery, revenge thriller and meditation on mortality. It’s suspenseful, emotional and even a little haunting. If you’re looking for something that balances heart and tension, this one’s absolutely worth picking up.

Genre(s):

Other Bookish Tags:

Book Club/Book Box:

error: Content is protected !!