As I build my app I often run into situation where I want to add more features or complicate existing ones, but I resist and you must too!
As I've discussed building MVPs with other makers, one thing that everyone struggles with is feature creep.
At every turn there is an opportunity to add another feature, rebuild an existing one to improve one because it doesn't feel right.
Yes occasionally when you get into the weeds of building your MVP you realize that you missed something, something important, but more likely you haven't. You need to stick to your guns and get your MVP built and launched and into the hands of your users as quickly as possible.
Contacting a Seller
As I was building For Sale By Maker, I ran into a problem, one that could have easily lead to "I need to build this feature" and probably would have meant that I wouldn't be shipping FSBM in time for the Makers Festival submission deadline (tonight!).
Once a seller has listed their project for sale, and a buyer sees the listing and is interested in learning more or making an offer, they two need to connect. A buyer needs to be able to contact the seller.
My initial thought was to include a simple form that would email a buyer with a message from a seller. Seems simple enough for an MVP. But the more I thought about it, there was a lot under hood to stop abuse of the system.
What would stop someone simply spamming everyone who listed a project for sale? What would stop someone from abusing a single seller repeatedly emailing them?
You might say that is all out of the scope for the MVP, just build the form and ship it! Any product that doesn't put its users first is not viable. Leaving users open to abuse in this way is not something that should be shipped.
Down the rabbit hole
This could have lead me down the proverbial rabbit hole. Not only building a fully fledge messaging system, but also building all the systems needed to prevent abuse. Rather than just jumping in start building I took the opportunity to revisit what the system needed to accomplish.
I needed a way for users to communicate, but did I need to build it? My first thought was to leverage Product Hunt.
Product Hunt already has a way for users to chat, publicly and privately, since I'm using the Product Hunt API why not use their chat system? As it turns out the Product Hunt API doesn't expose anything related to chat.
How about social media, most makers have accounts on Facebook or Twitter, could I leverage their messaging system. I probably could have, but this would have required building integrations into those systems and asking users to connect their accounts. Stuff I may want to do later in the project, but not something I want or need for the MVP.
I was running out of ideas, but I knew I really didn't have the time or desire to build a messaging system for the MVP.
Build as little as possible
In the ended I decided to build nothing. The core purpose of For Sale By Maker is to surface quality projects for sale, not to enable communication between those parties. I don't (probably ever) want to be in the middle of the transaction.
So how can users communicate if they are interesting in transacting? I simply referred buyers to the Product Hunt profile of the seller where they can start a private chat on the Product Hunt platform.
Keep things simple, keep things focused on the primary purpose of your application and build as little as possible.