As I mentioned before, my bias for Linux comes from me being cheap. And since it's my responsibility to provide free and low-cost options for you to build your business, I'm sticking with it.
If you have VC or angel funding, you can spend money without regard for current or future costs. Lucky you.
If you're building your business on a shoestring, free is great. But you don't want free stuff that will cost you an arm and a leg later.
The good thing about Linux, Apache, MySQL, and PHP (LAMP) is that it is free and free to scale. It costs $0 to install on one server and $0 to install on 10,000 servers. You're only paying for the IT staff to do the install and management, unless you can do it yourself, then it's still $0.
Part of The Startup Next Door philosophy is to start your business with as little money as possible and let the merits of the business model pay for scaling the site as it gets more traffic. If your business model stinks and you're getting too much traffic that you can't afford to keep up, you'll likely always be behind until you change the way your business makes money so it can fund itself. If you have to pay $1,500 for the software on a new server, or $25,000 to install another database server, your business better be making lots of cash. You'll run in to these issues if you're running Windows Server, SQL Server, Oracle, etc. The startup costs are just too expensive to bootstrap, unless you have lots of your own money in the bank and are willing to pay from your savings.
I'll reiterate from an earlier article, I'm not a Windows hater (I'm writing this on Windows). But for small business trying to keep startup costs and scaling costs low, it's not a very affordable option. I'm not a software hater at all. It's just software. Nothing to get political about. I'm just being practical because I'm cheap.
Because it's what I know, and it's free, and I can give most of my good IT advice based around it.
You're also more likely to find a PHP programmer than most other open-source runtime languages.
Here's my somewhat dodgy evidence:
|Ruby (or rails)
Yes, Java is quite popular in there, but I only know a little Java. And Java isn't just for web, so it's somewhat misleading here. If you're going Java, I know very little about their workflow or tools, so you'll have to get details elsewhere.
And for the curious, Windows technologies:
There are lots of folks out there who can write your web software on Windows.
My Programming Background
Perl was my first "web programming" language. I learned it on my own, and my first real programming job was mostly Perl, and I did it for 4 years. Alongside Perl I had also had the opportunity to learn ASP (not .Net) and Visual Basic. It wasn't until I started my first real startup that I learned PHP (because my business partner knew it and not Perl). I'm not going to tell you that PHP is better or any of that garbage. It's just what I know, and I can configure a server and do everything I need to in PHP without spending a dime.
I also was using PostgreSQL long before I ever touched MySQL. And in my career I've used SQL Server, Ingres, and Oracle, too. PostgreSQL and MySQL are both free and there are many free resources for them. But since I know more about MySQL and there are many pre-built applications that work well with it, so that's what I'll help you with on Startup Next Door.
Where I'm Going with This
Since I'll be offering advice soon on how to optimize your programs and server and this experience comes from my expertise in PHP and MySQL, please forgive my bias. If you or your site implementer is going with something else, that's fine. You can use the same concepts I bring up and find solutions that match on your server stack and language.
P.S. Don't give in to software hate.
Next post: some special news