Inspiration
Memes are the internet’s native language — fast, funny, and wildly creative. Reddit is packed with meme-makers, but there’s no true way to collaborate on making them. We wanted to fuse Reddit’s upvote culture with a live, playful space where people don’t just scroll through memes — they battle to make the funniest ones.
That’s why we built SnapCapit: a community-driven meme arena where anyone can upload, caption, and watch the crowd crown the winners.
What it does
SnapCapit lets anyone upload an image and invite the community to caption it. Users can add text at the top, bottom, or inside sleek banners, then vote for the funniest ones. When the timer (set by the uploader) runs out, the top 3 captions are automatically featured on the image — with credit to their creators.
Subreddit moderators can use SnapCapit to boost engagement by uploading images that invite creative captions, turning their communities into fun, active spaces with controlled user-generated content. Regular users can also upload their own images and enjoy seeing how others transform them into memes.
The app is intentionally simple — no extra clutter, no distracting styling — so users can instantly see what their meme will look like before posting.
SnapCapit is a gamified, community-powered way to create, compete, and surface the smartest, funniest takes on any picture.
How we built it
SnapCapit was built on Devvit Web — Reddit’s new framework for creating games and apps with standard web technologies.
We used React for the frontend, which made development smooth and allowed us to leverage existing web experience. Unlike the older, block-based approach that required heavy architecture work and complex communication setups, Devvit Web let us build SnapCapit just like a normal React app. We simply created endpoints to handle communication with the backend, making the whole process much faster and easier.
For generating the final meme images, we built a separate backend with Node.js and Express, giving us full control over how the top three captions are processed and rendered. Using a simple HTTP client, the app securely sends caption data to this backend, which then generates and returns the completed images.
This mix of Reddit’s modern Devvit platform, a React-based frontend, and a custom backend allowed us to keep SnapCapit fast, lightweight, and easy to maintain — while focusing on what really matters: letting users create and vote on the funniest memes.
Challenges we ran into
Even with prior experience building apps with Devvit, adapting to the new Devvit Web workflow was a challenge at first. Moving from the older devvit.yaml + main.tsx setup to the new devvit.json and server endpoint architecture took some time to get used to.
Fortunately, the documentation, examples, and starter templates were extremely helpful. After experimenting and iterating, we quickly grew comfortable with the new approach — which turned out to be much simpler and more straightforward than the old, block-based system.
What started as a hurdle ended up being one of the biggest wins: the new architecture made SnapCapit faster to build and easier to maintain.
What's next for SnapCapit
SnapCapit is just getting started. Here’s what we’re planning next:
- Mobile-First Experience: A smoother mobile UI for on-the-go meme creation and participation.
- Caption Styles & Fonts: The background color, and text color are not enough, we want more customization options like font choice, text size, and alignment to give captions extra personality.
- GIF Support: Allow users to upload GIFs or short clips and caption them, opening up a whole new level of meme creativity.
- Live Caption Battles: Real-time "caption-off" sessions where users compete within a timed window and watch votes roll in live.
- Subreddit Integrations: Usage of mod tools to schedule image drops, auto-moderate for inappropriate captions, and analyse engagement.
- AI-Powered Suggestions: AI-generated caption ideas to help spark creativity.
- Shareable Memes: One-click export and sharing to Reddit, X, Discord, and beyond.
Log in or sign up for Devpost to join the conversation.