Inspiration
While it is easy to open up that fresh journal page when you first wake up in the morning, the most difficult part is to keep logging your feelings by the end of a stressful day. MindLog started from this simple struggle: the moments when people most need reflection are often the moments when they’re too stressed or exhausted to open a blank journal page and write. Traditional journaling captures thoughts, but it rarely responds to how your body is doing, and biometric tools track numbers without helping you make sense of them.
What it does
MindLog is our solution to supplementing that morning journal by turning a quick daily check‑in into a gentle, personalized reflection ritual. Each day, MindLog:
- Captures an overall stress score from Presage’s contactless vitals sensing.
- Lets you log a short voice or text entry about your day. Uses Gemini to generate:
- A personalized song recommendation (title + album cover image) that fits your mood.
- A short positive affirmation sentence.
- A summary of what you said.
- A list of positive things / things you could be grateful for based on your entry.
- Stores everything in a journal timeline with filters and a dashboard so you can see stress trends and highlight entries over time.
The Goal
Even on your most overloaded days, you can do one quick check‑in and still walk away with something supportive and structured.
How we built it
We split the work across four main pieces: Front-end, Sensing, AI Generation, and Web app.
Stress sensing A small iOS/macOS helper app uses the Presage SDK to take a 10 second webcam snapshot once per day and read vitals. We normalize those vitals into a 0–100 stress score and send it to our backend. Then the web app fetches the current day’s score and shows it as the baseline for that entry.
Frontend We designed the experience in Figma, then used Figma Make to generate a first pass of the layout and components. The live app has a dedicated “Journal” tab that mirrors the Figma design: stress score card, soundtrack tile, affirmation strip, summary, and gratitude list.
AI & voice After a user submits a daily entry, the frontend sends { stressScore, textEntry } to the backend which calls Gemini to get structured output.
We store everything in MongoDB, which powers the journal timeline, filters, and a simple stress‑over‑time dashboard.
Challenges we ran into
We hit several roadblocks along the way: Presage on macOS/iOS browsers: Our original plan was to use Presage directly in the web app via webcam, but platform limitations made that unworkable. The workaround was building a Swift helper and pushing stress scores to our backend, which took time to architect and implement under a hackathon timeline.
Figma Make → GitHub → VS Code: We initially pushed to the wrong GitHub repository, then had to sort out which repo Figma Make was actually updating versus which one we had cloned locally. We also learned that Make’s code is a starting point, not a finished product and required some cleaning up of the structure.
Connecting the Gemini to the front end of the project.
Scoping features: We originally planned an interactive AI conversation, but realized that would stretch the scope too far. Pivoting to a single high‑quality reflective page per day: song, affirmation, summary, gratitude, stress, was a key product decision for our project.
Accomplishments that we're proud of
We’re proud that MindLog is a true end‑to‑end system: Presage in Swift captures a real daily stress score, which flows through our backend and MongoDB into a polished React UI with Home, Journal, and Dashboard views. Gemini returns many features such as recommended songs and affirmations that a traditional journal would not be able to provide.
What we learned
Tools such as Figma Make can turn a week long project into 24 hours worth of work. Even though AI can create amazing visuals and develop the front end of the website super quickly, AI credit limitations taught us to learn how to phrase prompts precisely. Having Presage only work reliably through a Swift helper pushed us to design a simple, robust API contract between the native app and the web app.
What's next for MindLog
If we had more time, we’d like to:
- Integrate more continuous or wearable signals as an optional input.
- Add weekly and monthly recap pages generated by Gemini, summarizing patterns and wins.
- Explore privacy‑preserving analytics for therapists or wellness coaches.
- Build native mobile apps so the entire flow can happen in one place.
Built With
- elevenlabs
- gemini
- mongodb
- next.js
- presage
- python
- swift
- typescript
Log in or sign up for Devpost to join the conversation.