Marketing 101 - Building Product Awareness
Didn't quite go as smoothly as I was hoping, but we're getting there!
Ok, so as promised, here’s Marketing 101 for you. When I launch something, I’ve found the hardest thing to do is getting people to know about it. So I wanted to plan out an approach to this launch that focuses on building some awareness ahead of time.
So how did I think about doing that?
Marketing by Building In Public
First of all, it’s a good idea to start with 1 platform. For me, that’s Twitter. It’s a tool for Twitter, so picking any other platform doesn’t make a lot of sense.
Next, I need to build a little awareness of the problem. Do other people notice that a lot of the accounts they follow are dormant? Maybe, maybe not. So what’s the best way to teach them about the problem?
Show them. Run analysis on their accounts and give them a report on how many dormant accounts they follow. Even if they aren’t interested in paying for the service to automatically unfollow people or see specifically who the dormant accounts are, doing this publically, each reply I send will potentially be seen by a decent number of people. Most of my tweets average about 100-200 impressions, so if I have 10 responses and I analyze those accounts and respond with their analysis, that should be 1000-2000 people who are seeing these numbers. And that’s probably a fairly conservative estimate, because I’ve had some pretty good luck when posting things like that. The last time I offered to analyze accounts, I ended up with 20-30 people that I wrote analyses for. That was super time-consuming though because it was a very manual process. I automated as much as I could, but it still took a lot of work. My goal this time is to fully automate it.
So that’s what I started working on this week. I’ve got the code that can analyze an account, I just needed to create an autoresponder. I figured that would be fairly easy. So I posted a tweet asking for people to comment to help me test something out.
And as I grabbed the link to that tweet, I decided to glance at the analytics:
That’s pretty good! Almost 1500 impressions. If you look at the tweet, you’ll see that I did get responses going, but those responses got a bit out of control and the responder started responding to itself.
But I was able to analyze the accounts that responded. That part was pretty easy. Except it did have one issue that ended up being a pretty big one.
The Big Problem
I made the mistake of using the same API keys for this as I do for Feather. And as I was testing things and running analysis, I ended up getting an error. As I dug into it, I realized something.
Whoops. That’s a bit of a problem, because I use this Twitter API account for my main product, Feather.
There was a time when I didn’t think I’d really have to worry about that limit. I was used to being all the way to the left, barely registering on the bar. Never gave it a bit of thought, until I saw the dreaded error message:
TooManyRequests('429 Too Many Requests\nUsage cap exceeded: Monthly product cap')
Cool. So that breaks a bit of everything I’ve been doing. It seems to be a soft cap, so it’s still pulling some tweets, but not all of them.
Taught me a valuable lesson: if you are using API keys with a certain limit on them for a working product, maybe don’t use those same keys for experimental/new products.
So I’ve now requested a couple more developer accounts that will be used for various different products. I’m attaching them to different Twitter accounts that I’ve set up. It seems to be allowed to do things that way, so I’m hopeful. But there was an issue: you can sign up and get limited access to the API and then request elevated access, which is what my main account had. That’s what got me the 2M tweets/month to pull. But I started by getting “essential” access, which only allows V2 endpoints and allows me to pull 500K tweets/month. Was hoping I could do a quick shift on Feather to use the new keys and switch over, but I use the V1.1 endpoints, which I don’t have access to with the new keys.
So Feather is unfortunately dead in the water for now. I’m trying to shift everything to use V2 endpoints, which is accelerating the process of moving it to use the shared API that I’ve been working on. Just have to shift from Oauth1 to Oauth2 and make sure I’m using exclusively V2 API endpoints (at least until my upgraded access is granted).
The nice part with how the Oauth2 implementation works is that I can more easily use multiple frontends, each with their own keys. So the pain I previously experienced with trying to get that working for Who Should I Unfollow? ended up being well worth it, because I can hopefully shift things over fairly easily (fingers crossed).
And Quirrel drops off in July, so I needed to be on the new backend before then anyway. Going to be trying to ship a bunch of code this weekend to start that migration and hopefully get it working.
The Marketing Master Plan
Ok, so that’s been my approach to start building awareness, and it has at least gotten some people interested in what I’m doing. I wasn’t quite able to get the analysis out yet, but that’s ok. I should be ready for that this coming week. Believe I’ve got enough functionality in place that I can make that work, even if it’s not perfect. And that’s actually one of my key goals: don’t be perfect. I think that there’s actually a ton of value in being imperfect and shipping anyway. Be willing to have things go wrong, because you’ll end up building trust that way. People are way more forgiving than you might think.
(Also, as an aside, we had a bug released to production at copy.ai on Friday afternoon/evening that prevented people from logging in for about an hour. And our CEO, Paul, posted something in our Slack channel that reinforced the idea that I’m working for a great company: “I’m a huge fan of “move fast break things”. Small price to pay for increasing deployment velocity.” We’ve been shipping things a lot faster over the past two weeks, and if something breaks, it breaks. We rally around, fix it, and don’t worry about getting in trouble. If something breaks, we look to fix the process, not pass the blame. That’s a huge competitive advantage.)
Ok, now back to the master plan. So I’m building awareness, getting people interested in what I’m doing, and then will launch the product. But I’ve talked a lot about multiple products, right? So what’s the next product on the agenda?
watchthistweet.com
One of the products I have wished for on several occasions. Have you ever seen someone post a question and thought “wow, I’d love to see the answers to that!”? I have on many occasions. But normally, I’ll just completely forget about it 2 minutes later. But what if you could simply reply with #WatchThisTweet and get an email on a daily basis with all new replies to that tweet?
That’s the next product on the agenda. And if you look at the functionality I’m building out for analyzing the accounts of the responses I get, you’ll quickly realize that most of the functionality I’ll need for this is built into this marketing tool.
So after I get whoshouldIunfollow.com released, I should be able to pretty quickly launch watchthistweet.com. As I said, my goal is to get to a point where I can release a new product every week. And that means I’ve got to figure out small products I can create from shared functionality I’ve already got.
I also bought 2 more domains this week, to add to my growing stable of them: buildinpublictoolkit.com and buildinpublictwittertoolkit.com. As I’ve been doing all of this, I’ve realized I can create very simple workflows that will let people easily replicate a lot of the work I’ve done, which will help them start doing some of their marketing a lot easier. That can help people go from 0-1 a lot easier, without having to go through a lot of the painful learning I have. I’ll be offering some easier ways to coordinate things that can really move the needle forward, make it not only easy, but also fun to do so, and experiment a lot faster to see what works and what doesn’t.
There’s something a lot of people don’t realize: when you have a library of code that does certain things, it’s actually pretty trivial to rearrange operations in different ways to achieve different outcomes. That’s a really important thing to have as an indiehacker. Because you will realize that some things work, some things don’t. But when you have a library that you can pull from, then you can just use your imagination and put them in different orders. Think about different workflows you can create. Most people fall in love with a specific implementation and just build that single flow. One of the reasons that I think this happens is that it’s tough to find users, so they build something and try to market it while making incremental improvements.
But what if it weren’t so difficult to market? What if you could build and experiment and have fun with things and users would just come to you? I think that’s possible and it’s something I’m building toward. It’s helpful when you have multiple products that can work together and build toward shared goals, but I don’t think that’s always required.
The master plan is still coming together, but the pieces are there. It’s a work in progress, but everything is. Excited to keep building and see where things go from here!