-
The Last Pixel splash screen — animated pixel preview, personalized welcome, and a single call to action.
-
742 cells revealed by the community. A landscape emerges — but what is it? One reveal per player, per day.
-
Mobile view showing the revealed grid and hover tooltip — "revealed by Parthil011". Works seamlessly on phone.
-
The guess window opens at 20–40% revealed. One locked-in guess only — make it count. Can you name the art?
-
20% revealed — guess button activates. Bottom ticker shows community guesses scrolling in real time.
Inspiration
Reddit has always been about communities doing things together that no individual could do alone — r/place proved that. But r/place gave everyone unlimited moves. I wanted to know what happens when you make each move scarce. One pixel per person per day forces you to actually think, coordinate, and come back tomorrow.
What it does
The Last Pixel hides a procedurally generated pixel art image beneath a 64×64 grid. Each Reddit user gets exactly one cell reveal per day. As the community collectively uncovers the image, a guessing window opens between 20–40% revealed — players can submit one locked-in guess of what the art is. At midnight the full image is revealed, the board resets, and a brand new hidden artwork appears. Every day is a fresh mystery.
How I built it
- Devvit Web for the Reddit platform integration and Redis data layer
- Phaser 3 for the interactive canvas — grid rendering, reveal animations, ripple effects, zoom/pan, and the midnight reveal wave
- Hono as the server framework handling reveal, guess, and init routes
- Redis for persistent pixel state, user daily limits, guess storage, and automatic midnight reset
- TypeScript end to end, with a seeded procedural pixel art generator that produces landscapes, cityscapes, underwater scenes, forests, faces, and abstract patterns — different art every day, always reproducible from the date seed
Challenges I ran into
Getting Phaser to play nicely inside a Devvit Web iframe took significant iteration — bundle size, camera scroll factor on HUD elements, and touch input handling on mobile all required custom solutions. The one-reveal-per-day enforcement needed careful Redis state management to survive across devices and sessions without race conditions.
Accomplishments that I'm proud of
The procedural art generator produces genuinely surprising images every day from a tiny amount of code. The guessing mechanic — where the window closes at 40% revealed — creates a real tension between wanting to see more and locking in your answer early. And the midnight reveal wave animation in Phaser turned out more dramatic than expected.
What I learned
Scarcity is a mechanic, not a limitation. Giving users one action per day sounds restrictive but it's actually what makes every action feel meaningful. The community builds anticipation between sessions in a way that unlimited-action games simply can't replicate.
What's next for The Last Pixel
Weekly themed weeks where the community votes on art categories. A Hall of Fame for the most accurate guesses. Flair for players who guess correctly three days in a row. And eventually — user-submitted art seeds so the community designs what gets hidden.
Built With
- 3
- devvit
- generation
- hono
- node.js
- phaser.js
- procedural
- redditapi
- redis
- typescript
- web
Log in or sign up for Devpost to join the conversation.