Tile Slide — A Reddit‑Powered Puzzle Experience
Inspiration
I made a game with blocks and now I wanted to test Webviews by building another game with them, and they are awesome!!
I love minimalist puzzle games that reward strategy, timing, and creativity. I wanted a mechanic simple enough to learn in seconds but deep enough to master over hours. By building Tile Slide on Reddit’s Devvit platform, I transformed each post into an interactive puzzle and invited the community to both play and design new levels.
What It Does
Tile Slide is a 6×6 grid puzzle where you move tiles with unique behaviors:
- Arrow Tiles: Click to slide them in their facing direction, pushing other tiles along.
- Cracked Tiles: Can be pushed or removed to clear space.
- Block Tiles: Only move when struck by an Arrow Tile.
- Wall Tiles: Immovable obstacles that force careful planning.
- Goal Holes/Target: Your objective is to push all movable tiles into these to complete each level.
Every action is immediate, with smooth animations optimized for both desktop and mobile. The challenge comes from chaining moves, planning ahead, and deciding when to sacrifice cracked tiles.
Builder Mode - The Highlight!!
Beyond solving puzzles, Tile Slide empowers Redditors to create custom levels. Clicking Builder launches an in‑browser editor where you can lay out tiles and publish directly to the subreddit. Each community creation appears as its own interactive post for everyone to solve and complete. Players can play a subreddit level and the leaderboard for that subreddit level will be unique.
Live Leaderboards & Social Engagement
Each puzzle post maintains a real‑time leaderboard stored in Devvit’s Redis store. Players compete for fastest solves and fewest moves, sparking friendly rivalry and discussion in comments.
How I Built It
- Devvit WebView + Blocks UI: Seamless Reddit integration for instant load in feeds.
- HTML/CSS/JavaScript: Lightweight single‑page app with SCSS for maintainability.
- Devvit Server Functions + Redis: Serverless persistence of scores and custom levels.
- Interactive Posts: Every puzzle and custom level becomes its own Reddit post with live leaderboards.
Challenges & Learnings
- Tile‑Pushing Logic: Crafting push mechanics that never skip or overlap required careful collision handling.
- Async Messaging: Coordinating Devvit↔WebView messages taught me to wrap callbacks in Promises rather than use timeouts.
- Performance: I optimized asset loading and minimized bundle size to ensure sub‑second load times even on mobile.
- Reddis Configuration: Webview to Reddit post connection was a new concept here and took me a while to configure messaging between the two. Additionall, It was tough to handle complex data for leaderboards and custom level JSONs.
Accomplishments
- Developed a fully playable puzzle game in 1 week.
- Built a user‑driven level editor that publishes as interactive Reddit posts.
- Implemented real‑time, post‑specific leaderboards using Redis sorted sets.
- Worked with complex JSON data and successfully fathced and exchanged data between Webview and Reddit post.
What’s Next
- New Tile Types: Magnetic tiles, teleporters, and timed traps.
- More Campaign Levels!: Although the game will be driven by custom levels made by community, I plan to design and add more campaign levels to challenge users.
- Real‑Time Multiplayer: Cooperative puzzles and race challenges via Devvit Realtime.
- Seasonal Events: Weekly puzzle competitions with flair rewards.
- Technical Improvements ; Custom Level Validation, minor bug fixes.
- Why Custom Levels cannot be edited: Once a level is published and users are solving it, changing it in between wont make sense, hence the levels are not editable once created.
Tile Slide demonstrates how Devvit transforms a simple browser game into a living, community‑driven experience. Winning this hackathon will validate my app and efforts required to create this app. It will help me developed and perfect this app further :D Thanks for playing — keep sliding tiles and watch out for the hidden Easter eggs in the game! 🎮🔧
Log in or sign up for Devpost to join the conversation.