Tag Archives: digital-marketing

Is the golden age of Indie software over?

The concept of shareware appeared in the 1980s. Developers would use relatively primitive tools to create their software, then promote it via fanzines, user groups and bulletin boards to a niche audience of shareware fans. If you wanted to try the software, you would have to get hold of a floppy disk with it on. And, if you wanted to buy a licence, you would generally have to post a physical cheque to the developer. This was being an Indie developer in hard mode. A few people made a lot of money, but most vendors made modest returns on their efforts.

I started selling my first software product in 2005. This was a good time to start up as an independent software vendor. High quality compilers, IDEs, debuggers, version control systems and web servers were widely available and mostly free. The market for software was growing, as more and more people purchased PCs and Macs. Payment processors were starting to streamline online payments. But the real revolution was being able to distribute your software worldwide via an increasingly ubiquitous Internet. And getting noticed by potential customers, while never easy, was generally achievable through writing content for search engines to find, paid online ads (such as Google Adwords pay per click), download sites or even ads in physical magazines. With a lot of hard work and a bit of luck, it was quite possible to make a decent living.

Things have continued evolving at a rapid pace over the 20 years I have been selling software. Development tools have continued to improve. Mobile and web-based software has become mainstream. App stores have appeared. Outsourcing became a thing. Subscription payment models are increasingly common. Mostly these changes haven’t affected my business too much. But recently things have begun to feel noticeably harder.

LLMs have made a major impact. While I don’t worry that LLMs will do a better job than my seating planner software, data wrangling software or visual planning software any time soon (my main competitor remains Excel), everyone is noticing that their web traffic is falling. People increasingly read LLM summaries rather than clicking on search engine links or the accompanying ads. Maybe the LLM will include a link to the website that they ripped off the content from, but probably they won’t. So writing content in the hope of traffic from search engines is becoming less and less of a viable strategy to get noticed.

Other promotional channels are getting squeezed as well. Online ads are increasingly expensive and rife with click fraud. This makes it hard to get any chance of a return, unless lifetime customer value is hundreds of dollars. Google Adwords is a case in point. In the early days, I could get lots of targeted clicks at an affordable price. But Google have done everything they can to raise bid prices and generally enshittify Adwords, so they can grab more and more of the value in every transaction. I now get barely any clicks at bid prices I am prepared to pay.

One of the few useful promotional channels left is YouTube. But it is very time-consuming to produce videos and the amount of competition is huge. I fully expect generative AI to erode its value over time, as AI slop floods the channel.

Typically promotional channels start off great for vendors and become less great over time (the law of shitty clickthrus). But then new promotional channels appear and the dance starts again. But there just doesn’t seem to be much in the way of viable new channels appearing for Indie vendors like myself. My experiment with advertising on Reddit did not go well.

LLMs potentially also make software easier to write, which is a double-edged sword. It might help you code features faster, but it also lowers the barrier, so that more people can compete. Even if your new competition is bug riddled garbage, ‘vibe coded’ by someone who doesn’t know what they are doing, it still makes it harder for your product to get noticed.

The general cost of living crisis hasn’t helped either. The super-rich are making out like bandits, but everyone else has less disposable income. And that is only going to get worse when the current AI funding circle-jerk implodes.

Each of the different software platforms also have their own issues.

  • Downloadable software has fallen out of fashion and the market is shrinking as increasingly people expect software to be web-based. People are also wary about downloading software onto their computers, in case it contains malware.
  • Web-based software is more of a service than a product and is expected to be available 24×7. Expect to get lots of very unhappy emails if your server falls over. And woe betide you if your customer data is hacked. Disappearing off somewhere for a few days without an Internet connection is not really viable, unless you have employees.
  • Mobile-based software is expected to be free or, at best, very cheap. So requires huge scale to make any decent return. And that is tough when there are some 2 million apps in the iPhone app store. You are also at the mercy of app store owners, who really don’t have your best interest at heart.

The new wave of AI tools must be creating new opportunities, but it seems these opportunities are mostly there for big companies, not for Indie developers. And it is very risky to build your product as a thin layer on top of someone else’s platform. Ask people who built tools and services on top of Twitter.

It feels that it is getting harder for small software vendors, like myself, to make a living. Of course, this could be just the ramblings of a 50-something-year-old, looking back through his rose-tinted varifocals. What do you think? Has it got harder?

If you want to show indie software vendors some love, check out all the great indie software for Mac and Windows (including my own Easy Data Transform and Hyper Plan) on sale at Winterfest.

