Crime & Detective

Prom Night Bones and the Podcast That Burned

Reading Settings

16px

Theo and I are halfway through dinner when my phone buzzes with the particular insistence of someone who doesn’t know me well enough to give up.

“Please tell me that’s not another bill,” I say, nudging the phone away from the edge of my plate with a knuckle.

“Could be your fans,” Theo says through a mouthful of boxed mac and cheese. “You’re, like, famous now.”

“Chew, then flatter,” I say. “In that order.”

He rolls his eyes and obeys. I swipe the screen. A Twitter DM notification fills the top: @SadieQParalegal wants to send you a message.

I recognize the handle. I’ve seen it pop up under my episode posts, always with timestamps and heart emojis, the digital equivalent of front-row tickets and a notebook.

I tap accept.

HI MARA!!! Omg I hope this isn’t weird
I’m Sadie, huge fan of Glass Roses, been listening since season 1.
I mod the subreddit and I’m spinning up a Discord server for the new season—
wanted to ask your blessing to promote it??

I stare at the block of text, noodles going limp on my fork. The words my blessing land in a place that’s been empty for a long time. People usually ask for my compliance, my patience, my overdue payment notice—not my blessing.

“Is it a sponsor?” Theo asks. “Are we rich?”

“It’s someone who thinks I’m important,” I say. “Which is richer than our bank account right now.”

I scroll further.

I think the community is READY
There’s already a #casefiles channel, #prom-night-aesthetic, etc
We can pin your episode links, rules, all that
NO DOXXING, NO HARASSMENT, I swear.
Can I drop the invite link on Twitter when ep 2 goes live??

Luz’s card sits on the counter under a magnet, the black print catching the overhead light. Call before you hit publish. Her warning has been echoing in my head all day, rattling around with the anonymous voicemail about the gym lights at two.

“Mom?” Theo nudges me. “You zoned out. Should I call Detective Lady?”

“You’re not allowed to use ‘Detective Lady’ as a lifeline,” I say. “Finish your veggies.”

He groans theatrically and spears three green beans at once.

I type back.

Hey Sadie — thanks for asking instead of just doing it.
An unofficial server’s okay with me as long as you set clear rules.
No contacting Juliet’s family, no naming suspects, no vigilantism.
And no one gets to speak for the show but me, yeah?

The dots appear immediately.

OF COURSE. You’re the voice.
We’re just the glass rose petals drifting around you :P
I’ll write rules, pin them, and shut down anything gross.
I’ll DM you an invite link, in case you ever want to lurk…

Theo leans over my shoulder. “You made a fan club?”

“Looks like the fan club made itself,” I say.

“You’re not allowed to be cooler than me,” he announces. “That’s child abuse.”

“Eat your beans before I start a Discord for them,” I reply.

His laughter pushes some of the tension out of my shoulders. I lock my phone, but the thought of that invite link hums at the edge of my mind all through dishes, homework refereeing, and the bedtime teeth-brushing negotiations that feel more intense than any cold-case interrogation.

By the time the apartment goes quiet—Theo finally snoring softly in the dark, the laundromat below shifting from clanking machines to low, steady hum—the invite is waiting on my screen.

Welcome to Glass Roses: Unofficial
This link is just for you, promise.
Come say hi if you want… or just lurk.
– S

I pick up Luz’s card, tap the edge of it against my knee, then set it back down. No criminal code covers “entering your own fan Discord,” right?

I click the link.

Choose a username. The cursor blinks in the little white box, a miniature version of the file name that’s been haunting me: TIPS – VERIFIED?

I don’t type MaraLanePodcaster. I don’t type GlassRosesHost.

I type Rosewater73 and hit enter.

The screen blooms into channels and icons: #welcome, #rules, #episode-discussion, #1997-prom, #theories, #cliff-talk. A little wave of sound pings in my headphones—the bright, hollow chime of a community turning its head.

Sadie’s welcome bot has already posted.

Sadie_mod: Everyone say hi to @Rosewater73! 🌹

I sit back against my headboard, the cheap wood frame digging into my spine, and watch the responses scroll.

PlaylistGoblin: hiiii new rose!!
TrueCrimeAuntie: welcome!! which ep hooked you?
CoveKid91: bet this is Mara undercover 😂

Heat crawls up my neck. I force my fingers to stay away from the keyboard. I’m just here to listen, I remind myself. For once.

I click into #1997-prom. A pinned message at the top reads:

