What it does
Daily Alchemy is a bite-sized daily puzzle built for Reddit. Players start with four basic elements — Fire, Water, Earth, and Air — and combine them to discover hidden recipes. Each day has a shared target, such as Phoenix, Volcano, Rainbow, Castle, Desert, or Forest, that initially seems impossible to build from such simple ingredients.
The goal is to reach the target in as few attempts as possible, compare against par, and share a spoiler-free result so other players can join the same daily challenge without having the solution revealed.
Inspiration
I was inspired by the way daily puzzles like Wordle create a small shared ritual: everyone plays the same challenge, finishes in a few minutes, and has something spoiler-free to compare afterwards.
I wanted to bring that feeling to Reddit in a way that suited comment threads and community play. Instead of guessing a word, players experiment with combinations, discover surprising recipes, and gradually build a route from simple elements to something that felt impossible at the start.
The result is designed to be lightweight, readable, and mobile-friendly: something that can live naturally inside a Reddit post rather than feeling like a separate game portal.
How it works
Daily Alchemy uses a hidden recipe graph. The client shows discovered elements and player progress, while the server validates combinations and keeps the recipe logic hidden.
Every attempted pair counts, whether it creates a new discovery, repeats an old recipe, or produces no reaction. This makes the puzzle about efficient experimentation rather than brute force. Each daily target has a par score based on its shortest route, giving players a clear benchmark to beat or compare against.
At the end of a run, the player gets a compact result card showing:
- the day’s target
- attempts taken
- par
- total discoveries
The result is spoiler-free, so it can be copied or shared in the comments without revealing recipes or the solution path. The Reddit post becomes the daily gathering place: players can compare attempts, weird detours, and closest-to-par solves without spoiling the puzzle for others.
How I built it
The project was built with Devvit Web, React, TypeScript, Hono, Tailwind, Vite, and Vitest.
I kept the architecture deliberately small and reliable for the hackathon:
- a stateless API for init and combination validation
- server-side recipe definitions and daily target selection
- deterministic daily target rotation using UTC dates
- client-side game state for discovered elements, attempts, and recipe history
- local solved-state persistence so a completed daily stays completed after refresh
- mobile-first UI designed for Reddit’s interactive post format
- automated tests for recipe reachability, duplicate pairs, target par values, storage hydration, and API behaviour
I avoided heavier systems like leaderboards, accounts, or scheduled jobs so the final submission could stay polished, stable, and easy to judge.
Challenges
The biggest design challenge was making experimentation feel fair. Early versions had too many accidental dead ends, so I redesigned the recipe graph around a clearer toy grammar: Fire transforms, Water cycles, Earth builds up, and Air erodes or disperses. Early discoveries like Rain, Cloud, Mist, Mud, Ash, Sand, and Stone are deliberately reactive with the base elements, so players can make reasonable guesses and feel rewarded for experimentation.
Another challenge was balancing daily-puzzle structure with discovery. The targets need to feel surprising, but not arbitrary. Recipes like Sun + Rain → Rainbow, Ash + Fire → Phoenix, Brick + Stone → Castle, and Mountain + Fire → Volcano are designed to be intuitive once discovered, while still giving players room to find scenic routes.
I also wanted the end of the puzzle to feel satisfying in Reddit’s environment. The native share sheet can behave differently across platforms, so I added an explicit spoiler-free result card and a reliable copy button. That makes the social payoff clear even when the OS share UI is opaque.
Finally, I spent time removing template scaffolding, improving the splash screen and app icon, tightening the mobile layout, and making sure the game felt like a finished Reddit-native puzzle rather than a prototype.
What I learned
This project taught me a lot about designing for Reddit as a platform. The strongest Devvit games are not just embedded web games; they create a reason for people to return, compare, comment, and participate together.
I also learned how important it is for a puzzle’s hidden logic to feel fair. A recipe graph can be technically valid but still feel arbitrary if too many obvious experiments fail. Designing the graph matrix-first made the game feel much more coherent: every reaction, and every non-reaction, needed a reason.
By keeping the game stateless, daily, and focused on one clear loop, I was able to spend more time on polish, readability, mobile UX, and the tiny moments that make the game feel complete.
Built With
- devvit
- hono
- node.js
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.