This is a submission for the DEV April Fools Challenge
What I Built
I built Scream2Wish, an Android app where you have to literally scream at your phone to make a wish.
The app forces you through a fake login, then shows a genie lamp. The louder you scream, the more the lamp breaks. If you stop even for a second, it fully resets. Once you finally break it, a random character comes out (including mermaids… from a genie lamp, obviously).
You can then type a wish and a note. That data gets sent through a Cloudflare Worker → GitHub Actions pipeline and is permanently stored in a public GitHub repo. In return, you receive a random stranger’s note.
Demo
📱APK Download: 🧞Scream2Wish APK🧜🏻♀️
🌐 Wishes Board: Visit the Scream2Wish Board
(Note: Website shows all wishes with name + timestamp)
Code
The project is entirely open-source under the MIT license.
Main repo (App + Worker):
RajnishKMehta
/
Scream2Wish
An Android app where you scream to break a genie lamp and send your wish to GitHub
🧞 Scream2Wish
An Android app that makes you scream to make a wish then sends it to the universe.
A submission for the DEV April Fools Challenge 2026
What Is This?
Scream2Wish is a completely useless, mildly chaotic Android app that forces you to scream as loud as you can to break a genie's lamp — and only then lets you make a wish.
Your wish gets sent to the internet via a Cloudflare Worker → GitHub Actions pipeline and lives forever in a public repo. In return, you get to read a random stranger's note. Whether that's comforting or unsettling is entirely up to you.
It solves zero real-world problems. It does exactly what it says. That's the point.
Download
Install on any Android device (sideloading required — enable "Install from unknown sources" in settings).
The Full Experience
…Wishes storage repo: https://github.com/RajnishKMehta/Scream2Wish-wishes
How I Built It
Technical Pipeline Details:
- React Native (Expo):The app detects screams using microphone amplitude.
- Persistence: Wish + note + name is sent to a Cloudflare Worker.
-
Automation: The Worker triggers a GitHub
repository_dispatchevent. -
GitHub Actions: Runs a workflow to generate a unique ID, save the wish as JSON, and update the global
index.json. - Frontend: Data becomes publicly readable via GitHub Pages + Vite.
Tech Stack
- Frontend: Expo + React Native
-
Audio:
expo-audio(scream detection) &expo-speech(genie voice) - Backend: Cloudflare Workers
- Database/Storage: GitHub Actions (persistence pipeline)
- Website: GitHub Pages + Vite
Good luck to your vocal cords!
Top comments (0)