This channel is for prom context: dresses, playlists, decor, rumors.
Be kind to real people. Juliet Reeves was a person, not a character.

I feel a small swell of respect for Sadie. The pictures someone has already posted look like a museum of a night I only watched from the doorway: scanned yearbook pages, blurry disposable-camera shots of the gym decked out in cheap fairy lights, a sea of satin and tuxes on warped parquet.

Someone has isolated Juliet in one photo, circling her in red. Her green dress glows under the lights, the fabric catching reflections. A glass rose centerpiece rests on the table next to her elbow, stem spiraling up from a mirrored base, petals catching the flash.

My chest tightens. I remember those centerpieces. My mother talked about them for weeks afterward—how she had to tease and spray and smooth twenty girls’ hair while those glass roses glared at her from every table, pretending beauty could be permanent.

In the chat, fans are zooming in on details.

MixtapeMedic: Confirming: neckline is more emerald than teal in this scan
RegattaMom: My aunt says the theme was “A Night on the Bay” lol
BannerWatcher: you can see the donor banner behind her — Harrow family name is HUGE

I scroll, the blue light drying my eyes. The muffled thud of distant bass from the waterfront sneaks in through the cracked window—someone’s pre-regatta party on a boat big enough to count as a lawn.

Over in #episode-discussion, they’re analyzing my narration.

Sadie_mod: when Mara described the rock shelf under the cliffs?? chills
CliffTalker: locals, is that real or just drama?
CoveKid91: real. used to sneak cigs there after dances. rope fence is a joke.

My fingers itch to type yes, it’s real, I’ve stood there, I’ve looked down, but I swallow the urge. The power of this space is that they think I’m not here.

In #theories, threads branch like hairline fractures in glass.

BannerWatcher: Do we think Juliet fought w/ anyone in the gym before she left?
MixtapeMedic: there’s that rumor about a bathroom argument over the playlist
PromThrowbackDad: I went to the fundraiser last year, they played the Cardigans too. Whole town stuck in 97.

I rub at the ache between my eyebrows. This is what I wanted, isn’t it? Collective attention. Hands helping carry the weight of an old, heavy story.

Then I remember Luz’s voice: You don’t get to control who listens.

At the bottom of the screen, a notification pops up.

New user joined: Oracle.

My pulse jumps. Oracle. The distorted voicemail. The Cardigans lyric stitched into static. My thumb smears a sweat mark across the trackpad.

The general chat lights up.

Sadie_mod: welcome @Oracle! 🌹
PlaylistGoblin: love the name, v on brand
Oracle: thanks for the invite

Their avatar is just a circle of dark color, no face. For a few seconds, nothing moves. Then a new message appears in #1997-prom.

Oracle: You missed one.

A file attaches beneath it: IMG_970517_0206.JPG

My throat closes. I click.

The image opens in a new window, pixelated and dark, the grain suggesting it’s been scanned, re-saved, passed through too many hands. Juliet stands at the double doors of the old gym, her green dress unmistakable even in the blur. Her profile is turned slightly away, metal bar in her hand, hair still piled in my mother’s careful curls. The hallway lights behind her glow weakly, every surface tired.

In the bottom right corner, embedded in faint gray numbers, a timestamp reads: 2:06 AM.

My ears roar. The official record says her body hit the rocks below the overlook before 1:30. News anchors repeated it, the way they repeat weather: steady, certain, unquestioned. Witness statements wrapped around that time like a ribbon.

Yet there she is at 2:06, alive at the gym doors.

Chat erupts.

CoveKid91: WHERE DID YOU GET THIS
BannerWatcher: omg that timestamp
MixtapeMedic: wait wait this changes everything???
TrueCrimeAuntie: I don’t remember this being in any coverage. Source??

My hand shakes on the trackpad. I zoom in on her face. The blur makes her expression hard to parse, but the line of her shoulders looks tight, her free hand clenched near her hip. Just behind her, reflected faintly in the narrow window, there’s a distorted smear of light that might be someone else standing closer than they should.

A glass rose centerpiece appears at the edge of the frame, half out of shot, being carried by someone heading toward the doors. The petals catch the flash, frozen mid-glow.

Sadie_mod: Oracle, can you DM me? Need to verify before ppl go wild.
PlaylistGoblin: too late I’m already feral
RegattaMom: if this is real, cops messed up the TOD big time
CliffTalker: or lied.

My heart bangs against my ribs. I hear the ocean in it, the distant crash of water against the rock shelf everyone pretends is just scenery.

New messages appear.

