Let’s build an ecommerce web app, Part Two: 3 letters, 3 more, and then 3 more still

So! You’ve made it this far. What do you need to start thinking about? Probably what kind of bitchin’ language and framework you’re going to use, right?

No.

The first thing you need to think about is SSL.

So here’s the deal: totally really smart people often make the mistake of thinking about SSL. They get hyped up to use some big “cloud” thing and forget the golden rule of SSL:

No virtual hosting.

Hell you might even be saying right now, “Crap you’re right, I forgot about that!”.

It might not matter to you, though. In our experience, customers demand that the checkout process occur on their domain and not at storename.somecompany.com. Your mileage will vary. Bear in mind, though, that the two paradigms – hosted checkout versus integrated – will strongly affect all your future technical decisions (which is why we talk about it first).

There’s hope, though: SNI. The short answer to “what is SNI” is “SSL virtual hosts”.

The downside is everyone’s absolute favorite piece of technology, Internet Explorer 6, which doesn’t support SNI. Because IE6 ruled the roost for so long (hell we’re still waiting for it to go away), adoption of SNI has been … slow.

You could decide “screw IE6” and start using SNI today; check the wiki article for all the stuff that does support it, it’s pretty comprehensive. You can make that call today.

In our experience, approximately 100% of the web-browsing public uses IE6. That’s not a joke: almost 100% of our customers are using IE6 on XP right now, and close to 100% of their customers are using IE6. Your mileage will almost certainly vary.

It’s the first big design decision in your app: do we support IE6 at all? Doing so will dictate a lot about front-end development (Javascript frameworks), and as I said, whether or not you want to deep-drive into SNI or stick with the tried-and-true SSL configuration (1 IP per host). Do you want to “funnel” your customers into a unified checkout or have virtual hosting with the checkout process on each host?

 

Let’s build an ecommerce web app, Part One: You might be insane

SO! You’ve decided to enter the fray and start your own internet company: you’re going to develop and host online stores, targeting all sorts of businesses.

Frankly, you’re insane: people will throw¬†dump-trucks of money at you if you try to “change the world” by opening up a new social network for chinchillas, or a Facebook app that simulates sitting in traffic. Trying to enable small merchants to sell stuff online isn’t really all that world-shattering. No one really cares.

After all, they can just host their store at a big existing commercial provider, like Yahoo! Stores; or they can roll their own store with Paypal; or they can get some commodity hosting and install a free cart app.

Well, yes. You can do all those things. And sometimes, they’re good ideas. Other times, they’re not. How do you know? You don’t. Each of these solutions offers a certain level of pain: for example, installing a free cart app on commodity hosting means you are now a designer, sysadmin, programmer, and IT manager. The hoster probably has N other customers running who-knows how many other random free cart apps; if your store is down their level of commitment may end at “well the web server is up and running, so it’s your problem”.

That’s the essence of your business case: the “easiest” options are in fact complex and fraught with peril. You’re an expert in the tools, the tech, and the business know-how. Host with us, we’re awesome!

I don’t want to talk about business; I don’t know it. I wanted to instead go with what I know, technology. Let’s assume you’ve got a co-founder with great hair and a flawless smile to handle all the business stuff, and you’re in charge of the technology. I want to talk about bytes, not bucks.

On our next episode: 3 little letters, then 3 more, and how they’ll make your life miserable.