There comes a time in any modern programmers life where they have to decide on a platform, they may not commit to just one, but if you're going to get good, you can't use them all.
Now when I say platform I mean more than just a programming language, I mean a full software stack. Here at Familiar that stack has evolved over time but seems to be settling towards Craft for regular websites, and then Salesforce.com for more complex web applications.
Overall I couldn't be happier with both of these platforms, they do what platforms are supposed to do which is provide a framework and a set of best practices to make building something easier, faster and more reliable.
The problem we keep running into is pushing at the edges of what the framework was built to do. We ran into this all the time when we would try to build more complicated web apps on top of ExpressionEngine, and moving more of that functionality to salesforce has really opened up the possibilities and made a lot of things easier.
Still, there are some applications that push even farther and are outgrowing what even salesforce is ment to do. This would be fine if it only happened once in a while but its feeling more and more like a regular thing as clients requests get more and more complicated.
So the question then becomes when do we move onto a more advanced framework. A more advanced framework allows for more advanced functionality but switching means giving up all the platform specific expertise we've developed to start over with a new set of constraints.
The trouble is, every platform/system/language/tool has its limitations and its tradeoffs and constantly switching is a sure fire recipe for burnout.
So what are we going to do...
It feels like the future, but its early days and there are plenty of competitors (Ember.js/Backbone/Knockout.js etc) and its not clear the market will sustain all of these options. Some will surely "Knockout" the others, but hopefully theres enough shared between them that moving in this direction at all will be a win.
Even if the specific horse we bet on doesn't win the race, at least we're watching the right race.
So as most of you have heard by now Godaddy has purchased MediaTemple. So needless to say I've used this to kickstart my search for a new webhost here at Familiar.
First on my list for a long time has been DigitalOcean. The prices are great and most importantly all of there servers are SSD based. On top of that the company, and their server infrastructure, is based here in NYC. (They also have servers San Francisco and Amsterdam). Since most of our clients are local having the servers here in the city is ideal.
So far everything's hitting all the right notes. The only downside is that servers come totally naked, you have to install everything from the OS to the web server and more. Luckly the internet is filled with great tutorials for setting things up on digital ocean, including a Craft specific tutorial by Luke Holder. Using this video i was able to get a basic LAMP setup and a fresh craft install up and running pretty quickly.
Feeling adventurous I decided to try and see if i could Nginx running instead of apache, and luckly Digital Ocean has a great walkthrough that combined with the config settings that Kenzie Campbell shared made it pretty painless and Walla! here we are, up and running on Digital Ocean and Nginx!
Now that i have this setup working one of the great features of Digital Oceans are their snapshots which let me create a full server backup of this site which i can use as a starting point for any new servers i setup, meaning that all the work setting up LEMP and craft would be already done and ready to roll.
So now the big questions, hows it performing?
On mediatemple I was taking between 300ms and 400ms just to start serving the html and full page loads were taking just under 1second (900ms), which is very respectible. Now that im over on digital ocean with NGINX im seeing html serving after just 140 ms and the full page is ready in around 650ms! This is with cloudflare still connected to mediatemple's setup.
Not bad for the exact same codebase!
We havent yet decided to move all our client sites over to DigitalOcean, but its starting to look like the smart move.
I thought I already knew everything there was to know about Chrome devtools but boy was I wrong.
If your a web developer do yourself a favor and spend an hour or so with this great and most importantly FREE course from codeschool.
I finished the whole thing in about an hour and a half and it was time well spent.
It's been said a million times before but its worth saying again. Designing and building something for yourself is way way way way harder than doing it for someone else.
So here I am. Starting yet another blog. Maybe the trick is to simplify, to not over do it.
Maybe if I don't worry about what it is, it could become what I really need it to be.