I have a domain name and an idea for a web application. This is not new, I have had them for a few months now. Since I have very little time to devote to personal projects and abundant initiative has not been my strong point as of late, the idea has not moved past that starting point. This is the main reason that I have started this blog. It is intended to keep the initiative going, document progress and share my experience in developing a web application.
Purpose
My day-to-day job involves working with, supporting and administering large enterprise applications. I rarely get the opportunity to work with the technology that I both admire and enjoy working with.
I’m referring to OSS or, Open Source Software.
I am also a manager and, increasingly, my day takes me further away from dealing directly with technology and this is my attempt to dive back in.
My rules for this project are simple, it can only contain OSS (and “cloud” solutions on the periphery) and as little of the tools I use daily at my existing job.
Caveat
I will be keeping both the site and idea private for now. This is not to prevent others from using it (as it is not that original) but to build suspense and provide a way out if efforts come to nought.
Technology
Enough pre-amble, on to business. This is a web application (I know, original huh?). It will require a domain name, hosting, a language/framework (backend and frontend), a database platform and version control.
As I am a regular reader of Hacker News, I’ve tried to select technologies that are both established and bleeding edge. Some may change as development progresses but, for now, this is what I’ve selected:
Hosting
I have evaluated a bunch of hosting options. From Google App Engine (GAE) and Amazon AWS/EC2 to Slicehost and Linode and eventually settled on Linode.
GAE and AWS are both excellent options and may be worth pursuing in the unlikely event that scalability becomes an issue later on, but the control and cost of VPS hosting options like Slicehost and Linode was the tipping point. Although the pricing models for Slicehost and Linode are similar, the latter was a few bucks cheaper per month which, given the nature of the project, was important.
On Linode, I plan on using a Ubuntu LTS VPS and crafting a Linode StackScript to both ease and standardize server deployment.
Language/Framework
This is a loaded conversation and one that I will expand on in later posts. As each selection also involves additional plugins and/or packages I will most likely have separate posts for each. For now, here is a brief rundown:
Backend – Python/Django
Front-end – HTML5/CoffeeScript/jQuery
Database Platform
I use relational database management systems all day, every day. Boring! This decision rested solely on my rule to avoid technology that I use daily and experiment with new and different tools. It may not work out, but I’m going to start with MongoDB and MongoEngine for Python/Django support.
More on this in a later post.
Version Control
This one is a no-brainer. All the cool kids are using Git, so I will jump right in.
That’s my starting point. Tomorrow, I will begin working on the StackScript to deploy my Linode. My post will contain a breakdown of all of the tools I plan on deploying on the server and links to source material that helped guide the way.
Pingback: Hosting on Linode | Uncorrupted State
Pingback: Using Git and Setting up Django | Uncorrupted State