Inspiration
I believe that consistency is important, and that keeping a diary—even just a few lines each day—can be valuable because it allows us to look back on our thoughts and experiences later.
However, I found it difficult to keep writing a diary when the only goal was simply to record what happened that day. I wanted to make journaling something more enjoyable and engaging.
At the same time, there are so many amazing artists and songs in the world, and I often feel that music can express emotions and experiences that I cannot put into words myself.
I wondered: what if AI could analyze my diary, understand how I was feeling, and recommend song lyrics that matched my emotions?
That idea became the inspiration for One Day, One Lyric.
What It Does
Core Features
- Daily Diary: Create a diary entry using text or images, up to once per day.
- AI-Powered Song and Lyric Search: Search for songs and lyrics based on the content and emotions expressed in a diary entry.
- Diary History: Review previously created diary entries and the songs discovered through them.
- Weekly Diary Search: Search for songs and lyrics based on a collection of diary entries from the week, available once per month.
Premium Features
- Unlimited Diary Entries: Create unlimited diary entries using text or images.
- AI Image Generation: Generate AI images inspired by diary entries.
- Multimodal Search: Search for songs and lyrics using both diary text and images.
- Unlimited Diary-Based Searches: Perform weekly and monthly diary-based song and lyric searches without additional limits.
How I Built It
I used an AI-driven development approach throughout the project to build the app quickly while continuously iterating on the product.
I primarily developed the Android app in Kotlin using Claude Code and continuously tested it using both the Android Studio emulator and physical Android devices.
I developed the backend API in Python, also primarily using Claude Code. I used tools such as Swagger UI to verify API specifications and test the implementation during development.
For product improvements, UI ideas, and the generation of character artwork, browser-based AI tools such as ChatGPT and Gemini were also valuable throughout the development process.
Challenges I Faced
The most challenging part was building a reliable way to search for lyrics based on the content of a diary entry.
The current implementation uses an OpenAI GPT model to analyze each diary entry and extract relevant information, which is then used to search for lyrics through the Musixmatch API.
Initially, I considered using the Spotify API to search for songs first and then retrieving the lyrics of those songs through Musixmatch. However, I decided not to use this approach because I could not confirm whether the Spotify API could be used for this purpose under the applicable commercial usage conditions.
Another challenge was protecting the APIs from unauthorized use. I use Firebase App Check with Play Integrity to verify that requests are coming from the legitimate app, helping protect access to the OpenAI and Musixmatch APIs. API keys and other sensitive credentials are kept on the backend rather than being embedded in the Android app.
Accomplishments I Am Proud Of
I am proud of creating a simple and intuitive user experience around the concept of "searching for songs and lyrics based on your diary," while using AI to enable more sophisticated search capabilities behind the scenes.
One feature I particularly focused on was combining text and images when searching for lyrics. By incorporating both written thoughts and visual context, I aim to capture the user's emotions from multiple perspectives and help them discover lyrics that resonate with how they feel.
I also significantly improved the overall experience during development. The initial UI was simple and somewhat generic, so I redesigned it with a diary-inspired interface and introduced an original turtle character to make the app feel more personal and approachable.
What I Learned
This project showed me how AI-driven development can enable an individual developer to build a commercially oriented application in a relatively short period of time.
One particularly important lesson was the value of clearly separating responsibilities between the mobile app and backend APIs. I also found that building the core functionality first and then gradually refining the UI, authentication, and other details allowed me to iterate quickly with AI while maintaining the original product concept.
Another valuable discovery was how services and SDKs such as RevenueCat and AdMob can significantly reduce the amount of specialized knowledge required to implement features such as in-app subscriptions and advertising. By leveraging these services, I was able to focus more of my development effort on the app's core experience rather than building every supporting system from scratch.
What's Next for One Day, One Lyric
My next step is to collect more detailed feedback from users and explore ways for users to share their experiences and impressions with each other.
I am also considering a feature inspired by a shared diary, where users could exchange the lyrics they discovered with others and enjoy the experience together.
There is also room to improve how songs and lyrics are searched and presented. For example, I could analyze more subtle emotional nuances in diary entries and incorporate them into the search process, or visualize how a user's emotions and the songs they discover change over time.
In the longer term, I would also like to explore bringing One Day, One Lyric to iOS, making the experience available to a wider range of users.
Log in or sign up for Devpost to join the conversation.