Recadio

MacOS Audio Device Manager

Visit Website
December 13, 2023 Learnings From Posting to Hacker News and Reaching the Top of the Home Page

As part of my marketing, I've started writing a blog about my product Recadio that covers bluetooth and audio topics.

The first post was about how to change the audio device on your Mac. Nothing very interesting there, but I knew most of the other posts would link to something like this. Mostly because that's the problem Recadio automates. I didn't share that post anywhere because I didn't find it interesting. It's only useful if you already know you need to change your audio device preferences.

For the second post I wanted to do a research about why the audio is so bad with bluetooth, so I did a deep dive on it. My goal was to write a small post with the main takeaways, and maybe a second one with as much detail as possible.

I decided to title the post "Why Is Bluetooth Sound Quality Bad on My Mac", with the following description:

The reason behind bad audio quality when using bluetooth headphones with your mac. Spoiler, it is not just your headphones. Read why and learn how to fix it.

In hindsight, I think that was a pretty good choice.

Here's a link to the blog post, and the HN submission.

Timeline

  • For the last week, I spent around 13h to research, write, and publish the post.

  • Dec 12th, 8am PT: I submitted the post almost at 8am pacific time

  • 8:10am: It gained around 10 points in the first 10 minutes, making it straight to the 3rd place of the homepage. At this point visits to the blog started growing exponentially

  • 8:30am: It was already the top article on HackerNews

  • 8:45am: –I assume– it was flagged, because from one minute to the other I stopped getting upvotes, visits to the blog, and the post was gone from the home page, only to be found at the /newest page.

Visits and Sales

It all happened in about 45 minutes, but all I can see are the summary for the whole day. It's pretty safe to assume 95% of all visits happened in those 45 minutes, although a got half the sales hours after it was flagged.

Unfortunately, I don't think it's possible to know how many people read the post in HackerNews, but the numbers I know:

  • Visits to the blog: 1117. I didn't have high expectations, maybe around 100, although reaching #1 at the homepage made me think I'd reach at least 5k. So I got a bittersweet feeling: better than expected, not great for having reached #1.

  • Visits to the Gumroad store: 195, or 17.45%. This was my first experiment writing and sharing a post, so I didn't really have a number in mind, but close to 20% sounds more or less what I could expect.

  • Sales: 5, or 2.56% from store visits, or 0.45% from blog visits. This is lower than I expected. I knew most people don't have a Mac, so I was expecting low conversion from the blog visits. However, I expected people visiting the store to have high purchase intent. From what I've read, a 2-3% conversion is what you could expect from an average audience, but I expected HN audience to be quite a good match for my product.

  • Revenue after fees: $34.35

Reflecting on the Results

From the start I knew I'd hardly get a positive ROI on the blog post. Just setting an hourly rate of $10/h would mean I'd need to make $130 to break even.

However, that doesn't take into account the rest of the learnings, like how to communicate with an audience like HackerNews.

It also looks reasonable to think I'd have made at least 5x that amount of sales if the post hadn't been flagged.

Regarding the flagging, I can't know for sure why it was flagged, but I think it could have been either of:

  • the fact that the post included promotion of Recadio, with a discount code.

  • I had a sale from a person who couldn't install the app and left a 1 star review on Gumroad. Maybe that person thought the whole thing was a scam, given the error message from Gatekeeper (thanks Apple) saying they couldn't scan for malware.

But getting flagged is something beyond my control. I wouldn't change much of what I did, except maybe try to spend less time working on the post.

I hope this was interesting!

4 Comments

  1. 2

    Maybe that's just HN algorithm and how it works? Also you did not mention all the comments you did get on HN, and all the valuable feedback.

    1. 1

      Oh yes, definitely the feedback was super valuable. It was great to hear from potential users first hand.

  2. 2

    Great post, thanks for sharing!

  3. 1

    I had an HN post too for an AI powered tool and it got SLAMMED by HN which was cool (and helpful to find issues in my product). Got my first customers there too by accident. The conversion was low but that wasn't the goal. I found the feedback quality though on HN very good, at least in my case.

October 12, 2023 First Paying User!

The first step I was taking was to give it for free so I could get some feedback and iterate on it. That way I could avoid building the features I want, in favor of building the features users want.

So this was quite a surprise for me. All the times I've talked about Recadio online so far I've also included a 100% discount, as I explained in my previous post My Approach to Marketing Recadio.

This has also happened on October 12, which is a national holiday in Spain and I was spending the day at the beach. It was an amazing feeling getting back to my notifications in the evening and find out I had made a sale while I was relaxing at the beach :)

Comment

September 28, 2023 I Released Recadio and It Couldn’t Be Opened

One of the things that I didn't know about was how to distribute a Mac app, and I did it wrong. I uploaded the "Recadio.app" that was output by Xcode, but I was supposed to package it inside a dmg.

Two of the users sent me this picture:
An error message saying Recadio can't be opened

