Inspiration
Tier lists are fun, but most tools are manual and static. We wanted to build something that feels like internet culture in real time: type a topic, upload a photo, or rant into the mic, then instantly get a bold GOAT-to-TRASH ranking.
The main idea was to make Gemini 3 the actual product engine, not just a chatbot wrapper.
What it does
GOAT or TRASH is a multimodal tier-ranking app powered by Gemini 3.
- Text input: generates a full 5-tier ranking with witty reasons.
- Image input: detects whether the image is a menu/list or a scene/object.
- Menu/list flow: extracts items and ranks only those items.
- Scene/object flow: suggests related ranking topics for user selection.
- Voice input: extracts topic + sentiment from audio rant, then builds a personalized ranking.
- Share mode: exports the final board as a high-resolution snapshot.
How we built it
We built the app with React + TypeScript (Vite) and integrated @google/genai.
- Used
gemini-3-flash-previewfor low-latency multimodal inference. - Defined strict JSON schemas for structured, predictable output.
- Implemented a unified ranking pipeline that supports text, image, and audio contexts.
- Added safety checks (
isValidTopic+ refusal message) for unsafe topics. - Rendered final results as shareable images using
html-to-image. - Added robust UI states for loading, errors, and modal-based topic selection.
Challenges we ran into
- Keeping responses creative while still returning valid schema-compliant JSON.
- Designing reliable image branching (menu/list vs scene/object) across mixed-quality images.
- Handling voice-input variability (mic permissions, noisy audio, inconsistent speech).
- Balancing response quality and latency for a fast, demo-friendly UX.
- Preserving personality while enforcing safety constraints.
Accomplishments that we're proud of
- Built a complete end-to-end multimodal experience, not just text generation.
- Achieved consistent structured outputs across different input modes.
- Created a distinct, shareable product feel with retro UI + one-tap snapshot.
- Connected AI reasoning directly to interaction design and user flow.
- Delivered a functional, public demo-ready app with clear Gemini-first value.
What we learned
- Gemini performs best when we combine strict structure with controlled creativity.
- Schema-first design dramatically improves reliability for production-style demos.
- Multimodal AI quality depends on product flow as much as model capability.
- Good fallback logic and loading/error UX are critical for trust.
- Prompt engineering works best when tied to concrete UI states and user intent.
What's next for GOAT or TRASH
- Add user accounts, saved lists, and public leaderboard-based voting.
- Introduce collaborative party mode for real-time group ranking.
- Improve image understanding with richer item normalization and deduplication.
- Add multilingual support and regional trend presets.
- Build analytics and feedback loops to tune prompts and ranking quality over time.
Built With
- filereader)
- gemini-3-api-(@google/genai)
- getusermedia
- html-to-image
- html5-web-apis-(mediarecorder
- node.js
- npm
- react-19
- react-router
- typescript
- uuid
- vite
Log in or sign up for Devpost to join the conversation.