Software upgrade economics: some real numbers

My seating planner software, PerfectTablePlan, is now at v7. Major upgrades are paid (discounted 60% compared to new licences), which means I have done 6 cycles of paid upgrades. I was curious about how long it took people to upgrade, and what percentage of sales are upgrades. So I took a few minutes to crunch the numbers direct from my licence key database, using my data wrangling software, Easy Data Transform.

Here are the number of upgrade licences I sold for each week after the major upgrade. Each release is in a different colour. The values are normalised so that the peak is the same height for each release:

Upgrade licences sold per week after a major upgrade, across 6 upgrades

That looks rather messy. So here it is with the values for the 6 upgrades summed:

Upgrade licences sold per week after a major upgrade, summed across 6 upgrades.

There is a long tail of upgrades. Even when the gap between releases was 6 years, I was still getting regular upgrade purchases.

With the v5 to v6 upgrade it took:

  • 23 weeks before 50% of the upgrades were sold.
  • 74 weeks before 75% of the upgrades were sold.

So it isn’t a neat exponential decay.

This table shows how many users actually upgraded from v5 to v6:

EditionUpgraded
Home edition12%
Advanced edition31%
Professional edition45%

Most of the Home edition purchasers are buying a licence for a one-off event, such as a wedding. So it is not surprising that they are much less likely to upgrade. But I think it also shows that less price-sensitive customers are significantly more likely to upgrade, even when the upgrade is more expensive.

This graph show the percentage of PerfectTablePlan licences sold each month that were upgrades, over the 20 year life of the product:

Percentage of sales that are upgrades per month.

You can see that upgrades are still increasingly important over time. Upgrades are worth less than new sales, so selling 80% upgrade licences in a month doesn’t mean 80% of revenue is from upgrades. However, upgrades are still an increasingly significant source of revenue for us. I’m glad I never agree to free upgrades for life.

Could I have made more sales with more frequent major upgrades? Definitely. But I was also working on other projects. And I am not out to squeeze every last penny out of my loyal customers.

Could I have made more sales with a subscription model? Possibly. But subscriptions weren’t really a thing for desktop software, when I started 20 years ago. And I never felt like making a major change to a licensing model that had worked well for me, so far.

What I learned spending $851 on Reddit Ads

I am always on the lookout for cost and time effective ways that I can market my software products. Previously, I have had quite a lot of success with Google Adwords Pay Per Click ads. However, the law of shitty clickthroughs means that advertising platforms generally get less and less profitable (for the advertisers) over time. And Google Adwords is a case study of that law in action. As Reddit is a less mature advertising platform, I thought it might still offer opportunities for a decent return. So I decided to experiment with advertising my data munging software, Easy Data Transform, on Reddit.

[By the way, I understand that nobody goes to Reddit because they want to see ads. But commercial products need to market themselves to survive, and Reddit probably wouldn’t exist without ads. Yay capitalism.]

Setup

The basic process to get started with Reddit Ads is:

  • Sign up for a Reddit Ads account.
  • Enter your details and credit card number.
  • Create a campaign.
  • Create one or more ad groups for your campaign. Choose a bid for each ad group, which countries you want it shown in and who you want it shown to.
  • Create one or more ads for each group.
  • Add the Reddit tracking pixel to every page of your website.
  • Set up conversion goals.

All pretty standard stuff for anyone who has used Google Adwords. The twist with Reddit is that you can advertise to communities (sub-Reddits), rather than based on search keywords. For example, Easy Data Transform is a much better tool for most data wrangling tasks than Excel, so I can bid to show ads targeted at Excel users in communities such as: reddit.com/r/excel/ and reddit.com/r/ExcelTips/.

Like Adwords, there are various ways to bid. I don’t want the advertising platform to set the bid prices for me (because I’m not insane), so I opted for fixed price bids of between $0.20 and $0.40 per click. Some of the ad groups suggested much higher bids than that. For example, the suggested bid for my Excel ad group is $0.79 to $4.79 per click!

However, Easy Data Transform is only a one time payment of $99. Paying more than $0.40 per click is unlikely to be profitable for me, especially when you factor in support costs. So that is the maximum I was prepared to bid. Also, the suggested bids are just the ad platform trying to push up the bid price. Something that anyone who has used Google Adwords will be all too familiar with. I was still able to get clicks, bidding significantly less than the recommended minimum.

I also set a daily maximum for each ad group, just in case I had messed up and added a zero in a bid somewhere.

