The new online store story (“If only I had procrastinated more”) now has a new online store for the selling of my ebooks. My returning customers might notice that the cart looks different now (better, hopefully), but most of the changes are actually invisible. “Trust me, I worked really hard on this mostly invisible thing!”

Really, really hard. Word of advice: avoid programming websites and ecommerce solutions. It’s nasty work, and I have the scars to prove it. This is a tale from the webmaster trenches, a slice from the life of trying to make money with a website.

Accelerated electronic selling… it’s e-sell-erated! Get it?!

Tech years are like dog years, and 2006 is ancient tech history. Since that Internet epoch, has had two major versions of its online ebookstore. The first was backed by a payment processing service with the too-clever, cheesy name of “eSellerate.” 🙄

!!! IMG FILE '/Users/paul/Dropbox/Sites/writerly/html/imgs/esellerate-logo.png' NOT FOUND !!!

Creating that store will go down in my personal history as a workaholic miracle. Back then my massage therapy practice was bustling, and I was writing multiple books and dozens of articles, building the foundations of this business. “Moonlighting” doesn’t do it justice. Hundred-hour weeks were standard. I was not a programmer, and I was mostly clueless about ecommerce technology: PHP, servers, databases, oh my. But fools rush in, and I did, and somehow I managed to crank out a custom “ecommerce solution” that not only worked, but did so reliably for more than a decade. Feather in my cap.

But nothing lasts forever. By 2014, eSellerate had become a cranky old beast, and by 2017 it was obviously doomed. In the last few years with eSellerate, I had all kinds of stressful hassles with it: unreliable payments and downtime mostly. But I had my painful memories of store programming, and I procrastinated as hard as I dared.

The 2018 move to Stripe

By 2018, eSellerate had to go. I simply could not wait any longer. Unbeknownst to me, I really should have. But at the time, all that was beknownst to me was that a long overdue job had to be done.

Fortunately, I was a much more experienced programmer by then, and some of my old ecommerce code would still serve.

Unfortunately, I was also a lot older and wearier, and hundred-hour work weeks just weren’t in the cards anymore (hell, 60 has become a stretch). But it had to be done, so I did it, and it was just as much work as I feared. Almost exactly three years ago, I finished ripping eSellerate out of my website and installing a snazzy new Stripe-powered store.

It was a thing of beauty. It was like upgrading from a rickety old Honda Civic to a Tesla. Stripe has a well-deserved reputation for being the new hotness—highly competent and modern ecommerce tools. I figured I was good for another decade.


Epic bad timing

“Stripe is amazing,” they said. “It’ll be a beautiful relationship,” they said.

Don’t get me wrong — Stripe is great. But my timing was beyond awful. Mere weeks after the upgrade, Stripe declared the retirement of the checkout system I had just installed. •sad trombone• That was a grumpy day, I can tell you.

Stripe’s legacy checkout would carry on working for the foreseeable future — thank goodness for that, at least — but its ultimate fate was official, and a re-reboot was unavoidable within a year or two.

And that is the work I’ve been wrapping up for the last two weeks: replacing Stripe Classic with New Stripe. And it was almost as much work as the first time. Even though it was a migration from one Stripe technology to another.

Everything new is old again

Checkout can either happen on your own website (“integrated”) or on another website (“hosted”). Both have their pros and cons for a small business. Customer integration is slick but hard, and few businesses have the time or expertise to build and maintain it. Hosted checkout is a bit clunkier, but a lot more of the tricky stuff is someone else’s headache.

eSellerate (2006-2017) was an old hosted checkout system. Stripe Classic (2018-2020) was a snazzy imitation of an integrated checkout, which is what made it so cool — and doomed to a short life. And now with New Stripe I’m back to hosted checkout. Everything new is old again.

With hosted checkout, the customer gets whisked away to another website for the actual payment business, and then confirmation is sent to, where my code processes the order just in time to deliver an ebook to a customer who has also been sent back to to claim it. Hosted checkout requires a fast, complex dance between three computers: the customer’s gadget, the PainSci server, and “What could possibly go wrong?”

It’s not tidy, but it works, and it’s how a lot of ecommerce has worked since the beginning of ecommerce.

About that 3-year detour into not-quite-hosted checkout

Stripe Classic was built to look like an integrated checkout system to customers, while being as easy as hosted checkout for sellers. That was the sales pitch. It seemed fantastic at first.

But that new hotness wasn’t so hot after all. It never simulated integration on mobile, for instance — and mobile was just starting to take over the internet back then. Before the mobile revolution, the illusion of integrated checkout was a more legitimate feature. But mobile was becoming a bigger deal every day, and the writing was on the wall: that pseudo-integration trick was doomed because it didn’t work on mobile.

Stripe backed away, and moved their basic checkout service back to the “traditional” old model … the same basic approach that eSellerate had used. Shinier, but the same.

If only I had procrastinated more!

Procrastination is something we usually regret, but in this case I wish I regret the opposite: if only I had procrastinated more! Even just a couple more months, and I would have known that Stripe Classic was on the way out, and I could have migrated relatively easily straight from eSellerate’s hosted checkout to Stripe’s structurally similar hosted checkout… and no painful 2021 reboot required! A massive savings of cost and effort.

And so it goes. If you live by the technological sword, you die by it too.

Sadly, New Stripe does not feel much like an upgrade … even though it is. Not only have I expensively rebooted my store far sooner than I wanted, I have also retreated to technologies and components I once used with eSellerate.

In 2018, I was trading in an old thing for an obviously shiny new kind of thing. Three years later, I’ve traded that shiny thing in for something that looks an awful lot like what it replaced — an uncomfortable likeness.