This is a story about JS Bin. I've told one story of JS Bin before, and this is the b-side: the dark side. But remember with everything I share with you, JS Bin is the longest running live pastebin, and it's not going anywhere. It will continue to run and serve its users. Even the scumbags.

The story has been broken into 5 parts, released over a series of days.

Part 4: The cost

In July 2014, JS Bin finally landed Pro accounts. The aim of this would be for JS Bin to eventually be self-sustaining. It's been running out of my pocket for the previous 6 years (for server and related costs), and development and design (2014 excluded) had been lovingly "donated" by myself and Danny (who is responsible for the design).

In 2014, I decided to give JS Bin a full shot, and employed two (amazing) developers, Giulia Alfonsi and Fabien O'Carroll to work with me full time on JS Bin.

At the end of May 2015 (10 months after launching pro) the income JS Bin has provided has only just covered operating costs for the previous year. That's awesome and terrible at the same time. Before "pro" it was making a 100% loss - so that's something, but it doesn't even touch the edges of what I had hoped it would return (and I wasn't even being optimistic, as any British person would expect).

But there is a cost to taking money...


VATMOSS was a change to the way that VAT is processed in the EU. Unfortunately, the geniuses behind the change at the EU (or whatever rock they hide under) hadn't quite thought the whole thing through. The information was thin, convoluted, confusing and not really accessible to small companies like myself and many others.

This is the landing page for the EU European Commission's Digital Market:


The European Commission is the EU's executive body. It represents the interests of the European Union as a whole (not the interests of individual countries).

The slogan: bringing down barriers to unlock online opportunities. What a crock of shit. VATMOSS has single handedly killed off new business and for others made it more difficult for others do to their commerce. It's worth reading around the back story of VATMOSS, and even in mid-2015, it's there's a fight for change going on.

The VATMOSS reporting is now (as of 1-Jan 2015) a requirement for anyone in the EU selling digital services or goods (i.e. ebooks, apps, subscriptions...JS Bin Pro subscriptions), and there was (and is) the threat of fines if you don't report and pay on the sales correctly.

VATMOSS requires that you charge the VAT of the country of your customer. i.e. if the customer is English, 20%, if they are Danish 25%. Also, you have to capture three proofs that you're charging the right country (it's actually 2 proofs, but you need a 3rd backup proof). If these are all in conflict... ¯\(ツ)

The last month of 2014 were riddled with stress from the VATMOSS changes that I had to complete on JS Bin. It took weeks to try to fully understand VATMOSS, and what exactly would be required to satisfy requirements.

In the end, the development time was about 2 week for both myself & Fabien (employed to work on JS Bin) and about two weeks of research, filing and accounting time on Julie's part (my business partner - and wife).

Estimated business cost: £3,500.


£11.70p. VATMOSS, the stress of it all, to collect pennies from seven people. It would have been cheaper to book flights to each of their addresses to collect the cash by hand. It was not fun.

Fraud credit cards

Since pro accounts initially cost £6 for month, it turns out that this is low enough that it won't send red flags to stolen cards.

This means that JS Bin was being used as a testing ground for stolen card numbers. If the card went through then they would use the card. Unbeknownst to me, the user wouldn't do anything on JS Bin, and I'd be on my merry way thinking I had a new pro sign up.

Eventually, the rightful owner would think, "What's this 'JS BIN PRO MONTHLY' doing on my statement", follow up with their bank, and raise a fraud complaint.

I can't win the complaint. The card was stolen, the £6 belongs to the original card owner, no question. But! If there's a dispute on Stripe, there's transaction fees for reversing charges. £15.34 in fact. Since I know I'll lose the dispute, it's cost me, £21.54 to allow some shithead to use JS Bin as a stolen card testing facility.

Stripe disputes

My process now is that I've taken to checking each and every individual sign up and their bins to see if they look spammy. I caught my first fraud card and reported on 13-April 2014. Not a huge success but very satisfying to know I've avoided the charge. Woot!


Pro accounts was never the intention when I launched JS Bin back in 2008. I'd made stupid efforts to avoid having user accounts for quite a few years, but insisted that it should be 100% free.