I created multiple ads for each ad group, with a range of different text and images specific to the communities targeted. Here are some of the ones I ran in the Excel ad group:

Clicking ‘Learn more’ takes you to https://www.easydatatransform.com/.

I didn’t try to use edgy images or memes, because that isn’t really my style. There is an option to turn comments on below ads. As Reddit users are generally not well-disposed to ads, I didn’t try turning this on.

Based on hard-won experience with Google Adwords, I only set my ads to run in wealthy countries. I also restricted my ads to people on desktop devices as Easy Data Transform only runs on the desktop.

When Easy Data Transform is installed, it opens a page on my website with some instructions. So I used this to set up the Reddit conversion tracking to count the number of times a click ended up with a successful install of either the Windows or Mac version of Easy Data Transform.

I monitored the performance of the ads and disabled those that has poor click through or conversion rates and made variants of the more successful ones. Darwinian evolution for ads. I ended up creating 70 ads across 15 ad groups, targeting 50 communities.

I wasted an hour trying to get Reddit to recognize that I had installed their tracking pixel. But, overall, I found the Reddit Ads relatively simple to setup and monitor. Especially compared to the byzantine monstrosity that Google Adwords has become.

Reddit advertises a deal where you can get $500 of free ads.

But the link was broken when I clicked on it. Someone else I spoke to said they had tried to find out more, but gave up when they found out you had to have a phone call with a sales person at Reddit.

Results

I ran my experiment from 08-Jul-2025 to 31-Jul-2025. These are the stats, according to reddit.

Spend$851.04
Impressions490,478
Clicks3,585
Windows installs177
Mac installs63
Total installs240
Click Through Rate0.73%
Cost Per Click$0.24
Click to install conversion rate6.59%
Cost Per Install $3.55

I generally reckon that somewhere around 10% of people who install are going on to buy. So $3.55 per install would mean around $35.50 cost per sale, which is reasonable for a $99 sale. So that all looks quite encouraging.

But, comparing the Reddit number to the numbers I get from Google Analytics and my web logs, I think the Reddit numbers are dubious. At best. In a week when Reddit says it sent me 1174 clicks, Google Analytics says I received 590 referrals from Reddit and my web log says I received 639 referrals from Reddit. Some of the difference may be due to comparing sessions with clicks, time zones etc. But it looks fishy.

The discrepancy is even greater if you look at conversions. The total installs per week reported by Google Analytics and my web logs didn’t go up anything like you would expect from looking at the Reddit conversion numbers. If you dig a bit further, you find that Reddit uses ‘modeled conversions‘ to:

“Gain a more complete view of your ads performance with modeled conversions, which leverages machine learning to bridge attribution gaps caused by signal loss.”

Uh huh. Sounds suspiciously like ‘making shit up’.

And then there are the sales. Or lack of. I don’t have detailed tracking of exactly where every sale comes from. But I estimate that my $851 outlay on ads resulted in between $0 and $400 in additional sales. Which is not good, given that I don’t have VC money to burn. Especially when you factor in the time taken to run this experiment.

The top 5 countries for spend were:

  1. Italy
  2. Spain
  3. France
  4. Germany
  5. Singapore

The US only accounted for 0.28% of impressions, 13 clicks and $3.81 in spend. Presumably because the US market is more competitive, and I wasn’t bidding enough to get my ads shown.

You can look at various breakdowns by country, community, device etc. This is helpful. But some of the breakdowns make no sense. For example, it says that 41% of the click throughs from people reading Mac-related communities were from Windows PCs. That sounds very unlikely!

But the worst is still to come. Feast your eyes on this Google Analytics data from my website:

Average engaged time per active user (seconds)Engaged sessions per active user
Google / organic330.75
Successfulsoftware.net / referral310.74
Youtube.com / referral270.86
Chatgpt.com / referral240.69
Google / CPC160.65
Reddit / referral80.25

8 seconds! That is the mean, not the median. Yikes. And 75% of the sessions didn’t result in any meaningful engagement. This makes me wonder if the majority of the Reddit clicks are accidental.

I had intended to spend $1000 on this experiment, but the results were sufficiently horrible that I stopped before then.

If I had spent a lot of time tweaking the ad images and text, landing pages, communities and countries, then I could probably have improved things a bit. But I doubt I could ever get a worthwhile return on my time and money.

If the lifetime value of a sale is a lot more than $99 for you, or your product is a good fit for Reddit, then Reddit Ads might be worth trying. But be sure not to take any Reddit numbers at face value.