Since 2009, I have collected more than one thousand quotes.
Not just any quotes, but beautiful, memorable, and artistic ones—quotes that make you think, move you, stop you in your tracks, or drop ice-cold cubes of wistfulness, melancholy, nostalgia, sadness, despair, or longing down your throat. They’ve made me curious, made me feel alive, made me choke up, made me want to be somebody, made me want to be better, or even made me want to forget I exist.
Over 16 years of reading, collecting, and lusting after good quotes, I amassed more than 1100 such gems, feeding them to my soul. Until recently, my process was simple: stumble upon a quote, screenshot it on my phone, jot it down in Google Keep if not on my phone, collect a few, and then periodically update my Excel sheet (sometimes weekly, sometimes months would pass).
I had one steadfast rule: the final step of adding a quote to my Excel had to be done by hand. No copy-pasting, even if the quotes were digital. Actually typing in a newly discovered pearl felt satisfying, raw, and real. While it would have been far easier to copy-paste a dozen new quotes and speed up the process, the true pleasure lay in discovering a new quote, savoring its words bit by bit—its structure, language, layers of meaning, and that “aha!” moment when it all clicked together. This deep appreciation only truly sunk into my soul when I made the effort to manually transcribe each letter into my Excel sheet.
Why the Love for Quotes?
Quotes are unique pieces of literature, capable of packaging a book’s worth of meaning into just a few lines. They stand on their own, delivering profound messages with brevity. Their beauty lies in their efficiency; their very form is their function. Loosely, they are prose’s equivalent of a Haiku.
Something about their efficiency captivates my imagination—perhaps it gives me a comforting, albeit false, sense that if I read and save enough quotes, I could capture all the wisdom of the ages within the short time I have.
Consider:
I died as a mineral and became a plant, I died as plant and rose to animal, I died as animal and I was Man. Why should I fear? When was I less by dying? — Rumi
Or:
By reading the writings of the most interesting minds in history, we meditate with our own minds and theirs as well. This to me is a miracle. — Kurt Vonnegut
Or:
I often wonder why birds stay in the same place when they can fly anywhere on earth. Then I ask myself the same question. — Harun Yahya
Why Quotable?
While I still adore quotes and collect them like a maniac, my process needed to evolve. I had long envisioned a more dynamic way to host and share my collection. For a brief period, I tried Notion, but it lacked the dynamism I sought, failing to truly reflect my passion.
So, I built Quotable: Mood-based Quotes | Quotes-based Books, a webapp powered by my personal database of quotes. When you land on the homepage, you’re greeted with a random quote from my collection, along with its author. The USP is that you can search for a quote based on your current mood.
A marquee of pre-selected ‘moods’ scrolls across the screen, inviting you to choose. Select a mood, and the app scans the database, presenting three quotes that closely resonate with your choice. You can also type in a custom mood—if you’re feeling a particular flavor of human emotion, Quotable can find a suitable quote for you to relish and reflect on.
There are other small features:
- You can log in and mark quotes as favorites, which then appear on your profile dashboard.
- You can share a quote and download the attributed quote as a formatted 1:1 image, making it easy to share across different social media platforms.
- And you can simply scroll through different quotes by clicking the ‘refresh’ button below each one.
Soon, I’ll add the second half of Quotable’s raison d’être: recommending books based on the recommended, mood-based quotes.
Building Quotable has been an incredible learning experience. I leveraged several technologies including:
- Frontend: Next.js, React
- Database: pgvector extension for PostgreSQL hosted by Supabase
- Authentication: Clerk.com
- Embeddings Model: text-embedding-3-small by OpenAI
- Hosting: Vercel
One of the biggest challenges was creating the mood-based matching algorithm. I experimented with different approaches before settling on a solution using embeddings and cosine similarity to find the most relevant quotes. The process involved a lot of trial and error, refining the algorithm to ensure accurate and insightful matches.
Beyond the technical aspects, I learned the importance of iterative development with an AI assistant. It’s not as simple as ‘vibe-coding’ or ‘prompting’. As a Product Owner, I have years of experience working with dev teams, going back and forth to nail down the exact vision for the product, the vision that works best for our users.
This agile approach allowed me to adapt and improve the app throughout the development process. Quotable is more than just an app; it’s a testament to the power of passion projects. I hope it brings a little joy and inspiration to your day, just as beautiful quotes have always done for me.
Imagine having a tough week, your thoughts traversing deep valleys and high mountains of emotion, and stumbling upon a shade of feeling unique only to you and your situation—ennui, litost, schadenfreude. Then you go to Quotable to find company, to see who else has felt the way you’re feeling now. You enter your mood, and hopefully, find a quote that speaks to you across time and space, as if the author has reached through the pane of glass to shake your hand with both of theirs in wistful commiseration:
O friend unseen, unborn, unknown,
Student of our sweet English tongue,
Read out my words at night, alone:
I was a poet, I was young.
Since I can never see your face,
And never shake you by the hand,
I send my soul through time and space
To greet you. You will understand.
– James Elroy Flecker (To a Poet A Thousand Years Hence)
If—after you’ve searched for a quote and read it on Quotable—I could make you nod your head vigorously, or smile wistfully, or sit back with a sense of defeat, emptiness, or fulfillment, Quotable would have done its job.
Leave a comment