Daily habits
Add the habits you want to keep, such as going to the gym or drinking water, and check them off each day. They reset every morning.
A gamified habit tracker where you compete on consistency. I designed, built, and deployed the whole thing on my own for BYU’s Web Programming class.
HABITat started as a class project, and I ran it on AWS with its own domain. The hosting costs added up, so I disconnected most of the AWS services after the class, and the live site no longer works properly. The motivational-quote service it used has also stopped responding.
The screenshots below come from running the real code on my computer with sample data. The full code is on GitHub.
View the code ↗For anyone who feels forgetful, unmotivated, or disorganized, HABITat turns a daily to-do list into a game. You check off your habits each day, build up streaks, and see how your consistency stacks up against everyone else’s.
Add the habits you want to keep, such as going to the gym or drinking water, and check them off each day. They reset every morning.
Finish a habit on consecutive days and its streak grows. Miss a day and it starts over, so consistency is what counts.
Every user’s total streak is ranked on a shared leaderboard, so you can see how you compare.
When someone checks off a habit, the leaderboard re-sorts for everyone with the page open. No refresh needed.
The dashboard greets you with a motivational quote pulled from a third-party quotes service.
People register and log in, and each person’s habits are stored privately under their account.

A leafy green palette and a bold display typeface set the tone, and a small sprouting mascot gives the app a face. Streak bars fill in green as habits grow.
Primary#4A7C59
Fresh#6DB87A
Light#A8D5B0
Deep#2D5A3D
Screenshots of the real code running locally, with sample users and sample habits.
The full stack is mine, from the button you click to the database it writes to.
React marks the habit done. If it was finished yesterday the streak grows by one, otherwise it restarts at one.
The app sends the change to my Express API, which checks your login cookie and stores the habit in MongoDB.
The server adds up all of your habits’ streaks into a single score for the leaderboard.
The new score is pushed over a WebSocket to every open leaderboard, which re-sorts instantly.
Passwords are hashed with bcrypt before they’re stored, and each login sets a secure, HTTP-only cookie. I deployed the app to an AWS server with its own domain name and HTTPS.
Sep 2025
Oct 2025
Nov 2025
Dec 2025
The app isn’t live anymore, but everything is on GitHub.