I recently started making a product called Flowmad. It is an app that helps you become more witty and smooth while texting other people. In this post, I would like to share why and how I have been building it.
What Is It?
Flowmad delivers bite-sized text conversations to your phone every day. The conversation is like a practice question; only a portion of conversation is visible until you come up with your own response. Once you respond to the conversation, the full conversation is unlocked. And you can also see and vote on other people’s responses.
Here is what it currently looks like on my Android device after a few days of iteration:
By solving bite-sized puzzles every day, we can become more adapt at the art of texting. Solving such puzzles is not only a fun activity, but also an exercise of an important skill. No one really talks on the phone nowadays. We socialize, gossip, and woo within the screens few inches wide and tall, by ways of our busy thumbs.
Texting has not been my strongest suit for many years. I have screwed up numerous conversations that were going perfectly well, only to bash my head later on and hypothesizing what I could have or should have said. In this way I am making Flowmad for none other than myself. It is hard to ignore the itches of ruined conversations and relationships that could have been.
Story So Far
On a Saturday morning last month, I had an idea of Flowmad while texting a girl I had recently met. I was trying to get a date, but was tanking pretty hard as usual. Thinking that it would be nice to have an app that can help improve my text skills, I quickly brainstormed the idea on a whiteboard:
My initial vision involved use of artificial intelligence and natural language processing to help the learners. But after some deliberation I concluded that such vision was far-fetched for the present due to my lack of technical wherewithal and difficulty of mimicking nuanced human interactions using AI.
So I decided to keep things simple. I thought perhaps we could work on our text skills the same way we prepare for tests.
That afternoon, I sat down and made a landing page for my non-existent app. The landing page had a functional payment button. I purchased the domain and a VPS, and started serving the HTML file using nginx.
When someone paid with a valid credit card, the server would simply record the email of the customer in a MongoDB running locally rather than making an actual charge. Thinking that the webpage looked quite okay for a day’s work, I set up $100 Google Adwords campaign for the coming week, and made it a goal to have at least one payment during that week.
I set and tracked the goal for each week for the rest of the month. Here are what the goals ended up becoming:
- Week 1: Buy domain and get a proof of concept online
- Week 2: Get one person to pay for the proof of concept
- Week 3: Ship a proof of concept on mobile
- Week 4: Publish a working version on Android
On the Saturday of week 2, I queried my Mongo instance to see if anybody paid for the application.
Much to my disappointment, no one among 121 visitors paid for Flowmad. By analyzing user behaviors and feedback, I was able to gain the following insights:
My campaign was partly targeting a wrong group of people. Based on the user feedback, it seemed that the visitors were looking for ‘text game’ in a literal sense, as in the kind of MUD game they can play. One even asked if Flowmad was a game for kids.
Among those who were interested enough to peruse the FAQs, some immadiately dropped off after reading that there was no mobile app, and that Flowmad was a web-based application.
Based on the second insight, I decided to quickly ship a mobile application as a further validation exercise. Perhaps people are too risk-averse to commit $8 per month for an app that they cannot even see, despite the refund clause in the FAQ. With an actual app, I thought, I can at least try to see if Flowmad has a modicum of value offering.
I went through React Native’s documentation on that Saturday evening, and familiarized myself with the framework. It was exactly the same as React except that the host elements are not DOM elements, but platform-specific native elements. The fortuitous similarity meant that I did not have to learn a new technology, and that I could immediately hit the ground running. On Sunday morning, I started making an Android version of Flowmad.
The work was too busy on the following week, and I did not have enough energy to follow through the goal of shipping a working version. So I buckled down on the weekend of the fourth week to publish a working version in beta.
I wrote an API server using node.js and Postgres. The app only works in Android at the moment because I had to write some Java to compensate for the lack of background fetch which exists in iOS. I am shipping Android first because I own an Android device and it is important that I use the app.
While the specific goals for this month are still in the making, the general direction will be to test if the idea adds values to the world, and has a potential for monetization. To clearly test those hypotheses, I need to stay level-headed while being motivated for the product. It is hard to maintain such emotional balance.
While I am passionate about the idea of Flowmad, I need to avoid marrying it. The best thing I can do is to take a step back, let my excitement subside, and objectively experiment and analyze the idea. Monetizations and other goals aside, I will have to come to terms with the fact that I might need to render a coup de grâce to kill the project if needed.