In 2005, what was the variable pricing billing system that we could have used instead?
It's easy to look at Stripe and Braintree today and say 'Ha! Those Fog Creek dummies! They should have used one of these awesome companies with great APIs instead of writing it from scratch.' Guess who existed then? Not Braintree (founded 2007), not Stripe (founded recently). Even authorize.net only did (and still does AFAIK) subscription billing for something like a gym membership where you bill the same amount every month, not variable amounts like we do. Chase Paymentech was the horrible processor you had to use, and their crummy APIs were and still are atrocious. When you opened a merchant account, the bank had to come visit your office to make sure you were real and that you had posted the 'we accept Visa/MC' stickers on the window even though you never even did face to face transactions. It was a different time.
So yeah, today if you are starting a company, don't roll your own. But don't look back on the code you wrote in 2005 to accomplish something that couldn't be accomplished any other way, and wonder why you did it that way. You didn't have any other choice.
The only choice now is, do we stop spending time building better products, and instead rewrite our billing system to work with one of the modern gateways, to get us in the exact same spot we are today? (No.) Do we rewrite our system to take advantage of modern credit card vaults so we don't have to worry about a Linode? (Yes, did that years ago). Cost vs. benefit.
It's easy to look at Stripe and Braintree today and say 'Ha! Those Fog Creek dummies! They should have used one of these awesome companies with great APIs instead of writing it from scratch.' Guess who existed then? Not Braintree (founded 2007), not Stripe (founded recently). Even authorize.net only did (and still does AFAIK) subscription billing for something like a gym membership where you bill the same amount every month, not variable amounts like we do. Chase Paymentech was the horrible processor you had to use, and their crummy APIs were and still are atrocious. When you opened a merchant account, the bank had to come visit your office to make sure you were real and that you had posted the 'we accept Visa/MC' stickers on the window even though you never even did face to face transactions. It was a different time.
So yeah, today if you are starting a company, don't roll your own. But don't look back on the code you wrote in 2005 to accomplish something that couldn't be accomplished any other way, and wonder why you did it that way. You didn't have any other choice.
The only choice now is, do we stop spending time building better products, and instead rewrite our billing system to work with one of the modern gateways, to get us in the exact same spot we are today? (No.) Do we rewrite our system to take advantage of modern credit card vaults so we don't have to worry about a Linode? (Yes, did that years ago). Cost vs. benefit.