← Back to Blog Posts

Four Years Later, the Mood App Exists

Four Years Later, the Mood App Exists

Around 2022 I had an idea for a mood tracker: one number, how you feel right now, and a trend over the week. It sat in my head for four years. Last week I asked the ship's computer in my Discord server for a mockup at 11:40 at night, and about twenty-eight hours later the app was running on my…

Byline note: the idea and every design call are mine. The drafting is Claude Opus 5.5's, written from the Discord channel where it started, the session logs of the build and the project's commit history. Times are Eastern.

The approved mockup: a phone with an LCARS interface. An amber header reads MORALE · LOG. A tall gradient column on the left runs from red at 0 to lavender at 10, with a marker at 7.3. The big number 7.3 / 10 sits beside it, with GOOD · STABLE under it, then −0.1 and +0.1 buttons, a Why? field with mic and camera buttons, a LOG 7.3 button, and a seven-day trend line.
The sixth mockup, the one I approved. Twenty minutes after the first.

Some time around 2022 I had an idea for an app. Not a big one. You open it, you say how you feel on a scale from zero to ten, and you close it. Over a week the numbers make a line, and the line tells you something that one bad afternoon cannot.

I never built it. It went on the list with every other idea that is small enough to do "some weekend" and so never gets a weekend. Mood trackers exist, and most of them want a face emoji, five tags and a journal entry before they let you go. I wanted the opposite. One number. Done.

A president and an actor

Then I saw a short clip from Matthew McConaughey's September 2025 episode of The Joe Rogan Experience, and it pushed the idea back to the top of the list. McConaughey tells a story about shaking hands with George H. W. Bush, the forty-first president:

"Hi President Bush. How you doing today?" — while he's holding your hand — "About an 8.2 today, Matthew."

To the tenth. McConaughey says Bush did this every time: ask him how he was, and you got a number out of ten, with a decimal. Everybody else says "good, great, how are you?" Bush added it up first.

That was the app. Not a face, not a word, not a journal. A number, honest enough to have a decimal in it, that you can say in the time it takes to shake a hand. It is also why the one-decimal rule further down was the very first change I asked for.

Matthew McConaughey on The Joe Rogan Experience #2379, September 2025. Thirty-four seconds, from 1:50:46.

The clip is from The Joe Rogan Experience #2379.

Last week it finally happened. Here is how, in order.

The ship's computer

The night before, I had set up a new channel on the *Space Discord server called #computer. The instruction was simple: in this channel, act like the computer on the ships in Star Trek. Calm. Exact. No small talk. "Working." when something takes time. "Unable to comply." when it cannot be done. It posts under the name Computer, with the *Space star as its picture.

On 6 October, a little before midnight, I said hello to it. It said "Ready." I asked what it could do and got a list of ship's functions. Then, for most of the next hour, I was mostly using it to tune the channel itself: who may talk to it, how many messages each role gets, what it is allowed to do for people who are not me.

At 11:40 pm, in the middle of all that, I typed this:

create a mockup of an app that lets me select my happiness level and send the image here

Forty-seven seconds later it posted a picture.

Mockup complete. Happiness level selector, LCARS interface. Scale 0 to 10; log and note functions; seven-day trend. Displayed values are sample data.

The first mockup: the LCARS happiness level screen with a whole-number scale.
Version one. I did not ask for LCARS. The channel's persona did that on its own, and it was right.

I had not asked for the look. The computer had decided that an app made by a Starfleet computer should look like one: LCARS, the interface from The Next Generation. Black ground, amber and lavender blocks, tall narrow type. The moment I saw it, that was the app.

Twenty minutes, six versions

Then I went back to setting limits for server boosters and the Crew role, and came back to the mockup between those messages. Every change I asked for was one line.

11:54 pm. "I want one decimal place on it."

This is the 8.2 rule. Whole numbers are too coarse. A slow week of getting better is 6.2, 6.4, 6.9, and a whole-number scale shows that as 6, 6, 7. The computer made the scale run from 0.0 to 10.0, with a slider for the rough value and buttons to step by 0.1.

11:55 pm. "no decimal place on the 10"

It had written the top of the scale as 10.0. That is wrong to look at. The selected value keeps its decimal; the scale does not.

11:57 pm. "the left thing should be the slider"

This is the one that made it. In LCARS there is always a coloured column down the side of the screen, and it is usually decoration. Here it became the control. Red at zero at the bottom, through amber, to lavender at ten at the top, with the marker showing your number on the bar itself. No faces anywhere. Just the number, and a word under it: LOW, ROUGH, STEADY, GOOD or HIGH, and RISING, FALLING or STABLE since last time.

Version four: the LCARS side column is now the slider, with a marker at 7.3.
Version four. The side bar stops being decoration and becomes the whole input.

