Inspiration
Everyone has a letter they've never sent — to an ex, a job they left, someone they've lost, or a version of themselves they've outgrown or the sibling their parents treated as favourite.
This idea is personal. In high/Secondary school, I used to write down things I couldn't say out loud, and then burn the paper. Not out of drama, but because it genuinely felt like the start of something new. Movies do this too: the letter tossed into a fire is shorthand for closure everywhere from film to folklore, because there's something real underneath the cliché.
Turns out, there's actual science behind it. Research from Harvard Health shows that writing about emotionally significant experiences can meaningfully ease stress and trauma. We wanted to take that research and the ritual I already believed in, and turn it into something anyone could use without needing a lighter, a notebook, or anyone else watching.
What it does
Let It Out is a quiet, single-purpose app: you write a letter you'll never send, then release it through a small ritual, a visual tear
- Pick a recipient: An ex, a job, a past version of yourself, someone you've lost, or anyone else
- Write freely: With an optional prompt if you're stuck, though the words are always your own
- Get a reflection: A short, warm response to what you actually wrote, not a generic message
- Release it: A tear into the void or unknown and it's genuinely gone, not archived
Your letter never touches a server. It lives entirely on your device, and when you release it, it's actually deleted.
How we built it
The backend is Python and FastAPI, built stateless by design — it's not meant to remember what you wrote. It exposes a small set of endpoints: a health check that verifies the AI provider is actually reachable (not just configured), a prompt endpoint for when you're stuck, and a reflection endpoint that responds to your letter using Groq. A keyword-level safety check runs on every letter before any AI call, so a moment of real distress is met with a crisis resource, not a chatbot response.
On the frontend, the letter itself lives in browser local storage on your device, not in a database (local or hosted). The tear ritual is built with nuxt, Vue,js, CSS respectively.
The frontend is deployed on Vercel and backend on render
Challenges we ran into
Getting the privacy model right took more thought than expected — it's easy to say "nothing is stored," but harder to actually architect a system where that's true by construction rather than by promise. We had to be deliberate about what the backend touches at all: letter text only ever exists in a single in-flight request, never written to disk, with graceful fallbacks everywhere so a flaky network call never breaks the ritual mid-demo.
We also went back and forth on how AI should fit in. Early drafts leaned on it more heavily, but that risked undercutting the whole point i.e the value of expressive writing comes from your own unfiltered words, not an AI's. Landing on the right boundary (AI helps you figure out what to write on if stuck, never replaces, the writing) took real iteration.
Accomplishments that we're proud of
We're proud that this app does something rare for a hackathon project: it has a genuine emotional moment built in, not bolted on. Watching the tear visual ritual play out in silence is also a testament of our ideas having explored several feasible and unfeasible choices of animations.
We're also proud of taking privacy and safety seriously as an actual architectural constraint, not just a line in a pitch. The letter genuinely never leaves the device unless the user opts into a reflection, and even then it's never persisted and users who might be going through suicidal thoughts can get help if they chose.
What we learned
We learned that the most emotionally resonant part of a product is often the simplest one to build technically. The digital tear is he part people remember. We also learned to be more careful designers around AI: it's tempting to add it everywhere, but the right question is always whether it serves the person's own voice or quietly replaces it.
What's next for Let It Out
- An installable, fully offline PWA version
- Optional text-to-speech, so you can hear your letter read back before you let it go
- A more robust, clinically-reviewed safety net for moments of real crisis
- Exploring whether the ritual itself could adapt — different release animations for different kinds of closure
Built With
- css
- fastapi
- groq
- python
- render
- tailwindcss
- typescript
- vercel
- vue
Log in or sign up for Devpost to join the conversation.