Hey IndieHackers,
I'd like to share how a recent feature launch for my product (divjoy.com) ended up making $10,041 in 4 days. That's more than I've earned in the previous 4 months! What's more, this happened in entirely on Twitter. I'll be talking about some things I learned, pricing insights, as well as tactics for launching on Twitter and keeping the hype going for multiple days. Okay, let's do this ⛷
Divjoy is tool that allows you to generate a custom Node + React codebase with everything you need for your next project like authentication, database, subscription payments, marketing pages, forms, account settings, etc. Everything works out of the box.
Unlike most templates or boilerplates, Divjoy allows you to customize your technical options and template in a low-code editor before downloading your codebase. That means you get exactly what you need, nothing you don't, and you can get right to working on your actual product (you know, the fun part!).
The feature I launched was Stripe payments integration. This was a big step for the product because it meant that customers would now be able to export a complete SaaS app. Just export your code, add some environment variables, and you've got a functioning web app with pricing page, Stripe payments flow, customer billing management, webhooks, and everything else you need.
I knew there was a good number of people waiting on this feature, but I really wanted to do everything I could to ensure the launch was a success. Frankly, being a solo-founder is tough and I knew that I needed more than a small uptick in sales from this to keep my enthusiasm and productivity going strong.
After some lively debate between me and my dog (what can I say, this whole pandemic thing is getting to me), I decided to combine the launch with an awesome lifetime deal. For $49 you'd get access to Divjoy for life. That's less then the normal yearly price! Maybe I went a bit overboard on the discount, but I decided it was better to hedge my bets on a successful launch even if it meant leaving money on the table.
In terms of where and how to launch, that honestly didn't require too much planning. My entire audience is on Twitter and I know Twitter well. My plan was to post an announcement tweet in the morning and periodically update the thread throughout the day with product details and launch stats (more on this tactic later).
The last thing I did was add an announcement to the homepage:
And update the pricing section to show the deal:
The launch started with a single tweet on Thursday, July 2nd. Here's a screenshot + some tips for a successful feature launch tweet:
Likes and retweets started rolling in pretty quickly. Basically, my Twitter followers are awesome people and have made every single one of my launches successful. I really wouldn't be anywhere without their support ❤️
The major difference this time was that sales were coming in quickly as well. In past feature launches I might see a couple hundred people hit the website and 5 extra sales that day, but this time I passed 5 sales within the first 20 minutes. And I hadn't even mentioned the deal yet...
A little while later I added a new tweet to the thread, announcing the lifetime deal and some perks.
And sales started coming in even faster and continued at a steady pace over the next 48 hours. I continued to update the thread over the course of the launch, but ending up spending the vast majority of that time answering support questions and giving new customers advice on how to extend their code. It was exhausting and hard to keep up.. but also really validating to see so many people hacking away on product ideas right after purchasing. That's the whole point! A lower barrier to entry means more people building that idea they've always wanted to build.
By the time the deal ended Friday evening it had done $7,448, but I ended up extending through the weekend after waking up to a bunch of messages from people asking if it was too late.
👀 The Twitter thread was viewed 127,384 times
👋 Sending 2,619 people to divjoy.com
💬 Resulting in 46 support chats and 9 screen-share sessions
💸 Driving $10,041 in sales over 4 days
I really really did not expect things to go so well and was honestly kind of baffled the whole time. After finally getting some good sleep Sunday night and reflecting on what happened I came up with a few thoughts:
All in all I'm ecstatic about how the launch went. I was hoping to break $1,000 in sales and ended up doing 10x that. What more can I ask for?
Since the launch I've spent most of my time talking to new customers and learning about what they're building. Over the next month I'm going to be focused on expanding the selection of templates/components, working on an improved onboarding flow, and finally getting my SEO game together.
I hope you found this writeup interesting and that it helps inform your next launch. Feel free to drop any questions you have in the comments below.
🔗 divjoy.com?promo=indiehackers (40% off deal for you)
🔗 twitter.com/gabe_ragland
Hey Gabe, congrats on the launch! Really exciting that you 10x'd your expectations. Really amazing work :)
Few questions for you:
Honestly not sure yet! I probably won't be doing 50% discounts much more. Deterring customers from getting it during non-discount periods is definitely a concern.
I don't really have a metric for that currently, although I am keeping track of launched projects in a doc (at least the ones I hear about from their creators). That might be the best metric for success and worth incorporating into analytics.
What do you mean by supercharge?
Congrats man! I followed the launch on Twitter and was awesome to see how successful it was!
I run a very similar product in the Django space (saaspegasus.com). One concern I've had with doing this kind of flash sale is making my existing customers - some of whom paid more than $500 - mad.
Do you ever get that feedback and if so how do you deal with it?
Thanks Cory! And thanks for buying Divjoy as well ;) Making existing customers mad is definitely a concern.. although I haven't actually found it to be a problem so far. Don't plan on doing these kind of steep discounts much if at all again, so hopefully won't be an issue. SaaS Pegasus looks very cool. I noticed from your IH posts you've been raising prices over time. How has that been working out?
Thanks for getting back! Yeah I bought Divjoy to see how you set things up relative to how it works in Pegasus. I actually discovered it way back when you were on a Startup School lecture and has been fun seeing your progress. I'm thinking of moving Pegasus to a UI-driven configuration + download flow soonish (mostly as a mechanism to make it easier to facilitate different price points for different add-on modules). Divjoy has been an inspiration in that regard - your UX for configuration is awesome. That said, I haven't actually managed to look at the code yet - hoping to soon! I agree your onboarding docs could use some work. :)
As for raising prices - it's a good question! I've done it twice now. When I went from $100 to $200 there was a flurry of sales after the announcement but before the actual price increase (this is kind of my equivalent of doing a flash sale). Then sales slowed down for a couple months but revenue grew since it was a 2x price point. And continued to grow slowly after that.
With the shift from $200 to $300 I observed a similar phenomenon of a spike when I announced it and a slow down after it went live. The jury's still out on the long term impact, but it's been similar to the last go around (fewer sales, more total revenue) thus far. Unfortunately I don't really have the analytics set up to verifiably say whether it's been a success or not since there are so many other variables at play.
But I will say two things:
I think if I knew revenue would be the same I'd always choose the option that gave me more sales (both for the psychological reason above and because more sales = more feedback, more marketing opportunities, more potential advocates etc.). But the upside of the higher price point can be huge.
Sorry that was so long! Feel free to hit me up if you ever want to strategize on this stuff. My email is on my website: https://www.coryzue.com/
p.s. I'm internet friends with a handful of other indie hackers making saas templates and i wonder if we should try to get some kind of support group going. I feel like we can all learn a lot from each other! :) That said - as you are probably aware - the JS space is more crowded than the Python/Django one so more are your direct competitors....
Thanks so much for the detailed answer! You’re definitely convincing me I should experiment with higher pricing.. I can imagine it being pretty brutal getting 3-4 large sales a month and not knowing when the next one is coming. When I was getting 0-2 a day and had a stretch of a few days without sales it kind of got to me haha. If it makes more though then ultimately worth it. Have you experimented much with paid advertising?
I've paid for advertising with our first product - a credit monitoring service. We did a cable commercial, Facebook ads, and a Google ad. Honestly, that entire business was a horrible experience because nothing we tried resulted in sales. I do have a small budget Google App Ad for Signils and it's working well from a user adoption perspective. We'll see soon about monetization in our next version.
My conclusion, use word of mouth, social, and anything as close to "free" as possible unless you figure out a channel that works and it does actually accelerate traction/growth/revenue (whatever is important to your business).
Thanks for the thoughts! Yeah I've been hesitant to try paid advertising with my current conversation rate being below 1%. That works out okay with around 300 daily visitors, but probably not so great for paid ads. Feeling much more optimistic around SEO and content marketing.
It makes sense. By the way, you mentioned raising your prices. Maybe the way to go is to implement a subscription model. Have you looked at what your traction and revenue numbers could look like with a recurring revenue model instead of pricing on a per unit basis?
Yeah actually the plan is to switch to $99/year soon and see how it goes. I'm still a little unsure on best way to gauge success prior to seeing what churn is like after a year. Obviously, if number of customers stays the same then I know it's a success. But what if it's 50%.. There's probably some reasonable estimates I can make. Anything I'm missing that might make thinking through that easier?
My understanding is that saas based business have (or should have) very low churn - like single digits. The idea being, they signed up for a reason and if you continue to listen to your customers and give them the value and features they want, they stay for many years. I've read that if you have churn as high as 15-20%, you're doing something wrong.
Also, adopting a saas business with a subscription model results in better revenue and profit margins. That's the reason why saas based businesses typically have a higher customer acquisition cost (CAC) than non-saas businesses. That's because the long-term value of that customer justifies higher sales and marketing costs.
In your case, let's say you expect to retain a given customer for 5 years. Your LTV is $495 ($99 x 5) vs a one time sale which gives you an LTV of $99. Of course, you could have repeat customers but saas is basically saying everyone is a repeat customer.
Thanks, that makes a lot of sense. My main concern is that my users will be exporting a codebase to build on and may not have a strong reason to renew unless they are starting a new project each year and would like the most up to date code from Divjoy (as opposed to re-using their existing codebase).
I'm working on adding some longer-term value, including a community w/ monthly hackathons, and the ability to export single components/integrations a la carte (so they can come back and grab new one's for an existing product).
Most similar products do one-time pricing (tailwindui.com, spark.laravel.com, etc). Anyway, I know that's my problem to figure out, but it does make me a little less confident on predicting churn early on. Maybe something I can guesstimate better simply by talking to customers and asking if they expect to renew 🤔
Haha, yeah I'm the same. After several days with no sales I start to doubt the whole project (and by association, myself). The human psyche is funny.
I haven't done any paid advertising yet. I tried to run ads on very specific blogs/newsletters, but thus far haven't successfully made it happen. Organic search and content marketing are my main acquisition channels at the moment, with a small handful coming from my (small) audience on twitter, etc.
I purchased Divjoy quite some time ago. Initially I was going to use it to learn React for my next project but I ended up switching to Vue because I'm more familiar with it.
Even so, I absolutely still think buying Divjoy was a great decision. I learned a lot just by looking through the code and seeing how it all works. I still refer to it from time to time.
Congrats on the launch! :)
Thanks Dylan! Happy to hear it was still useful even though you switched to Vue. Vue is really nice as well. Maybe someday I’ll be able to add support :)
Joshua from South Africa here. I just became a paying member of divjoy!
I like your product!!!
Hey Joshua, thanks for buying! Hope you get a ton of value out of it. Would love to see what you end up building :)
As I always say, it's much easier to justify a single payment. I am no different when evaluating products. Congrats, this was a real success!
Thanks Josef! Yeah the single payment for lifetime access seems to work really well. Seems like most startup advice says you need to build a subscription business, and that’s great if possible, but I think sometimes people forget that one-time payments can still do quite well if the market is big.
I love your advice to "be f*cking excited." Gold!
Congratulation!!! You exceeded your expectation 10 times,that is awesome.
Thanks! By the way your Tailwind component library looks great. Nice job.
Thanks
This looks like an amazing deal. Couldn't help but purchase it 😁
I might end up creating a Paddle payments integration
Thanks for purchasing! Message me anytime if I can help. I'd love to see what you come up with for Paddle. Maybe I can add that as a payments option..
This is amazing. Just made the purchase.
But yes, please work on some documentation/tutorials so that it can also be used as a landing page generator for non-coders like me. ( I already suggested this under Spectrum community )
Thanks for buying! I'll be working on some docs and videos for the editor. Anything in particular I can help with right now?
This is great - congrats! A really helpful guide too as well to try and do this ourselves. I'e noticed that you already had the advantage of having 3000+ Twitter followers - not massive but still a huge help. What would you suggest to founders who might not have that kind of following?
Yeah it would have been much harder without that following. I got most of my Twitter followers from launching usehooks.com back in late 2018 (only had 300 then). Divjoy was in private alpha at that time, so it was definitely a risk to divert my attention to a side-project, but ended up paying off.
My advice would be to always look out for opportunities where you can offer something free and high-value, as that can be a great way to grow your following quickly. That might mean some experimentation and finding a tweet topic and format that people love (Steve Schoger's design tips come to mind) or it might mean jumping on a limited-time opportunity (in my case, creating the first site for React hooks examples).
That's awesome advice, heartening as well that a previous project + just sharing value from it can build an audience for the next one, and then the next one! Appreciate the inspiration Gabe :-)
Glad you found it insightful Janey!
Oh man, this is great advice. I really like the way you jumped on a new trend to grow an audience. UseHooks looks awesome btw. I love the simple explain by example format.
Thanks Dylan! It's a fun project. Tricky to keep finding examples that are both short and useful.. but every once in awhile I find I need to write a hook for Divjoy and can turn that into a post.
The idea of pairing the launch with the deal is so clever! So simple and yet so effective in this case. Congrats on the success 🚀
Thanks Krishan 🤗
Awesome work Gabe, I admired your work ever since I heard about divjoy! What I love the most about the overall product is it's obvious product founder fit, the key ingredient IMO, your passion really makes this thing shine ;)
It seems that with your Twitter audience you already found a perfect, natural marketing channel which converts well.
Did your following just naturally grow over time as you used Twitter or did you put any special effort into building it up?
Thanks for the kind words Maximilian! The vast majority of my following actually came from launching usehooks.com in late 2018. Dan Abramov and some other prominent people in the React community shared it and I went from a few hundred to a few thousand followers in a matter of months. I definitely recognized how this might be useful for Divjoy (in private alpha at the time), so after that bit of luck I began making a concerted effort at growing my Twitter account. Mainly I just focused 100% on dev stuff, code tips, and sharing Divjoy progress.
That makes sense, actually used usehooks.com a lot of times myself. Nice, thanks for that valuable insight!
Great execution with this launch Gabe! 📈
Lots to learn for this write up
Thanks Anthony 🙏
This was awesome to see happening in real time. Really happy for you Gabe, and a little jealous too! ;)
What were the things you would've put in the FAQ, and would you have known about those beforehand?
Thanks Kilian!
One question I got a lot was "Do I have to pay every time I want to export", which is a little funny because I mention its a lifetime deal and for unlimited projects.. My guess is there's just a lot of people that immediately look for an FAQ and don't bother to read through all the site text. Not sure I would have predicted that ahead of time.
Other more obvious ones were:
You are right, people don't bother to read through all the site text, they prefer TL;DR which is impossible to make in many cases without losing a good bit of info. I have one client that have everything explained on site (tour provider) ;
through the heatmap script and tracking I can see in real time how people fast-scroll through the info and decide to click the option on the contact form "send me email with all the info",
which is basically the same info that they would found on the page, nothing more , nothing less. They don't read, and even when they do, email with same questions is coming, asking for something that is already written/answered on the page and they already acknowledged it as a fact.
Congratulations Gabe! Divjoy is an incredible product that saves people so much time and completely offloads the yak-shaving to you.
I'd love to know your thoughts on customer acquisition during flash sale periods. You halved your price- did you acquire a lot more customers at the half-price point to make up for the loss? Any regrets about setting the price that low?
While I'm at it, do you plan to add TailwindCSS support?
Thanks Vic! I'll have to start using that yac-shaving line in my marking text somewhere. "We'll shave your yac for you!"... hmm needs some work.
Anyway, I'm pretty happy with the price I chose. My feeling was that extra money now is better than more money later, particularly given the current economic conditions. This also gives me breathing room so I can worry less about my sales count today/tomorrow and focus more on long-term efforts that will expose Divjoy to a bigger audience (SEO and content marketing, improvements to the editor that make it easier for non-devs, building an awesome private community w/ events). It's hard to think long-term when you're wondering how you're going to pay rent.
That said, I definitely intend to raise prices over time and I'm not sure I'll do the $49 thing again. Well, except for the IH promo link I added above ;)
Awesome job Gabe. You deserve it :-)
I really want to buy this but just noticed you only have React and not Angular sad face
Yeah going to stay 100% focused on React and building out the best library of templates and integrations as possible. Someone should make one for Angular though!
This is awesome this is exactly what I have been talking about doing with my product but I wasn't sure it would actually work, so it's great to see it worked for you! I'm going to use this information towards my launch! Thank you for the detailed post!
Nice! What's your product?
It's not out yet, but I'll post it in here once I launch it soon! It's just some budgeting/expense software.