1
0 Comments

I sell SEO to B2B clients. Then I tried it on my own desktop app.

Day job version of me runs an agency that builds blog automation for B2B clients. Content, SEO, AEO, the whole pipeline. I know the playbook.

Then I shipped Local Waifu, a desktop AI companion app for macOS and Windows, one time purchase, and discovered that almost none of that playbook transfers cleanly to a consumer app. Around 400 trials so far. 3 sales.

I want to write about the blog specifically, because it is the channel I keep coming back to and the one that behaves least like I expected.

What the blog actually is

It is not a keyword strategy. It is a dev log.

I ship a feature, I write a post about the feature. What it does, why I built it that way, what broke. When I spent a week fighting text to speech quality, that became a post about voice quality in a local app. When I could not test the Windows build because my MacBook has no NVIDIA GPU, that became a post too.

That is the entire editorial calendar. Build something, write down what happened.

The reason this works at all is that the writing is nearly free. I already have to think through the decision. Turning that thinking into 600 words costs me maybe 40 minutes. If I had to pay someone to research keywords and produce the same volume, the math on a one time purchase app would not survive contact with reality.

Why search behaves differently for a desktop app

For my B2B clients, search intent is a funnel. Someone has a business problem, they search the problem, they land on a post, they book a call.

For a niche desktop app the intent is almost entirely comparative and constraint driven. Nobody searches "AI companion." They search for a specific constraint. Runs offline. No subscription. Works on Mac. Not cloud based. Alternative to whatever they just got annoyed by.

So the posts that get found are not the ones I thought would get found. Feature posts and technical decision posts outperform anything that sounds like marketing, because the technical post is the one that accidentally answers the constraint. A post explaining that the model runs locally on your machine ranks for the person searching "local" and "offline," and that person is my actual buyer.

The AEO side matters more here than for my clients, and I did not expect that. People increasingly ask an LLM to recommend software instead of searching. What gets you into that answer is being listed in the places models were trained on and cite from, plus having pages that describe your features in plain, unambiguous language. AlternativeTo did more for discovery than any single blog post I wrote. That is not an SEO insight, it is a directory insight, but it lives in the same bucket in my head now.

The honest scoreboard

The blog brings traffic. Traffic is not my bottleneck.

400 trials and 3 sales means my problem sits between "installed the app" and "paid for the app," and no amount of content fixes that. I could triple traffic tomorrow and get 9 sales. That is not a business, that is a rounding error with better analytics.

So the blog is doing its job and I was measuring the wrong thing for a while. I was watching sessions when I should have been watching what happens in the first five minutes after install.

What I actually believe now: for a consumer desktop app, content is a compounding trust asset, not an acquisition channel. It is what makes someone who already found you through a directory or a video decide you are a real person who will still be here in six months. That is worth doing. It is not worth doing as your primary growth bet.

What I would do differently

Write the constraint into the post title from the start. Not "New voice engine in Local Waifu" but a title that contains the words the buyer types. I lost months of compounding on posts that were named for my internal features instead of for the reader's problem.

And I would have fixed onboarding before writing post number ten.

You can check here --> https://localwaifu.com

posted toAvatar for product Local Waifu
Local Waifu