Reconstructed MoodMinder interface

MoodMinder

Building MoodMinder, a personal mood-tracking app.

I wanted a simple way to check in with my mental state and see patterns over time. I could not find the version I wanted to use, so I started building it.

← Back to portfolio

The problem

I wanted a faster way to record how I was doing and see patterns over time, but I could not find the version I wanted to use.

What I did

I shaped the check-in model, moved the product from an open journal toward categories and trends, and learned enough of the web stack and AI-assisted builder tools to keep solving implementation problems.

Where it ended

MoodMinder reached a live, shareable build with accounts, storage, trends and settings. The site remains online, while the database is currently paused.

01 · Product shape

Moving from an open journal toward structured check-ins.

The early concept was closer to an open journal. Over time I moved toward repeated categories and questions that could be answered quickly enough to use regularly, then compared across time.

Product evolution

Open journal

Free-form reflection with little structure.

Structured check-in

Repeatable categories and questions.

Trend views

Compare recurring patterns across time.

Shareable build

Accounts, storage, trends and settings.

The categories could be looked at over a week, month, three months or six months. The app grouped repeated entries and surfaced how often they appeared.

That gave the product a simple loop: check in during ordinary days, then occasionally zoom out and see what had been recurring.

02 · Building

Learning the technical pieces required to keep building.

I used the new generation of AI-assisted app builders as a way into software creation. Early attempts were unreliable and I spent a lot of time dealing with build failures, authentication and backend problems. I tried different tools and services rather than abandoning the idea when one route stopped working.

Build loop

Prototype

Use AI-assisted builder tools to make the next version.

Hit a constraint

Authentication, backend, deployment or browser behavior.

Learn enough

Understand the technical piece well enough to decide.

Iterate

Change tools or implementation and keep moving.

As the app grew, I had to understand enough about accounts, databases, browser storage, hosting, deployment and web/mobile behavior to make decisions and keep moving. The version I ended up with was a React and TypeScript application connected to Supabase, with experiments involving another backend and an Android packaging path as well.

Important distinction

AI-assisted tools were part of how I built the product. The recovered application does not show an AI-model or API feature inside MoodMinder itself, so I do not describe the product as AI-powered.

03 · Live build

Reaching a live, shareable build.

MoodMinder reached a live, shareable state with account flows, stored entries, trend views, reminders and data controls. I sent it to friends and family who were interested in trying it. I never pursued distribution very far.

The hosted MoodMinder front end remains online. The database is currently paused after a period of inactivity, so data-dependent functionality would need to be reactivated before presenting the live build as a functioning demo.

Current state

The codebase is still available.

The final codebase includes the application pages and flows for accounts, stored entries, trends, settings, notifications and data management.