Oracle: Check the metadata.
Oracle: It’s cleaner than the case file.

Someone with a techy username jumps on it.

EXIFNerd: downloading now, gimme a sec

I glance at the lower left corner of my screen, where Luz’s contact sits in my dock, waiting. Call before you hit publish. I’m not publishing, I tell myself. I’m just… watching.

The laundromat below shifts into its quieter late cycle, machines settling, leaving a faint ozone smell mingled with salt air. Outside, bass from a waterfront party pulses like a distant heart.

EXIFNerd: okay, checked. timestamp embedded is 1997-05-17 02:06:14
EXIFNerd: camera model is some ancient Kodak, matches others in the yearbook batch
EXIFNerd: this is not a deepfake, y’all

A wave of caps-lock hits the chat.

CoveKid91: THAT MEANS SHE WAS ALIVE AFTER THEY SAID SHE DIED
TrueCrimeAuntie: unless the camera clock was wrong?
BannerWatcher: even if it’s off, it shows her AT THE GYM. not the cliffs.

I swallow against the dryness in my mouth. My mother’s voice comes back in a fragment: I saw her leave with those girls near midnight, baby, I swear. After that it was all rumor and sirens.

I wonder what time my mother’s memory is actually set to.

A private message notification pops up.

Sadie_mod → you: omg hi, you are here!!
sorry if that’s creepy, I just guessed.
you’re quiet for someone who talks for a living 😉

I exhale through my nose, a tiny laugh that doesn’t reach my chest.

Me (Rosewater73): Busted.
Watching only. You’re doing good work in there.
Where did Oracle come from?

The dots appear, pause, appear again.

Sadie_mod: they joined like 10 min ago from a fresh account
I recognized their name from your ep 2 voicemail teaser 😳
figured if they wanted to share more, better they do it in a space I can mod?
I can ban if you want but the photo seems… important.

I stare at that last word until the letters blur. Important. Evidence. Dangerous.

Back in the main channel, things are escalating.

PromThrowbackDad: I was at the gym in 97, I never saw this shot before
RegattaMom: could a teacher have taken it? chaperone proof?
CliffTalker: what if the person who took it is the killer
PlaylistGoblin: do you think the killer is in here reading this right now

My skin goes cold. Of course they are, part of me thinks. They have been the whole time.

Oracle posts again.

Oracle: Some stories get their timestamps edited.
Oracle: The camera remembered what the town didn’t.

I hear Luz in my head, listing legal landmines: contamination, coaching, fabrication. She wanted me to route this kind of thing through her, to keep the record clean. Instead, it’s live in a server full of people who screenshot faster than they breathe.

“Mom?” Theo’s sleepy voice drifts from his room. “Can I have water?”

I jolt, nearly knocking the laptop off my knees. “Yeah, baby. Stay in bed, I’ll bring it.”

I pad to the kitchen, pour water into his soccer cup, carry it to his room. He’s half upright, hair sticking in all directions, eyes squinting against the hall light.

“You’re up late,” he murmurs. “Podcast?”

“Just reading,” I say, tucking the blanket back around his shoulders. His forehead feels warm from sleep when I kiss it. “Dream about volcanoes, okay?”

“Not cliffs,” he mumbles.

My chest squeezes. “No cliffs,” I promise.

Back on my bed, the laptop glows in the dark, casting Juliet’s blurred figure in harsh light. The server has splintered into theories: who owned a Kodak, who had access to the gym doors, which PTA surnames show up on the prom chaperone list and the current school board roster.

Sadie posts in bold.

Sadie_mod: REMINDER: No full names or harassment.
This photo is important, but we are not a vigilante squad.
We’re here to help get Juliet justice, not ruin more lives.

I appreciate the sentiment. I also know how thin that line gets when people smell a mystery.

I click on Oracle’s profile. No information. Account created today. Status: listening.

The hairs on my arms lift.

My cursor hovers over the Message button, then over Luz’s contact. I feel torn between two audiences: the one that can arrest people and the one that can make download numbers surge.

In the main chat, Oracle drops one last line.

Oracle: She didn’t die on the rocks. Not yet.

The words sit on the screen like a dare.

I stare at them until my eyes burn, my cursor drifting between Detective Navarro’s name and the chaos in #1997-prom, and know with the same certainty I know the tides in Crescent Bay: whoever Oracle is, they’re no longer just a voice on my voicemail.

They’re inside the room I built for Juliet, whispering to my listeners, and I’m not sure whether calling it community will protect anyone from what they’re planning next.