This week, I published an article about how cc-gating my trials changed my business.
It spurred a lot of debate and conversation. I’ll show how I do it, why it works, and why you should do it too.
For context, MagicSalesBot.com is a tool for B2B sales teams who do a lot of prospecting. It tracks their territories and tells them which accounts to focus on every day, with supporting research.
If you’re here for the philosophy, scroll on. If you want to know how this works on my backend, this is for you.
I build MSB in Next.js. It takes a lot off my plate. It even has Next/Auth, a built in authentication package. When a user signs up for the first time or signs in, there’s only a few pages they’d see in my tool. They see uploaded companies the signals that get generated, or settings.
Each of these pages checks the user who is accessing it, which is pretty straightforward in React. It’s simple in Next using getServerSideProps().
If the user fails any checks, they get redirected via Next Router to the correct page. Either Login, Start a trial, or Upload your first company.
So when a user signs up, or when a user gets “pay-checked”, they’re met with my pricing page.

Each of these options uses Stripe Checkout, which is again, less code that I have to write. They handle the logic of free trials ending. I set up Stripe Webhooks to confirm/deny if they actually complete checkout. If successful, I update that user to {paying: true} in my backend.
A user then goes through their trial. Since I’m still small, they likely interact with me at some point. Some find it’s not for them and ask me to cancel on their behalf. Some don’t interact with me and cancel from their settings page.
But on the 7th day of their trial, they become a paying user as their trial ends. If they cancel or fail on their payment, I again listen for Stripe Webhooks that will alert me. If payment fails or they cancel, my listener turns that user into {paying: false}. Now they’ll not be able to access the tool when I pay-check them.
First off, let my clarify what this is. I’m advocating for you, as someone building a business, to give users a limited free trial in exchange for their credit card information. Ask your users for the potential of payment if you successfully solve their problem.
Every indie hacker has a failure story. Even the most successful builders have a long trail of fail on their way to success. Of all the ways you could fail, not asking for the potential of payment has to be the worst.
The only way to give your business a fighting chance is to treat it like a business - an entity that earns money in exchange for a product or service.
When an onboarding flow restricts users from setting up for long term usage and success, we call it a bad flow.
Yet, that’s what builders are doing by not including credit card details in the onboarding flow. Users are most motivated to solve the problem they seek your help with during that initial usage. So it benefits the both of us to get them fully set up in their first usage.
But we wait for a week, two weeks, or even a month to ask for something critical to their usage. Now, they’re not feeling the pain they felt when they sought you out in the first place. It's because they’re humans who experience more than one emotion over the course of a multi-week trial. Or because you successfully solved the problem for them.
In either case, they now lack that driving emotion to give you, the builder, what you need. And why should they? Their problem isn’t staring them in the face anymore!
I hope this goes without saying, but it’s going to come up between B2C and B2B builders. If a user is not willing to pay us to solve their problem, we do not have a business.
If a user puts a credit card down after landing on your site, and cancels their trial. That is incredibly validating data. It means that the problem you articulated on your landing page is worth money to solve. It only means your product did not fulfill the promise made by that landing page.
When you wait until after a free trial to ask for payment, and a user says no, you only have that user’s words to go on. And our post-event rationalizations for our actions are rarely trustworthy. You’re faced with looking at the whole picture: Am I solving the right problem? Maybe the product needs this feature instead. Is my marketing saying the right thing?
When you gate your trials, you compartmentalize issues. Now you can be more sure of what needs to be tweaked.
We need to speak to these users to understand what would take this from good to great.
You poured your heart into building this. How many hours have you spent? What are you giving up in the short term to build this, with the hope of being successful in the long term?
Compare that to what you’re asking for. The potential of being paid by putting down a credit card. It might take the user 5 minutes to cancel, or 30 seconds to email you so you can do it manually.
Purists will scream: “That’s not user friendly!” Friendliness is a two-way street. Be kind to yourself.
Tyler Tringas, in his micro-saas e-book, says this better than I can:
Once the product is more mature and the onboarding flow more automated, it may make sense to test whether asking for a card upfront generates more long-term revenue, but in the MVP stage it is a nightmare and should be avoided.
Lastly, it is also a huge hassle to code a workflow to bother customers to add their card after their free trial expires, freeze their account if they don’t, and so on. Skip all that and ask for the card right at signup, set it up to automatically assign them to a plan after the free trial end unless they cancel. (...)
One of the big benefits of the no-freemium, card-upfront structure is that you can always keep your costs under control preventing any explosions in free trials or free plan usage. If you’re still not convinced, read about freemium almost caused Baremetrics to implode.
If you look at your product and you are convinced that freemium is the way to go, you might want to consider whether this idea is in fact a good fit for Micro-SaaS. The cost structure of freemium is risky, do you have deep enough pockets to actually lose money on your business in the short term if free users grows too rapidly? If people need to use your free product for months before they consider upgrading, I would question whether the product provides enough immediate value to be a Micro-SaaS business, though it may be a good fit for a funded startup.
What if people hate me for asking for money? What if they think I’m sleazy or a sell-out? What if no one pays and then I realize this isn’t viable and I have to go back to the drawing board?
I understand. It’s a real fear. But as Mark Twain says, “If it's your job to eat a frog, it's best to do it first thing in the morning. And If it's your job to eat two frogs, it's best to eat the biggest one first.”
You’re going to have to do hard things. That’s why you signed up for this. Go get to the other side of fear.
You can be product-led and ask users to put a credit card down upfront. They’re not mutually exclusive.
Being product-led is: Using your product as the main vehicle to acquire, activate, and retain customers.
Notice: Acquire and Activate come first. You can’t retain a customer who isn’t actually a customer.
Being product-led is not: Saying “If we build something so obviously awesome, people will beg to pay us.” Also, any other form of building that strays away from asking hard questions of ourselves or avoidance of asking for money.
The best and biggest software businesses in the world are run this way. They often require 5-7 figures in upfront, annual payments before users are even given a login.
I know, I used to work at them.
This is not to say that you should do exactly this. It’s not applicable to businesses our size. But it is applicable to the idea that you are validated in at least asking for the potential of payment up front.
I hope this helped you find a new thought or two. I really hope this helps you get paid and get that much closer to building a successful business. I’m on Twitter - if you think your case is special and you still don’t want to ask for a credit card up front, tell me why. It’d be great to hear your thoughts.
I understand where this is coming from, and in your context - it does make sense.
However, pay-walling works best for products that are powerful painkillers. If the user can clearly understand what value they're getting, and the urgency is strong enough, this strategy can work like a charm.
However, if your product is something that is a vitamin, or has a longer time-to-value, I'd recommend not using this tactic.
Take a productivity SaaS tool for example. Going this way to certain death because users experience true value after getting in and using the product for a while. Unless you have strong PMF or word of mouth, asking for CC to sign-up won't work here.
Context is everything.
What exactly do you mean by pay-walling? if you can't tell i'm new 😅
This comment was deleted 3 years ago.
This comment was deleted 3 years ago.
I just looked it up and I think you've done a great job with the copy. The value is very clear and direct.
I think what worked for you is the fact that your product is a solid painkiller even though it fits the "productivity SaaS" tag.
You have a clear solution to a well-defined problem. The customer can get it running pretty fast, I'm guessing. I think that's why CC is working great for you.
AMEN TO THAT! This is what I do at Progressier as well. 14-day card-upfront trial.
I've tested freemium, I've tested trials without credit cards, I've tested allowing users to purchase each feature individually... nothing so far converts better for me than the current card-upfront model.
Also, it's kinda satisfying to be able to only focus on my customers and not have free users waste my time.
I feel like the additional friction in the sign-up flow is much less problematic than it was say 5 years ago. People know Stripe. They know it's safe. They're used to buying subscriptions.
Also, and I feel like this is important for this model to work well: people need to know who they're buying from. And they need to know you're a decent person who can be trusted.
Counterintuitively, this may be easier for solopreneurs than larger companies to do. Would you rather trust a faceless 1000-employee corporation or a solopreneur with his full name and face on the site?
What a king, thank you for sharing this gold, best wishes for you Ryan, I learn a lot from you
Interesting. I, for one, am not convinced getting rid of a freemium model for certain businesses is the right move. For instance, look at what CopyAI is doing. They use GPT3 and anyone who uses GPT3 knows they charge per use. CopyAI has a free plan that allows a set number of uses per month, which I think is good because it gives people a chance to use it and if they hit the limit, which they likely will as GPT3 often requires multiple tries to get a good response, then they will switch to a higher tiered plan.
Awesome post! Idk how but this is the first time i'm seeing nextauth.js and I love Next.js!
Thanks for sharing! Bookmarked ✅