Vent to Value

Inspiration

Workplace stress is real — but nobody wants to fill out another anonymous survey. We wanted to create a space where employees can vent freely, blow off steam, and actually feel heard, without HR forms or awkward 1-on-1s.

The idea started with a simple question: what if your work buddy was a cute little puppet in the corner of your screen that you could rant to, throw paper balls at, and who'd actually listen? Not a ticketing system. Not a feedback portal. A buddy.

We've all been in that meeting — 8 people in the room, 3 doing all the talking, the same ideas looping over and over, and the quietest voices never getting a turn. Frustration builds. Nothing changes. People disengage, then they quit. The Society for Human Resource Management estimates toxic workplace culture costs U.S. companies $223 billion a year — not from dramatic blowups, but from the slow accumulation of unheard frustrations.

Wuddy gives those frustrations somewhere to go.

What it does

Wuddy is a browser-based workplace wellness companion with two sides: For employees:

A chat box to rant about your day, powered by Gemini AI that responds empathetically and without judgment Speech-to-text via ElevenLabs Scribe so you can literally vent out loud A throwable paper ball — crumple it up and hurl it at the puppet to blow off steam (the puppet jumps when hit 🎯) Fully anonymous — your boss never sees who said what, ever

For managers:

An anonymous sentiment dashboard showing how the team is actually feeling AI-generated insights, mood scores, and recurring themes surfaced from team rants Action recommendations grounded in workplace communication frameworks Paper ball throw counts as a passive stress signal — high throws mean something's up

How we built it

We built Wuddy as a full-stack web app over the course of the hackathon, keeping the architecture clean enough to move fast without breaking things. Frontend is React + TypeScript + Vite. The centrepiece is the office scene — we designed it in Figma and then implemented it directly as an SVG in code, so the puppet, the desk, the paper balls, and all the interactive elements are crisp at any screen size and fully animatable without a canvas library. Backend is a lightweight Python HTTP server handling all API routing between the frontend, AI services, and database — simple, fast, and easy to reason about under hackathon pressure. AI Chat uses the Google Gemini API (gemma-4-26b) for two distinct jobs: empathetic real-time responses to employee rants on the employee side, and structured workplace insight summaries with action recommendations on the manager dashboard. Speech-to-Text is handled by ElevenLabs Scribe v2, transcribing voice input so employees can vent hands-free — which, it turns out, feels dramatically more cathartic than typing. Database is MongoDB, storing anonymized rants, chat history, paper ball throw counts, and AI-generated summaries. No names, no identifying metadata — the anonymization happens at write time so there's nothing to leak later. Animations are pure CSS keyframe animations — the paper ball follows a physics-inspired arc trajectory, and the puppet has a reactive jump + recover sequence triggered on hit. No animation library, no canvas: just well-timed transforms and the right easing curves.

Challenges we ran into

Getting the Gemini prompt to hold its character. The empathetic rant-listener persona needed to stay warm and non-judgmental even when input was chaotic, profanity-laden, or emotionally intense — while also never leaking specifics into the manager-side summaries. Tuning the system prompts so both modes behaved correctly without blending into each other took more iteration than expected. ElevenLabs Scribe integration in the browser. Handling microphone permissions, streaming audio chunks, managing transcription latency, and giving the user clear visual feedback on recording state — all while keeping the UI from feeling laggy — required careful sequencing of async state. CSS physics that feel real. Making the paper ball arc feel satisfying without a physics engine meant hand-crafting the keyframe curves. Too linear and it feels fake; too bouncy and it's distracting. The puppet jump timing also had to sync just right with ball impact so the reaction didn't feel disconnected. Anonymization pipeline end-to-end. It's easy to say "fully anonymous." It's harder to actually build it that way. We had to think carefully about what gets written to MongoDB, what gets sent to Gemini, and what comes back to the manager dashboard — making sure no path through the system could accidentally surface a user identity. Scope discipline. Wuddy is a concept with a lot of directions to go. Keeping the hackathon build focused on the core loop — vent → respond → anonymize → surface — rather than chasing every feature took real restraint.

Accomplishments that we're proud of

The paper ball mechanic actually works and feels fun. This sounds small but it's the soul of the whole product — if throwing the ball didn't feel good, nothing else matters. Getting the SVG scene, the CSS arc, and the puppet reaction all working together smoothly was a genuine win. The whole thing runs end-to-end in a hackathon timeframe. Employee rant → ElevenLabs transcription → Gemini empathetic response → MongoDB write → anonymized manager summary → action recommendations. That's a real full-stack pipeline, built and integrated from scratch. The anonymization is real, not theatre. We didn't just hide names in the UI. The pipeline is designed so the manager dashboard is structurally incapable of surfacing who said what — and we're proud of that. It actually feels like a product, not a prototype. The Figma-to-SVG office scene, the puppet character, the two distinct user experiences — Wuddy has a point of view and a personality that makes it feel like something people would actually want to use.

What we learned Building Wuddy reinforced something we suspected going in: the interaction model matters as much as the AI underneath it. Gemini is doing serious work, but what makes Wuddy feel different from a feedback form is the puppet, the paper ball, the voice input — the way it meets people at their emotional state rather than asking them to be professional and articulate about things that made them furious. We also learned that anonymization is a design problem, not just a technical one. Users need to believe they're anonymous to actually vent honestly. That means the UI has to communicate privacy clearly, not just implement it quietly in the backend. And practically: Python HTTP servers and React Vite apps are a surprisingly clean hackathon pairing. Fast to set up, easy to debug, minimal boilerplate fighting.

What's next for Wuddy

Wuddy Certified™ — a workplace health badge for organisations that maintain healthy sentiment scores over time, usable for DEI reporting and employer branding Personalised Buddies — employees name and customise their puppet, building a small emotional attachment that increases honest engagement over time Slack / Teams integration — so Wuddy lives where work already happens, not in a separate tab people have to remember to visit Richer manager insights — trend lines over time, team comparison, escalation nudges when throw counts spike or sentiment drops sharply Mobile app — because workplace frustration doesn't stop when you close your laptop

Built With

Share this project:

Updates