Stripe is not your billing system

I promised in my last newsletter to start writing and sharing code, specifically around Revenue Ops (RevOps). So I sat down with Cursor and started to sketch out a general-purpose billing system for startups using Node.js. While there are already Next.js code templates with Stripe baked in, there are many “gotchas” with that approach.

In the middle of working on that, Theo Browne dropped a GitHub repo with a single Markdown file titled “How I Stay Sane Implementing Stripe.” And his observations are 100% correct. Even if you follow Stripe’s documentation perfectly, your checkout can still be broken.

People can even get access to your service without paying! That’s unacceptable.

It all points back to the same truth: Stripe is not your billing system.

You might be thinking now “wait, Stripe is not my billing system? I thought it just handled everything for me.” Stripe does indeed provide some excellent payment features:

  • Provides consistent checkout experiences
  • Processes payments securely
  • Calculates taxes
  • Complies with payment regulations
  • Supports mobile payment methods (e.g., Apple Pay, Google Pay)

Attempting to build these features on your own would be time-consuming and error-prone. Even well-resourced tech companies like Anthropic use Stripe Checkout. People are familiar with it. It Just Works?.

Despite having a solid checkout system, Stripe doesn’t do everything. Here are just a few of the billing tasks you still have to handle:

  • Managing free trials
  • Delivering what customers paid for
  • Differentiating between individual and team accounts
  • Tracking sales attribution and marketing campaigns

All of these tasks are crucial for your startup. When people don’t move from trial to paid, you don’t get paid. When people don’t get what they paid for, they churn. And if you can’t track what sales and marketing efforts are effective, you are going to waste your budget.

As it turns out, the billing system is the most important feature you can deliver.

You could cobble together your billing system using various SaaS products. You could also buy an expensive, overkill, off-the-shelf billing system.

Or you can build one yourself.

Let’s take a look at one I’m building for Pink Wallet . Pink Wallet is in closed beta right now. A waitlist manages access to the beta. When people sign up, they can move up the waitlist by sharing a unique link. The following table in Supabase supports this:

CREATE TABLE IF NOT EXISTS waitlist (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  name TEXT NOT NULL,
  email TEXT NOT NULL UNIQUE,
  pronouns TEXT NOT NULL,
  shared_count INTEGER DEFAULT 0,
  referral_code TEXT UNIQUE,
  referred_by UUID REFERENCES waitlist(id),
  created_at TIMESTAMP WITH TIME ZONE DEFAULT TIMEZONE('UTC'::text, NOW()) NOT NULL,
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT TIMEZONE('UTC'::text, NOW()) NOT NULL,
  notified_at TIMESTAMP WITH TIME ZONE,
  converted_at TIMESTAMP WITH TIME ZONE
);        

You may or may not be someone who generally reads (or for that matter, writes) SQL. But I bet you already have an idea of the major data points it covers:

  • A unique ID generated at random
  • Personal identification through name, email, and pronouns
  • Support for sharing and tracking: a unique referral code, a count of the number of shares, and the ID of the person who referred you
  • Timestamps to keep track of when the entry was made and last updated
  • Timestamps to keep track of when the person moved from the waitlist to create an account

This waitlist table serves Pink Wallet’s goals:

  • recognize affirmed names and pronouns
  • incentivize sharing the waitlist with friends
  • ensuring everyone eventually has an opportunity to create an account

While there is a bit more code needed to support the waitlist, this is the core. I don’t have to pay monthly fees or usage charges to keep the waitlist running. When I’m done with the waitlist, this table can be archived or dropped entirely.

A waitlist for your billing system could look different. Or you might not even have one at all. And that’s the major advantage of building your own: you have a system that fits your needs without having to hack around pieces that don’t fit.


Tulsi S

Business Development for Chargebee | SaaS

2 周

Spot on. Stripe is a fantastic payment gateway, but many companies underestimate the complexities of subscription billing. Great insights!

回复
Brajesh Kumar

?? B.Tech CSE @GL Bajaj |5? Python @HackerRank | 3? @CodeChef| GDSC MEMBER| CAMPUS AMBASSADORS @IMUN AND @NSS IIT Delhi |AI & Data Science Enthusiast | Crafting Scalable Solutions for a Smarter Future

4 周

Great insights! I really appreciate the perspective you’ve shared. Looking forward to more valuable content from you. Let’s connect!

回复

要查看或添加评论,请登录

Joe LeBlanc的更多文章

  • Code as Marketing

    Code as Marketing

    Marketing to software engineers is difficult. We are a picky bunch.

  • Supabase Essential Training

    Supabase Essential Training

    I’ve recorded a new video training series! After a long hiatus, I got back into the booth at LinkedIn Learning…

    5 条评论
  • Starting in the software industry when it all looks hopeless

    Starting in the software industry when it all looks hopeless

    It’s not your fault. The software industry has been cutting jobs left and right, leaving very little for the Class of…

    2 条评论
  • Building a startup from scratch, Summer 2024 edition

    Building a startup from scratch, Summer 2024 edition

    If someone were to come to you with six months worth of funding for building a startup, what tools would you use? Here…

    6 条评论
  • Creating software at human scale

    Creating software at human scale

    We spent most of the last decade of our digital lives on large platforms built by cloud companies. “All of the apps are…

  • GitHub Copilot Chat: This Moment Changes Everything

    GitHub Copilot Chat: This Moment Changes Everything

    Last year, I wrote about my experiences using GitHub Copilot. It is a helpful tool for code auto-completion.

    7 条评论
  • Don't become an expert: invest instead

    Don't become an expert: invest instead

    Think about the last video training library you saw. It likely had tags like “Beginner”, “Intermediate”, and “Expert.

    2 条评论
  • Predictions for the tech industry in 2024

    Predictions for the tech industry in 2024

    Welcome to my somewhat late, possibly irrelevant predictions for the tech industry in 2024! We’ll see in a year of any…

    4 条评论
  • ChatGPT's Custom Bots: A Leap Forward or a Stumble in AI Progress? It’s a Mixed Bag.

    ChatGPT's Custom Bots: A Leap Forward or a Stumble in AI Progress? It’s a Mixed Bag.

    OpenAI's rollout of custom GPTs for ChatGPT Plus users seemed like a breakthrough in personalized AI. However, my own…

    6 条评论
  • An office won’t develop your career

    An office won’t develop your career

    One of the most fiercely debated topics on LinkedIn is over the future of the physical office. Do we need it anymore?…

    2 条评论

社区洞察

其他会员也浏览了