Woops 👀

This also happened two days after Apple released MacOS 14, Sonoma, and both users had already updated. That was a red herring that got me trying to figure out incompatibility issues, when the actual problem was that I hadn't packed the app properly.

After some reading I found the actual problem. It took me a couple of minutes to properly pack the app, upload it to the store, and let my users know it was fixed.

They were actually happy I fixed it on the same day, so it ended up being a good experience.

Another thought analyzing this event was that the old me from 2 years ago wouldn't have made this mistake. But then I think it's actually something positive. The present me prioritized shipping fast instead of waiting until perfection to ship, which often results in not shipping.

Comment

September 27, 2023 My Approach to Marketing Recadio

This is the first time that I build something that is both a solution for a problem that I have, and a solution for people that I can find online. This might sound like a minor thing, but I think it's huge!

First thing I did was to go back to my searches when I was trying to figure out how to solve the auto-switch problem. I found that I ended up in a few AskDifferent questions –like StackOverflow but for Apple questions–. I went back there and tried to find the emails of the people posting the question.

Two out of four posts authors had their email in their profile, so I just cold emailed them. I'm not a big fan of cold emailing, because it's usually very spammy, but in this situation it's actually something that might be interesting to them!

The email subject was "A solution to your AskDifferent question", and here's one of the emails:
cold email example

I was worried it would look like some phishing attempt at getting them to install some malware, so I tried to keep it as personal as possible. The discount codes for example where personalized like "FREE4DANI".

To my surprise, both of them replied and were supper happy to give it a try and provide great feedback!

In the other two posts where I couldn't get the author's emails, I left a reply with a 100% discount. I got two users from those posts, which I assume were the authors. Here are the links to the posts in case someone is interested: here, and here.

And just because I usually search these things on Reddit, I made a search as if I was looking for the solution, and found another post where I could add a link. Here's the post. From this one I've gotten 4 users, but none of them have reached out to me.

I also wrote two tweets about it, but since I only have ~180 followers, and I'm not "verified", I didn't even get a reply to any of them 😅

So all in all, what have worked best for me is cold emailing people that I knew were already having this problem. I'll double down on this method and try to find more places where people ask for things like this.

Comment

September 26, 2023 Building My First Mac App Leveraging AI

Even though I have over 7 years experience as a Software Developer, I've never built a Mac app before. There are a few challenges because it's not just a new platform, it's a new language, new framework, and new IDE.

Here's another challenge for me. I love learning, so an extra challenge is to focus on getting the product working and published without getting lost in endless rabbit holes.

I guess I could use VSCode, which I use for everything else, but from the first few searches that seems to be going against the grain. Given that I have more stuff on my plate, I'd rather use something I can easily find info on, even if it's a new tool for me.

With the IDE choice made, I still need to figure out how to use both Swift and SwiftUI. Good thing we're on 2023 and AI can help us with these things :)

I've used the free chatGPT version, and it's been incredibly helpful. Not always, but most of the time. I've also used Codeium, which helped a little bit writing code, but not "teaching" me things ad chatGPT did. Also a good amount of old school docs and human debugging.

In case someone is interested, you can find my chat with GPT here. Disclaimer, it's loooong.

One of the first prompts I asked was:

alright, let's step back for a moment. It's the first time I'm making a macos app. I have no clue where to write that. Should I create a new file? with what extension? does the code need to be place within a class? or a constructor? Be very detailed please

Fun times 😅

I'm a bit sad I haven't tracked my time working on this, but v1.0 was released on September 26th, so a month and a half. I might have worked 1h average for about 4 days a week. So a quick math leaves as at around 24h of work. I'd say it's not too bad!

Comment

August 19, 2023 Why I'm Building Recadio

Working remotely means having a few meetings online per week. To hear people better I connect my bluetooth headphones, and that should be it.

However, Mac does something that I can't understand. They automatically switch all audio to your headphones. That's the output but also the mic. On a bluetooth device that turns down the quality of the audio by a lot. Because of that, you start hearing weird noises, and hear people's voices as if they were in a landline phone. They also hear you the same way.

Fixing it is simple, but there's no easy way to automate it. You just open Sound preferences –faster with the shortcut ⌥🔈–, go to the Input tab, and switch to your preferred mic.

The first few times it's not too bad, but after a while you start wondering if there's a way to automate this. Well, there isn't.

That's why I'm building Recadio, to avoid having to select the same mic every single time.

Recadio remembers the group of devices connected, and your preferred input & output for that group. Just by selecting the right mic the first time, Recadio will remember your choice, and re-select it when your Mac tries to auto-switch to a different one.

It's definitely making my life better just by removing this little –but repeated– annoyance, and I hope I can improve other people's lives even if just by a little bit.

Comment

About

I hated when I connected my headphones and my Mac auto-switched the input to the headphones microphone. That made the audio quality really bad. With Recadio I never have to worry about re-switching manually