15
7 Comments

Best practices for international subscriptions

We've seen a lot indiehackers asking about how to handle international subscriptions in their app with Stripe.

For those of you that are looking for a TL;DR, here it is:


  • Internationalisation is often more trouble than it's worth for small companies. If you don't have product market fit, it's safer to ignore this and price in the major currency in your market ($ or € generally).
  • Internationalisation is not only a matter of converting the price in another currency. It's also about understanding the related market, cultural change and cost of living in the targeted country.

For those interested in the bigger picture, here is my experience on how I solved this problem while working at mojo where we had 15 different pricing based on the country of users.

(As a side note, this is a problem that first occurred to us when we reached over 5M$ ARR and beyond, and it's often more trouble than worth to support multiple currencies if you don't have product market fit yet.)

There is no real "automatic way" of handling internationalisation, but you can provide a naive implementation quite easily.

First of all, you need to create at least one price per country on your product page in Stripe (one product, multiple prices). See here if you don't know how to create multiple prices for your existing product.

Once this is done, the tricky part is to display the right price based on the location of the user. The easiest way to do this is to based yourself on the IP address of the user (if server side) or on the geolocation API (from the browser or client side) to detect his country. Once it's done, you have to switch over your existing prices and create a Stripe checkout session with the correct one or the default one if the country is not supported yet.

Note that this is not particularly precise and can be easily bypassed, but for 95% of the users, it does the trick.

The second part is about handling landing/sales pages.
This is actually what makes the work difficult and the reason most startup wait a lot before tackling internationalisation.

The easiest way is to customise the price value with the specific currency based on localisation of the user and apply it at checkout, but leave the rest of the content in English (or whatever language you write your content in).
It works fine and can be done quite easily, but doing so does not take into account country based specificity (culture, language...).

If you've more time and availability, you can decline the complete page in multiple languages based on the market you wanna target, so you can benefits from local SEO/ASO. It can take a lot of time because correct localisation needs proper language and culture understanding so you can use the correct terms that would trigger user conversion.

Internationalisation is often a Serie B-C problem for startups (if we talk in terms of funding size), it's really rare you encounter these kind of problems in your indiehacking journey and you shouldn't put too much time covering this too early, but if you're willing to, here is a simple way 😉.

If you liked this post, you can follow me on Twitter or IH 😊

This is an extraction of my answer to @yousaiditchewie 's original post.

  1. 8

    Well said! Thanks for the insight!

  2. 5

    Great thank you. I was always wondering how I should handle this. Now I feel confident that sticking to a single currency is the right way to go in the beginning 👍🏼

    1. 2

      You're welcome, and indeed it's often the best 😊

  3. 2

    so helpful! thank you. Great

  4. 2

    For startups and solo/small companies, correctly handling tax in the dozens or hundreds of jurisdictions is also a big issue; it's usually easier to offload these to merchants of record like Paddle or 2checkout.

  5. 2

    so helpful! thank you 🔥

Trending on Indie Hackers
How I Launched My AI Startup with a Warm Email List and Zero Marketing Budget? 28 comments What you can learn from Marc Lou 20 comments Here's how we got our first 200 users 20 comments Software Developers Can Build Beautiful Software 13 comments Reaching $100k MRR Organically in 12 months 11 comments Worst Hire - my lessons 11 comments