case study

Keep In Tune

A mobile app where friends share a song a day and sync up through music.

  • Visual design
  • UX
  • Figma to React Native
My role
Visual Design Lead: brand, high-fidelity Figma, UI implementation, user testing
Team
Sam Ampuero, Matt Feist, and me. A BYU class project.
Platform
Cross-platform mobile app (React Native)
Tools
Figma, React Native, TypeScript, Node.js, Express, MongoDB, Spotify API
the idea

From “how” to “why”

Original vision

To foster deeper connections between friends through a daily sharing of music.

Final vision

To synchronize and connect friendships through the universal language of music.

Our first statement described what the app does. The rewrite is about why it exists. “Synchronize” links straight to the name, Keep In Tune, and moves the idea from simple sharing toward coming together. “Universal language” raises the purpose: using music to build deeper connections, not just to post things.

Daily sharing is still the core feature. The new wording gave the team, future investors, and above all users a clearer reason for it.

who did what

The team

Visual Design Lead

Izzie Heath Me

  • Created the color palette and brand
  • Made a high-fidelity Figma mockup
  • Implemented the Figma mockup in code
  • Ran user testing and iterated on the UX based on what we learned
Software Developer / Architect

Sam Ampuero

  • Designed the database tables and created them in MongoDB
  • Integrated MongoDB into the backend server
  • Built the frontend communicator that connects to the backend
  • Wired components to real data
  • Feature design and implementation
Product Manager / API

Matt Feist

  • Integrated the Spotify API
  • Organized team meetings and took notes in class
  • Feature design and implementation
how it came together

From paper to pixels

01 · Paper prototype

We started on paper and let feedback steer

Notes on the prototype call out where in-class feedback and user tests changed the design.

Hand-drawn paper prototype of every Keep In Tune screen, with pink arrows showing the flow and notes explaining changes made after feedback
Paper prototype with annotated flows and feedback-driven changes.Open full size ↗
What the feedback changed

People might use it to “stalk” friends instead of connecting.

So friends’ songs stay blurred until you post your own. You can see who posted, and the full feed unlocks once you share. It keeps the focus on connection, which is the point of the app.

Focus on one music service: Spotify.

Based on in-class feedback, we scrapped Apple Music for this stage of development. We polled peers on social media and Spotify came back as the most used, which suits a target audience in their 20s.

Reshape favorites and add a way to look back.

Spotify’s API limited what favorites could include, so we reshaped them. After in-class feedback we also added a History tab where you can see everything you’ve posted. The feed layout was finalized after user tests.

02 · Digital wireframes

Mapping the flows in Figma

Four flows: onboarding, home and posting, friends, and user profile, including a playlist feature we later cut.

Grayscale Figma wireframes grouped into onboarding, home and posting, friends, and user profile flows, connected with prototype arrows
Low-fidelity wireframes with prototype connections.Open full size ↗
03 · Visual identity

A dark interface with one bright accent

I created the palette and brand, then built the high-fidelity mockup in Figma and implemented it in React Native. Dark surfaces carry a single lime accent for primary actions and active states.

Lime#D7F269
Primary buttons, active tab

Background#1E2023
App background

Surface#2B2D33
Cards

Raised#34363D
Raised surfaces

the final app

Final screens

Four areas, each built around the idea of syncing up with friends.

Onboarding

Log in with Spotify

Users sign in through Spotify, then personalize. Favorites are pre-filled from what they listen to most, and any of them can be swapped by searching Spotify. The last step suggests friends who already use the app.

Welcome screen reading Share what you are playing today, with a Login with Spotify button
Welcome
Spotify permission screen asking to connect to Keep In Tune
Spotify login
Profile personalization with photo, handle, favorite songs, and top artists
Personalize
Add Friends screen with handle search and friend suggestions from Spotify
Add friends
Home feed

Post to unlock

The feed is the core of the app. Until you post your song of the day, friends’ posts stay blurred. Once you share, the feed unlocks and you can like, comment, and play a 30-second preview.

Feed asking users to share first, with friends’ songs hidden until they post
Blurred home
Song search results from Spotify with a selection circle on each row
Pick a song
Caption pop-up with a Share Song button
Add a caption
Unlocked feed of friends’ posts with album art, play, like, and comment controls
Main feed
Comments pop-up with an add comment field and Post button
Comments
Friends

Find your people

Search by handle, send and accept requests on one page, and see suggestions from Spotify friends and friends of friends. Who you connect with decides whose songs show up in your feed.

Friends tab with search, requests, current friends, and suggested friends
Friends tab
A friend’s profile on the Favorites tab, showing favorite songs and artists
Friend’s favorites
A friend’s profile on the History tab, showing songs they have posted
Friend’s history
Profile

Your taste, on display

Your top three songs and artists live under Favorites and can be changed any time. History is a grid of everything you’ve posted, and each song opens to show the likes and comments it got.

Your profile on the Favorites tab
Favorites
Replace favorite song pop-up with a Spotify search
Swap a favorite
Your profile on the History tab with a grid of posted songs
History
History pop-up showing a past post with its likes and comments
Post details
under the hood

Technology decisions

Front end

React Native

All three of us already knew React, TypeScript, and CSS, so the barrier to entry was low. It also lets one codebase cover both Android and Apple. We were very satisfied with it.

  • React Native
  • TypeScript
Backend

Node.js, Express, MongoDB

Our team knew them best. MongoDB’s interface is simple and free, Express let us host local servers on our own devices, Node.js connected the front end through APIs, and TypeScript stayed the common language across the app.

  • Node.js
  • Express
  • MongoDB
  • TypeScript
API

Spotify

Spotify powers sign-in, listening history, friend suggestions, search, and previews. We chose it after polling peers: every poll came back saying Spotify was the most used, which fits our audience of people in their 20s.

  • Spotify API
What we cut, and why

Scope trade-offs

Apple Music & YouTube Music

We first planned to support Spotify, Apple, and YouTube Music for accessibility. Because of time we narrowed it to Spotify only.

Playlist feature

An early plan let you collect each day’s songs into a playlist. We dropped it because of time, and because it lined up least with the vision.

Everything we cut is on the list to add in the future.

More work

Back to the portfolio

More case studies are on the way. Or take a look at the code side of my work.