There are so many valuable resources out there to create products like ClickPost. Micro services, APIs, Forums, etc. Some interesting news came out today about two that have been helpful and inspirational to me: IndieHackers Acquired by Stripe.
I certainly hope to emulate the successes that many of the companies covered by IndieHackers have experienced. But I also hope to make transparent many of the strategies and processes I use along the way to help others. I am sure this will include things that work well and some that don't. Either way, I have gleaned basically everything I know from the vast resources that exist online, including IndieHackers, that I hope I can pay that back a little.
On the subject of Stripe, ClickPost was my first attempt at collecting monthly recurring revenue. I'd integrated Stripe with a web app before, though, so I at least had the basic setup down. But the subscription aspect was new to me.
Stripe does have tools to help manage subscriptions, and I looked at a few of the other tools out there built specifically for this purpose, such as Recurly and Chargebee. They seem like very robust and well supported options, but overkill for a product I have yet to generate any revenue for.
I opted to follow the advice of Dan Grossman from a Hacker News comment on dealing with recurring revenue. In short, roll your own.
As dan suggests, I set up a table to keep track of accounts and their expiration dates (30 days from last successful payment, in my case), and a table to track each payment for accounting. As of now, I am just monitoring the expiration dates to manually recharge accounts. To automate in the future, Dan suggests implementing a cron job to run daily and attempt to charge expired accounts. Depending on the result, targeted emails can also be sent as receipts or alerts for failed charges.
The other departure from Dan's advice was that I stuck with Stripe, as I am familiar and comfortable with it. Dan suggests using Spreedly, as it further decouples reliance on a single payment processor.
While this setup may not scale out of the gate, I don't expect massive growth that I cannot handle, and implementing a cron job and automated emails could easily take care of much of the heavy lifting when I am ready. And while I may end up spending more time on this aspect of the product, which is not a part of the core offering, I do believe there is the potential to gain a lot of insight into customers and other aspects of providing a successful product through this hands-on approach.
Plugging in tools like Stripe payments already gives small products like ClickPost huge advantages to getting up and running quickly. And I am sure the existing tools to further help with subscription plans add even greater benefits. They might make sense for ClickPost one day. In the meantime, I believe there's some lessons to be learned without the use of software and automation that may help me guide many other future decisions for my product.