Indie SaaS and boring tax stuff

posted by Ayush Newatia
21 January, 2025



After about 3 years in hibernation I’ve finally resurrected my app Scattergun. It’d been on pause for so long due to the joys of EU VAT (also known as Sales Tax or GST in other countries).

Why does this affect me?

I’m based in the UK which is (sadly) no longer in the EU, but these laws affect everyone selling to consumers the EU, no matter where you’re located.

When selling digital services to consumers in the EU, you need to charge them VAT at their local rate, and then file a return with the EU and pay the appropriate tax.

A number of US states have similar laws and differing rates of sales tax, but the key difference in the US is most states have a minimum sales threshold below which you don’t need to worry about this stuff.

The EU has no such threshold because … well, fuck common sense, that’s why. The moment you have a single sale to an EU consumer, you’re liable to collect and remit VAT. Other countries like Australia also have similar laws.

This is completely unworkable for indie SaaS developers and small businesses. The admin overhead is just way too much, especially if you’re outside the EU. Accountants outside the EU are also unlikely to know their way around this system. The reason I got all the way to the initial launch of Scattergun without understanding the tax implications was that my previous accountant just had no idea about this stuff.

I think most indie developers outside the EU are not aware of these laws and small enough to fly under the radar. That also proves that the law in its current state is impossible to enforce given the sheer scale of tech services provided worldwide. I really wonder how moronic the politicians needed to be to pass such legislation.

Stripe vs Paddle vs something else

Scattergun used Stripe for billing for the initial launch. It was a no-brainer, I mean, everyone uses Stripe right? When using Stripe, the consumer is buying directly from you (the developer), meaning the tax liability is on you. After understanding the EU tax laws, I couldn’t continue using Stripe, so I migrated billing over to Paddle.

Paddle is a Merchant of Record, meaning the consumer technically buys the subscription or product from them, and then Paddle has a B2B relationship with you, the developer. They take on all the tax liability so you don’t have to worry about it. It also means they need to run more stringent checks on you and your business before you’re approved to use their platform, since they take all the risk. That’s a few extra hoops to jump through before you can get up and running.

LemonSqueezy is an alternate option for a Merchant of Record, and they were recently acquired by Stripe.

I see a lot of nonsense on social media calling Paddle/LemonSqueezy a Stripe wrapper, and claiming it’s pointless using them instead of Stripe. They do use Stripe under the hood but they’re so much more than a simple wrapper. The tax shield benefit is absolutely massive.

What should I use for my indie app?

I’m going be a typical developer and say: it depends. But, you’re almost definitely better off going with a Merchant of Record instead of Stripe.

My guess is most indie developers outside the EU who use Stripe are non-compliant with EU VAT laws. They’re just too small to attract attention. This might not always be the case.

It took a very on-the-ball accountant to point this issue out to me, and I’d rather avoid a tax problem completely than just hope I don’t get caught.

One can hope the EU implements some common sense thresholds below which you don’t need to worry about place-of-supply VAT, but I wouldn’t hold my breath.

Further reading: