From refusing to charge for his products to making $500k+ ARR
IH+ Subscribers Only

Grant McConnaughey, founder of Postpone

Grant McConnaughey was afraid to charge for his products, so he made a New Year's resolution to make $1 online.

Six months later, Postpone got its first paid customer. And now, four years later, it's making mid-six figures ARR.

Here's Grant on how he did it. šŸ‘‡

Avoiding monetization

I worked on a number of small internet projects before creating Postpone ā€” mostly open-source packages for Python and Django. I also created an automated codebase linting service called Lintly which got a few hundred users.

But I never charged because I was scared. Charging money makes a project real: Users who pay have real expectations regarding downtime and features. I didnā€™t yet have the confidence for that.

Then, in January 2020 I started brainstorming New Year's goals. My two goals for 2020 were:

  1. Make $1 on the internet.Ā 

  2. Start growing a following on Twitter by talking about software (a la Adam Wathan).

$1 may not sound like much, but it's a major milestone for indie hackers; it means that you have finally created something that another person out there in the world finds value in.

And anyway, the point was to force myself to set up the infrastructure needed to charge people money on the internet and finally charge money for one of my projects.

Building a New Year's resolution

The project idea I came up with was Postpone, a social media scheduler, engagement, and analytics tool for creators, brands, and agencies ā€” but at the time was only a Reddit-only post scheduler and analytics tool.

There were a few reasons I went with this idea:

  1. I used Reddit quite a bit, so I was already familiar with how it worked and the culture of its user base.

  2. The big social media schedulers like Buffer and Hootsuite donā€™t support Reddit (hello niche!).

  3. I could blog about building Postpone, then use Postpone to submit my articles to Reddit, and hopefully grow a following that way.

I was making good money as a Director of Engineering at an insurance software company when I started working on Postpone. And I was really starting to miss building software after taking on a more managerial role. So the timing was perfect.

An embarrassing MVP

I started working on Postpone in January 2020 and launched it only 10 weeks later on March 16. Between January and March, I worked nights and weekends, coding as fast as I could and making snap decisions.

I wanted to ship the initial version of Postpone as quickly as possible, so I focused on a very simple MVP: the ability to schedule Reddit posts. The initial version did not support analytics, best time to post lookups, a Content Library, or hundreds of other features Iā€™ve added since then. It also did not support the 12 different social platforms we support today.Ā 

The first version of Postpone was entirely self-funded, but there werenā€™t many expenses anyway. I primarily hosted using the AWS Free Tier, which ensured that my usage cost almost nothing.

Hereā€™s the embarrassing MVP I launched:

Postpone MVP

I continued to work on Postpone a lot over the course of 2020. The reason I found the time to work on it so much is probably obvious: the pandemic. Basically for all of 2020, my wife and I socially distanced and only saw the two friends in our Covid bubble. That, paired with the fact I did not yet have a daughter, meant I had a ton of time on my hands every single evening.

I've worked full-time on Postpone as of October 2022. We're currently making mid-six-figure ARR.

Building with what you know

I built Postpone using the stack I am most familiar with because thatā€™s the one that I can build the fastest with.

The backend is written entirely in Python and Django. I use a boring olā€™ Postgres database to store data. Postponeā€™s API is in GraphQL, because thatā€™s the tech I was using at my job at that time.

Postponeā€™s frontend is written in Vue.js and Nuxt.js. Itā€™s deployed statically to S3 and CloudFront.

This stack has not changed since I launched Postpone, because it doesnā€™t have a reason to change. It still gets the job done, performs admirably, and I can use it to code extremely quickly. The only changes weā€™ve made are upgrades to the versions we use (Python, Django, and Postgres upgrades).

Building the right features

I often see indie hackers focusing 100% of their time on engineering and product, and 0% of their time on acquiring customers. This is especially common for software developers who are building side projects in their spare time.Ā 

If you want to succeed at building a SaaS product, you must be constantly asking yourself if the project or feature you want to work on does any of the following:

  1. Increases leads (people arriving on your marketing site)

  2. Increases free trials (lead to free sign up)

  3. Increases paid activations (free sign up to paid sign up)

  4. Increases expansions (switch to higher tier plan)

  5. Decreases contractions (switch to lower tier plan)

  6. Decreases churn (cancel subscription entirely)

