Morning Intent Alarm, Part 2: The App That Isn't an App
My web-app alarm hit a wall Apple built on purpose. Instead of paying my way around it, I rebuilt the whole thing with iOS Shortcuts — zero code, zero cost. Setup guide included.
This is part 2 of documenting the Morning Intent Alarm build. Part 1 — the concept, the research, and the vibe coding brief — is here. Rough edges and tangents still included, free of charge.
Last time, I handed a build brief to Replit Agent and got a working demo. It looked like the thing. It recorded my voice, it had a big friendly stop button, it even had the bright morning colors I asked for.
Then I tried to actually use it as my alarm.
The Wall
Here's what I missed: in my own brief, non-negotiable #1 said "the recording must play even if the app is in the background or closed."
A web app on iOS cannot do that. Not "it's hard" — it's not allowed. Apple doesn't let a website (or a web app saved to your home screen) fire audio from a locked phone at a scheduled time. No workaround, no clever trick. The one thing an alarm app absolutely must do is the one thing a web app is forbidden from doing.
So my demo could do everything except be an alarm. The night half actually worked — the prompt appears, you answer in your own voice, and that little ritual is where the whole value of the idea lives. Technically it's the easy part, but it's the part that matters. I had built the ritual and lost the alarm — a very nice prompted voice recorder with a countdown attached.
The honest lesson: I wrote a non-negotiable into the brief and then picked a platform that couldn't deliver it. The AI built exactly what I asked for, on a foundation where the ask was impossible. That one's on me, not the robot.
The Constraint
The obvious next step is a native iOS app. Real alarm APIs exist for real apps. But shipping one means an Apple developer account at $99 a year (which would make this officially my most expensive alarm clock), and the free sideloading route means re-installing the app from a computer every 7 days. For a proof of concept, both are hassle dressed up as progress.
And I keep coming back to what part 1 was actually about. The goal was never "build an alarm app." The goal was to test one hypothesis: does hearing my own voice with my own intention help me start the day better?
I don't need an app to test that. I need a recording, an alarm, and something to connect them.
The App That Isn't an App
It turns out everything the MVP needs already exists on the iPhone. The Clock app is the most reliable alarm on the planet — it ignores silent mode, it's loud, it never gets killed in the background. The Shortcuts app can record audio, save files, and — since iOS 17 — react to an alarm being stopped.
So the v2 architecture is: there is no app. Two shortcuts glued to the native alarm.
- At night: one tap on a home-screen shortcut. It shows the prompt, records your answer, and saves it — overwriting last night's recording automatically.
- In the morning: the normal Clock alarm wakes you up. The moment you tap Stop, an automation plays your recording out loud. Night-you briefs morning-you, exactly as designed.
The whole thing took about ten minutes to set up, and the nightly ritual is three touches: tap, talk, stop.
Sometimes the fastest way to build your product is to notice the OS already shipped the parts.
The Prompt Library
Part 1's spec said one prompt, and I meant it — for testing the alarm mechanic. But once the web page existed, the prompt became the cheapest thing to be generous with. There are now 300 of them, one per day, rotating on the date. Ten months before you hear a repeat (and by then, your answer will be different anyway).
They're not 300 ways of asking "what will you do tomorrow?" — the library deliberately wanders. A sample of what might greet you:
Momentum — for mornings that need a push:
- "What will I do before I touch my phone?"
- "What's one thing I can finish before the world wakes up?"
- "What's the opening move?"
- "Which small chore, done first, clears the runway?"
- "What time am I actually starting, and on what?"
Courage — for the things you've been circling:
- "What am I pretending not to see?"
- "What's the thing I said I'd do someday? Is today someday?"
- "Where am I waiting for permission I don't actually need?"
- "What have I been overthinking that just needs a first draft?"
- "Which fear shrinks if I act on it in the first hour?"
Gratitude — for mornings that need warming up:
- "What's working right now that I usually take for granted?"
- "Who made my life easier recently, and do they know?"
- "Which problem I have is actually a privilege?"
- "What would ten-years-ago me say about where I woke up today?"
- "What's beautiful about the ordinary day ahead?"
Focus — for days that tend to scatter:
- "Which app doesn't deserve me today?"
- "If attention is money, what am I buying today?"
- "What gets my morning brain: my priorities or someone's feed?"
- "What's the first thing I'll ignore today, on purpose?"
- "Where will I put the phone while I do the important thing?"
People — because most days are really about them:
- "Who gets my full attention today?"
- "Whose day can I make measurably better with two minutes of effort?"
- "Who do I want to make laugh today?"
- "What boundary will I hold kindly today?"
- "Who gets the benefit of the doubt today?"
Perspective — for zooming out before diving in:
- "Will this week's worry matter in a year? What will?"
- "What's more true this morning: I have to, or I get to?"
- "If today were a page in my biography, what's the sentence worth printing?"
- "What would I do today if this were an ordinary day in a good life? Because it is."
- "What's the long game, and what's today's small move in it?"
The other 270 live in the app. Some nights you'll get a planning question, some nights a feelings question — I've decided that's a feature. The prompt you didn't choose is harder to answer on autopilot.
The Fine Print
I've been running this setup myself, and if it sounds useful, the full build steps are below — it's about ten minutes. But this is a workaround, not a product. It exists because I'm not spending money on this experiment, and workarounds have edges. So before you spend your ten minutes: here's exactly where the edges are. If any of these block you, better to know now.
- Your voice plays after you stop the alarm, not instead of it. iOS triggers the automation when the alarm is stopped. Conveniently, part 1's spec wanted a real alarm sound first anyway (to actually wake you up), so this limitation and my design accidentally agree with each other.
- Snoozing skips the voice. The automation only fires on Stop. If you snooze five times, your intention politely waits until you're done (if you're a serial snoozer, Apple and I have jointly decided not to enable you).
- iPhone only, iOS 17 or later. The alarm trigger doesn't exist before that. Android has its own automation tools that could do the same job, but I haven't built that version.
- Playback uses media volume, not ringer volume. The setup below includes a Set Volume step so a quiet media volume from last night's YouTube session doesn't sabotage you.
- Stopping the alarm from an Apple Watch may not trigger it. Stop it on the phone. Consider it a feature: you have to physically reach for the thing anyway.
- No streaks, no history, no library. Each night's recording replaces the last. That was already the v1 spec — the constraint just enforces my own scope discipline for free.
If any of those are dealbreakers, this workaround isn't for you — and honestly, the fix is a real native app, which is exactly what I'm avoiding paying for right now.
Build It Yourself
One more thing before the steps. The night ritual deserved better than a system alert box, so I rebuilt the recording screen as a small web page: morning-intent-alarm.vercel.app. It shows a different prompt each day, records your answer in the browser, and hands the file to Shortcuts through the share sheet. Static page, nothing uploaded, still zero cost. The same setup guide below lives on that page too, so you can do the whole thing from your phone.
You can also skip the web page entirely and do everything in Shortcuts — that's the version below. Either way, it's one-time setup, about ten minutes. After that, the nightly flow is tap → talk → stop.
Step 0: Your wake alarm
- Open Clock → Alarms → +
- Create your usual wake-up alarm and leave it enabled.
The automation in Step 2 attaches to this specific alarm, so it needs to exist first.
Step 1: The night shortcut ("Set Intent")
- Open Shortcuts → Shortcuts tab → tap +
- Rename it to Set Intent (tap the name at the top)
- Add these actions in order:
- Show Alert — type your prompt into the text field: What's the first thing you'll do when you get up? Expand the action and turn off "Show Cancel Button".
- Record Audio — expand the action: set Start Recording to Immediately and Finish Recording to On Tap.
- Save File — expand the action: turn off "Ask Where to Save", set the destination path to
/Shortcuts/intent.m4a, and turn on "Overwrite If File Exists". This last toggle is the whole trick — every night's recording silently replaces the previous one, nothing to manage.
- Tap Done.
- Long-press the new Set Intent card → Share → Add to Home Screen. Now it's one tap at bedtime. (If your iPhone has an Action Button, it works there too.)
The first time you run it, iOS asks for microphone permission and file access — approve both and pick Always Allow for the file so it never asks again.
Step 2: The playback shortcut ("Play Intent")
Playback gets its own shortcut instead of living inside the automation. I learned this one in the field: the automation editor on newer iOS hides some file actions from search, and a separate shortcut can be tested with a single tap — which you'll be grateful for the first time something doesn't play at 6am.
- Shortcuts tab → + → rename it Play Intent
- Add these actions:
- Get File from Folder (if search can't find it, browse Apps → Files) → folder Shortcuts, path
/Shortcuts/intent.m4a, matching Step 1's Save File path exactly - Set Volume → 75%
- Play Sound → its Sound File must be the File variable from Get File: touch and hold the Sound File field → Select Variable → File. Don't browse and pick the file itself — a hand-picked file keeps playing the old recording after tomorrow's overwrite. Ask me how I know.
- Get File from Folder (if search can't find it, browse Apps → Files) → folder Shortcuts, path
- Test it right now: tap ▶. Your recording plays. Debug here until it does — before the alarm is involved.
Step 3: The morning automation
- Shortcuts → Automation tab → +
- Choose Alarm as the trigger:
- When: Is Stopped
- Alarm: pick your specific wake alarm from Step 0 (not "Any" — unless you want your intention read out after every nap)
- Select Run Immediately. This is the step people miss. If it's set to "Run After Confirmation", the automation will silently do nothing in the morning.
- Tap Next and add one action: Run Shortcut → pick Play Intent.
- Tap Done.
Step 4: Test it before trusting it
- Run Set Intent and record anything ("testing, testing")
- Set your alarm two minutes ahead
- Let it ring, tap Stop
- Your recording should play within a second.
If nothing plays but Play Intent works on its own, it's almost always the "Run Immediately" setting from Step 3. Check that first.
The web page version of this guide has screenshots of all three pieces: morning-intent-alarm.vercel.app.
Daily use
Night: tap Set Intent → answer the prompt out loud → tap stop. Morning: alarm rings → tap Stop → your own voice tells you what you decided mattered.
That's the entire product.
What I'm Testing
Now the actual experiment can start — the thing the Replit demo never got to do. I'm running this for two weeks and paying attention to a few things:
- Do I actually do the nightly recording, or does the ritual decay after day three? (I have a suspicion night-me will start negotiating.)
- Does hearing my own voice in the first foggy minute change anything about how the morning starts?
- Does the recording quality matter — is a mumbled 10-second answer as effective as a thought-out one?
I genuinely don't know how this will go. Maybe hearing half-asleep me from last night is motivating. Maybe it's deeply annoying. Both outcomes teach me something, and only one of them costs $99 a year to learn.
The Replit version taught me how to brief an AI. This version taught me something better: check whether your platform can deliver your non-negotiables before you build anything on it — and when the answer is no, look at the constraint again before reaching for your wallet. The zero-budget version isn't just cheaper. It's less code, less to maintain, and it tests the hypothesis more honestly, because there's no shiny app to be impressed by. Just my voice, my plan, and whether it works.
Part 3 will be the verdict from two weeks of mornings. If night-me shows up.