I don't know why.

During 2013, I attended a lot of events where individuals kept coming up to me asking how do they pay for JS Bin, or why don't I add Pro, or explained that the only reason they used CodePen over JS Bin was that they were paying (i.e. the perceived security of data from the business exchange). The more I considered it, the more I realised I wanted to do JS Bin full time, and work on something I loved.

I ran some numbers based on registered users in the database, and factored for about 20% spam/idle users, and then put my aims at 1% conversion. It didn't seem like much.

The problem was: that's all I did.

There was no business plan. There was no business development team. There was no marketing plan. There was no deadlines. There were no aims.

"I-565 at Space and Rocket Center" by Nhlarry. Licensed under CC BY-SA 3.0 via Wikimedia Commons -

So there my amazing product sat. To others it was ready to launch, but I was still heads down focused on the last 1% stretch, so it was parked.

I'd had the odd conversation that suggested I might be able to get funding from the government (as JS Bin is a tool primarily for learning), but I'd shy away from the idea of having to do "business" stuff. It scared me a little too.

Launching became the well know problem of chasing the end of the rainbow. Striving for the perfect, polished product before everyone else had access to it. Sure we had some alpha users in there, but they weren't invested in JS Bin any more than you are, so feedback came when they had some time.

This went on for months and months. All the while JS Bin isn't making money, my entire company is focusing it's time on JS Bin and not producing any cash flow from any other sources.

Pro (eventually) went live on 23 July 2014. And the first wave of registrations was an amazing feeling. In fact, one user (David Gauld, who actually worked for me doing the Left Logic redesign and built a fair amount of confwall) was the first to go pro catching the commit landing in Github, even before I had announced it - a cool side effect of the open source.

Users did come, but looking back, it really wasn't very much if you consider the costs of running JS Bin, let alone paying for development, and then look at what the monthly (or yearly subscriptions) got us. A total of 42 upgrades in the first week (26 were on the first day).

JS Bin Stripe report, week 1

I had always tucked money aside for a rain day (actually rainy year), and yeah, I can look back and say "sure, I took a shot" - but it came at a pretty penny.

The next 6 months I lost my love for the project. Very simply: any new development had to justify its existence and its demand on my time. I did continue development until the end of 2014, but by that point, all love had been sucked dry and I needed a break. JS Bin is solid enough that it can run without day to day attention and I could return to client work and try to recover my now sad looking business bank balance.

Plan, and know what your users need

There were two major problems that hurt the success of JS Bin Pro.

The first was the nearly zero planning, and strange fear of business, marketing and actually making money. I often associate with the underdog, and those users looking for free access. But I run a service that's abused from all directions and every new user is more of a burden than growth.

Very simply put: should I want to run a service for 100 paying users or for 100,000 non-paying users? Me? Now, I realise it's the 100 paying users, because, honestly, I've got bills that I want to pay. I'd rather pay those bills building something I love rather than building something I begrudge.

I lost a lot of love in this area of working with JS Bin. I can take the spam, and the junk, but this part of JS Bin required that the project actually raises money to support itself - and constantly feeling that I had to deliver some part of code for JS Bin to just didn't work for me.

The second, major issue was that I had hoped, naively, that the web community will swoop in and pony up some cash. But the bottom line was JS Bin Pro had nothing that users needed. Sure, now it has asset uploads and other features, but at the time, there wasn't anything users really needed.

I pay for my Github account because I need private repos. I pay for Gmail, because I need real business email accounts. I pay for Dropbox because I need the extra space.

With JS Bin, everything users need is given away and open source. That's honourable, but doesn't pay the mortgage.

The next time around, with products like Confwall, I launched as soon as it was usable. I offer a free area, but I make sure that you can't get to the stuff you need unless you pay. The way it should be! In fact, at time of writing this post, Confwall still doesn't take payment online - I cut that part to launch as early as possible, and we handle payments via email & invoices.

Part 5 sees our conclusion and tells of the police encounters I've had, along with the worst email I've ever received.