If you canā€™t answer ā€œYesā€ to any of the above then the feature is almost not worth working on. And in the early days when you are just trying to get any amount of traction possible, you donā€™t have time to waste on features that donā€™t deliver real value to people.

Charge more

Postpone is subscription software. We offer a few different plans from $25 for content creators and small businesses up to $299 a month for large brands and social media marketing agencies.

In the early days, we charged way too little. At launch our cheapest plan was $3 a month which, in hindsight, is laughable. I believe our most expensive plan was $25 per month. Despite launching in early March, we didnā€™t have our first paid customers until June 2020.

When it comes to pricing, my advice is pretty simple: you are probably charging too little, because most indie hackers charge too little. Itā€™s difficult to grow a SaaS startup when your average revenue per customer per month is $10 and your churn is 15%.

So focus on delivering value to businesses, not consumers. Businesses will write you a monthly check for $200 without thinking. Consumers will spend $8 a day on Starbucks but wonā€™t spend $5 per month on an app.

We increased our prices by about 20% in the fall of 2023, and it made no material impact on the number of new signups or activations per month. It helped that we paired this with the release of scheduling and analytics integrations for X/Twitter and Instagram, and grandfathered in old accounts.

We delivered more value to customers, didnā€™t force anyone to the new prices, but enticed them to upgrade by including new features they couldnā€™t use on their current plan ā€” the X and Instagram integrations.

Mitigating platform risk

Speaking of new integrations, Postponeā€™s biggest obstacle came in the summer of 2023. I had been focused full-time on Postpone for about 7 months and my wife was 4 months pregnant, when Reddit suddenly announced that they would be charging for their API, just like X.Ā 

Up until this point Postpone was still a Reddit-only post scheduler and analytics tool. That meant depending on the monthly cost, Reddit charging for their API posed an existential risk to Postpone.

I chatted with Rob Walling about this, and he recommended finally expanding Postpone beyond just Reddit in order to reduce platform risk. So me and Valdir, the developer I work with, made huge changes to both the backend and frontend of Postpone to add support for other social media platforms.

Fast forward to Fall 2024, and Postone now supports 12 different social media platforms, which greatly reduced our platform risk. We also got in touch with Reddit and were able to survive the new API pricing. So overall, an event that kept me up for many nights ended up putting Postpone in a better position than it would have been otherwise.

Getting strategic with growth

In the early days, it is incredibly difficult to get anyone to know about or care to use your product. It took us three months to get our first paying customer, and we were offering it for cheap.

You can build a great product and talk about it on Twitter, but that doesnā€™t mean people are going to try it out, much less pay for it. So I tried to get a bit more strategic to acquire customers.

I used the Reddit API to download millions of posts as JSON, then grouped those posts by author to find the top 5,000+ Redditors who submit the most posts. My theory was that those would be the people who would most benefit from a tool like Postpone. After determining who these users were, I created a script to send a single cold DM inviting them to try out Postpone for free.

In the end, this strategy proved only moderately effective, as cold DMs have a very low success rate. And sending DMs like this risks your account being suspended, so it isnā€™t something I would recommend today. But it is an example of the kind of clever, scrappy marketing tactics you can try out when you have zero customers and nothing to lose.

These days our marketing efforts are much more focused on:

  1. SEO (both content on our blog and programmatic SEO)

  2. Affiliate marketing via Rewardful

  3. Lifecycle emails based on customer attributes using Userlist

  4. Some Google Ads

SEO

Our SEO efforts have led to the most users by far. Weā€™ve used the rich amount of data we have on social media posting habits to create blog posts and data analysis tools for Reddit and other platforms.

We have tools to find the best time to post to every subreddit, create social media posts with AI, discover subreddits that match a particular niche, and more. These bring content creators to Postpone so they can learn more about us, and hopefully give us a shot by signing up for a Free account.

Affiliate

Affiliate marketing has also been great for us, and has led to nearly $200,000 in revenue over the last few years. I highly recommend checking out Rewardful to create an affiliate program.