11:59 pm. "make it so they can say why they feel this way quickly/easily text or voice/video"

The computer added a reason section: a row of one-tap reason chips, a text line, and hold-to-record voice or video.

12:00 am. "too Busy"

Two words. It cut the chips and the hint text and left one row: an optional text field, a mic button and a camera button. Sometimes you know why you feel the way you feel, and sometimes you only know the number. Either is fine, and neither should cost more than a few seconds.

Simplified. Reason entry reduced to one row: an optional text field, a microphone control and a camera control. Chips and hint text removed.

That was version six, the picture at the top of this post. From the first request to the final design took twenty minutes, and most of that time I was doing other things.

A minute later I told the computer that anyone in the channel could ask it for mockups like this one, as images only, with no code. The thing I had just done for myself seemed like something other people on the server would enjoy.

"Make a new project where we will be making this"

At 2:38 am I came back to it. One more line:

make a new project where we will be making this

A few minutes later there was a project folder on my machine, made from my usual template, with all six mockups in it, the final one's HTML source, and a plan that wrote down what the twenty minutes had settled. It is called Morale for now, because that is what the mockup's header said: MORALE · LOG. The name has not been through my naming checks yet.

The build, the next night

The next night, at 2:58 am on 8 October, I opened the project and asked for this:

build this app in a way that makes the most sense, I want it to be able to work on native ios

I wanted a real app on my iPhone, not a web page saved to the home screen. A mood app has to be one tap away and has to feel like it belongs on the phone.

My whole setup is Arch Linux. I do not own a Mac. A few years ago that would have ended the conversation. Now it does not. The app is built with Expo and React Native in TypeScript, and Expo's cloud build service compiles the iOS app on their machines when it is time for a real install. During development the app runs inside Expo Go, an app from the App Store that loads the code straight from my desktop. That is a break from my usual stack, which is SvelteKit for nearly everything. For a phone-first app it was the right call.

The first version was written in about five minutes: roughly nine hundred lines. The slider column, the ±0.1 buttons, the why row with real voice and video recording, the LOG button, the seven-day trend, and a database on the phone.

Forty minutes of "it doesn't work"

Then came the part every app has, which is getting it onto the phone.

I asked for a terminal on my screen to run the commands. The QR code came up, and my phone said "no usable data". I asked whether that was because it was not square. It was: the terminal stretches the lines of the code, so it does not scan. Next try, the phone found the project and then hung on "opening project". I asked for the project's Cloudflare tunnel, so the phone could reach my desktop from anywhere and not only on home Wi-Fi, and Claude set one up at its own address. Still "problem loading project". It came down to signing in to Expo on both ends. I signed in with SSO, scanned a fresh code, and at 3:42 am:

ok it's working now... let's take this app to the next level

Twenty-eight hours, almost exactly, from "create a mockup" to the app on my phone.

Polish, from a real screen

Then I used it and took screenshots, and the rest of the night went to the things you only see on a real phone. The bottom of the app was getting lost behind the bottom of the screen, so the home screen now scrolls under the column. The 0 at the bottom of the bar was cut off by the rounded corner, so the ticks moved in. "The camera icon sucks", so the mic and camera buttons got real drawn icons. "Replay of voice notes and video needs to work properly", so there is now a History screen where you can read back old entries, play the voice notes, watch the videos, and delete an entry along with its media.

Small things. They are also the difference between a mockup and an app.

Your mood stays on your phone

How you feel, and the reasons behind it, is health-adjacent personal data. I treat it that way.

Every entry lives in a SQLite database on the phone. Voice notes and videos are saved in the app's own folder on the phone. Nothing is sent to a server, because there is no server. There are no accounts. If I ever make it work for other people, the privacy design comes first, before anything else about that version.

What is still missing

It is not in the App Store. It is not on TestFlight yet either. Right now it runs on exactly one phone, mine, through a development build.

A review of the code found a few real bugs. A very quick tap on the mic can start a recording that never stops. A double tap on LOG can save the same entry twice. There are no tests yet. Those get fixed before it goes anywhere.

The bigger questions are still open too: the name, whether it is just for me or for anyone, and whether voice notes should be turned into text on the phone so you can search them later.

Four years for twenty-eight hours

The part that stays with me is the ratio. The idea waited about four years. The mockups took twenty minutes, in a Discord channel, between other messages. The build and the fight with a QR code took one night.

The idea did not get better in those four years. What changed is how much it costs to try one. When the price of finding out is a sentence typed to a computer at midnight, there is no reason left to keep an idea on the list.

If you are on the *Space server and you have the Passenger role, #computer will make you a mockup too. Bring the idea you have been sitting on since 2022.

Join *Space on Discord →

The end

Linked from elsewhere

© 2026 davis9001.dev | All rights reserved.