Inspiration
FlashSnap is inspired by Mind Snap Duels from the Matiks platform. We liked the idea of a simple memory-based game that keeps users engaged while sharpening focus and recall. This led us to create a fast, snap-based memory experience that feels quick and satisfying.
What it does
FlashSnap is a quick single-player memory game built around speed and attention. Players remember patterns and snap correctly as fast as possible, making each round engaging, challenging, and easy to replay.
How we built it
The process behind FlashSnap was simple
Phase 1: Architecture & Scaffolding I initialized the project using the Devvit CLI, choosing a React + TypeScript template to ensure a scalable, type-safe foundation.
Phase 2: Core Engine Logic I engineered a deterministic pattern generation algorithm in the client folder that creates randomized memory grids. I implemented a difficulty-scaling system that transitions the grid size from 4x4 up to 6x6 as the player progresses.
Phase 3: Aesthetic & Sensory Polish Using Tailwind CSS, I crafted a neon-soaked UI with custom animations, including a futuristic "Spinning Ring" start button. I then integrated a reactive audio engine using assets like background.mpeg and right.mpeg to provide haptic-style feedback for every player interaction.
Phase 4: Build & Deployment Pipeline I utilized Vite for asset compilation and the Devvit CLI for version management. After reaching version 0.0.2, I formally submitted the app for review to the Reddit App Directory.
Phase 5: Community Integration Finally, I established the r/flash_snap_dev subreddit, configuring it as a public playtest environment to ensure judges could immediately verify the live gameplay.
Challenges we ran into
Social Feed Context Switching: I had to engineer a dual-entry point system where the "inline" view serves as a visual hook (the Splash Screen) and the "expanded" view hosts the heavy game logic, ensuring the layout didn't break or "squish" in the Reddit feed.
Asset Latency & Pre-loading: Managing asynchronous audio and video assets (like background.mpeg and demo.mp4) within a sandboxed environment was difficult; I had to ensure these files were correctly routed and loaded before the user hit "Enter" to avoid a silent or broken experience.
Deterministic Pattern Generation: Developing an algorithm that creates increasingly complex but solvable memory patterns across different grid sizes (4x4 to 6x6) while maintaining a fair difficulty curve was a significant logic hurdle.
Accomplishments that we're proud of
High-End Visual Polish: I am proud of creating the "Moving Neon Ring" using complex CSS and conic-gradient masks, which gives the game a futuristic, arcade-like feel that stands out from standard platform apps.
Immersive Sensory Feedback: I successfully integrated a reactive audio system where background music and tap sound effects (right.mpeg, wrong.mpeg) are perfectly synchronized with game state changes to provide immediate player feedback.
Scalable Game Logic: I engineered a robust grid system that dynamically scales difficulty and patterns from 4x4 up to 6x6, maintaining high performance and responsiveness throughout the session.
What we learned
Brainstorming the design for a Reddit-style pushed us to think deeply about user interaction from the very first step. We focused on how the experience should feel at its simplest and then explored ways to gradually add layers of complexity without losing clarity.
What's next for Flash Snap
Looking ahead, we want to make the experience deeper and more replayable. Our next steps include refining the core gameplay loop, introducing progressive difficulty so each round feels more challenging than the last, and adding small reward-driven elements that keep players coming back for “just one more try.” We also plan to polish the visual feedback and pacing so every snap feels satisfying and responsive. Our goal is simple to keep the game easy to start, hard to master, and perfectly suited for quick play sessions within social platforms.
Built With
- figma
- react
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.