But be sure to guide your affiliates and set good boundaries, such as disallowing self-referrals and Google Ads (you donā€™t want to cede keywords and your brand to others).

Getting feedback

Beyond all of this, I think Postpone has been successful because we listen to our customers and build valuable features that solve their problems. Any time a user provides feedback I read it and consider it, and as soon as multiple users leave the same feedback it almost always becomes something we try to solve.

Customers pay because you deliver value to them, and value means solving their problems.

Making mistakes

One thing I regret is putting my marketing site and app on the same domain and in the same codebase (Vue.js).

This was really difficult to unravel later, was bad for SEO, and made it difficult for content writers to contribute blog posts since our blog was written in Markdown. We ultimately rebuilt our marketing website in Webflow, which improved performance and SEO.

Cultivate these attributes

I have a few attributes that have been my advantageous:

Consistent

The number one key to whatever success Iā€™ve had is consistency. I have worked on Postpone very consistently since launching it nearly five years ago.

Well rounded

I also think Iā€™ve benefited from being a ā€œjack of all trades.ā€ Iā€™m not an expert frontend developer. Iā€™m also not an expert designer, nor am I an expert copywriter, support person, product manager, pricing and packaging person, etc. But Iā€™m pretty good at being pretty good at a lot of things. This really comes in handy when running a small startup business, where you have to wear lots of hats depending on the day.

Quick

I also make extremely quick decisions. This sometimes means that I make the wrong decision and have to undo an action. But for the most part, I think this is a benefit.

Some decision is often better than no decision, and most decisions are ā€œtwo way doors,ā€ where you can reverse it if it was the wrong decision after all.

The speed boost you get as a startup operating this way is worth it in the end. A lot of your larger competitors need sign off from multiple indecisive people before they can do anything, so you can move faster than them and impress your customers.

Resources

Besides that there are several resources that I benefited from:

Simple goals

My long-term goal is to keep building Postpone slowly and steadily and, hopefully, one day sell it for a life-changing amount of money. I plan to do that with consistent multi-year effort, making good decisions, surrounding myself with smart people, and focusing on customer acquisition and retention above all else.

If I were 22, wasnā€™t married, and didnā€™t have a toddler at home then perhaps I would have bigger goals, like to be the #1 social media tool in the world. But Iā€™m not at a stage in my life where I am willing to work 80+ hour weeks to make that happen.

So, in general, my goals are much simpler:

  1. Make enough money to not worry about money.

  2. Enjoy this one life I have.

So far I am accomplishing both goals.

You can follow along on X, Threads, Bluesky, and our blog. Or check out Postpone.

Indie Hackers Newsletter: Subscribe to get the latest stories, trends, and insights for indie hackers in your inbox 3x/week.

About the Author

Photo of James Fleischmann James Fleischmann

James has been writing for Indie Hackers for the better part of a decade. In that time, he has interviewed hundreds of startup founders about their wins, losses, and lessons. He also writes two newsletters, SaaS Watch (micro-SaaS acquisition opportunities) and Ancient Beat (archaeo/anthro news). And he's a non-technical founder who buys/builds and grows micro-SaaS products.

Support This Post

26

Leave a Comment

  1. 2

    Thanks for the interview, James!

    Hey everyone. šŸ‘‹ I'm happy to answer any questions folks have about Postpone's journey.

  2. 1

    From refusing to charge for his products to building a successful business, this entrepreneur's journey is nothing short of inspirational. He turned his passion into a company that generates over $500K in recurring revenue, proving persistence and value-driven growth can pay off.

  3. 1

    Hi ,I wonder how you find your idea to make Postpone. Usually I think how to find the right demands of customers is the first and biggest problem for a developer. Thanks.

  4. 1

    I think he needed to start selling from day one

    1. 1

      Hah, a bit late for that now, but I tend to agree with you now!

  5. 1

    Thanks Great information. Thanks for sharing this

    1. 1

      You're welcome! I hope something in there was useful. šŸ˜„

  6. 1

    Amazing! Thanks for writing this šŸ™Œ

  7. 1

    Thanks

  8. 1

    Great lesson

Create a free account
to read this article.

Already have an account? Sign in.