About the project
Inspiration
We wanted to turn Reddit comments into a living, communal experience. Aquariums are calming, collaborative, and naturally UGC-friendly—perfect for a playful social game where every comment can become a fish.
What it does
Converts formatted Reddit comments into fish that appear in a live aquarium webview. Shows Fish of the Day (highest votes), pending fish, and recent additions. Provides in-tank stats and an analytics modal for quick insights.
How we built it
Client: React + TypeScript, rendered as a Devvit webview. Visuals: CSS for parallax, light rays, bubble effects; a JS “realistic swim” loop for smooth motion. Data: Fetches fish entries from a single Reddit post via Devvit API or a proxy. Logic: Parses UGC, enriches sprites/colors, filters by mode, and computes analytics. A simple timer ticks updates every 60s; overlays are configurable by URL params (e.g., mode, statsPos, swim).
Challenges we ran into
Balancing performance with visual richness for many fish. Handling UGC safely while keeping the flow simple. Ensuring the experience feels lively without overwhelming motion. Coordinating test vs production thresholds without complicating install steps.
Accomplishments that we're proud of
A smooth aquarium feel with minimal CSS/JS, including a readable “realistic swim” loop. A clean UGC pipeline: comment in, fish out—fast. A compact analytics view that requires no extra infra. Flexible overlay controls that work for screenshots and streams.
What we learned
Designing for UGC on Reddit requires frictionless input and clear formatting guidance. Small visual details (light rays, bubble motion, gentle easing) dramatically improve feel. URL-driven configuration is powerful for creators and moderators.
What’s next for fish-tank
Moderation tools (curation, profanity controls, automod integrations). Seasonal themes and event-based spawns. Achievement system and fish evolution. Lightweight persistence for analytics history and daily rotations.
Built With
- css
- devvit
- express.js
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.