paint-brush
Personal Developer Can Beat Big Company with User Supportby@inkdrop
858 reads
858 reads

Personal Developer Can Beat Big Company with User Support

by InkdropJuly 8th, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Do you think personal developers always lose to big companies? No. Small products can move quickly whereas big companies are sluggish. When it comes to user support, we can do much better.

Company Mentioned

Mention Thumbnail
featured image - Personal Developer Can Beat Big Company with User Support
Inkdrop HackerNoon profile picture

Do you think personal developers always lose to big companies? No. Small products can move quickly whereas big companies are sluggish. When it comes to user support, we can do much better.

I’m TAKUYA, a freelancer and the developer of Inkdrop which is a Markdown note-taking editor. Recently this service grew to be able to make $350 per month and the users look happy to subscribe it as following:

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

@inkdrop_app Glad to be one of your subscribers!

— @alpha1beta

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

I would like to share how I attract them in terms of the user support.

Answer Quick


Users are so used to canned responses that show up days later. If you have a problem, it usually won’t be resolved within the same day. So people don’t expect a quick response at all when they send an email.This is where you can come in.

They will be surprised if you answered to support requests within 90 minutes. Their attitude with dissatisfaction turns 180 degrees. When I got a support email, I’m always trying to stop my all current tasks immediately and just hit the reply button. Then, they reply starting with “Thank you for the quick response.”

Even if I don’t have a perfect answer, I do say something. It’s not good to put it off until you get an idea. You can buy goodwill with a response that is delivered quickly in an open, honest way.

Credit Contributed Users in Release Notes

Apps are made by not only their developers because users help us by giving feedback. You must be happy if you could get a credit from the author when you have reported a bug and it’s got fixed. But almost apps don’t credit their contributions to the public. Why? Because it’s hard to do for big companies since there’re too many customers to credit.

I’m always trying not to forget to credit Inkdrop’s users in the change history in every release like this:

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

Inkdrop for Mobile v1.3.0 is out! Thanks @isseium for the bug report.

— @inkdrop_app

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

If I added new feature which was requested by a user, even if you had planned before, I would write “Thanks ~~~” in the change history. It works like a charm:

body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

@inkdrop_app I love it!! PS other people... if you don't know, I'm Jay 😜

— @kjaymiller

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}

@inkdrop_app I've been searching the web high/low for an app to store my code snippets w/ nested notebooks. VERY VERY few. You've convinced me to use it!

— @allanmohr

function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500 < maxWidth) {window.frameElement.setAttribute("width", "500");}}

It involves positive engagements with users effectively with no additional cost. It makes them want to tell their friends “hey look, my reported bug has been fixed!” Any small products can do it easily. In addition, it would be a good appeal to people “We hear what you’re saying.”

Note that I don’t mean that you have to please everyone who gave feedback. You should change your product only if you would think it’s truly necessary as I wrote in this article.

Be Honest and Friendly

I don’t promise features I can’t make it come true. It’s easy to say “it’s coming soon..” but you shouldn’t say that if it’s not really coming soon. Being honest and friendly can make people possible to believe your product. I hope it helps!

Inkdrop - Note-taking App for Markdown Lovers