This will be a 30 day journey about creating a website application. The web app is called J30D.com (Just 30 Days). The goal of this blog is to document the progress and ultimate success or failure of my main goal: To release J30D.com into a working beta in 30 days. I plan on using a lot of new technologies that I have not used before. It will be fun for sure.
I will try to spend atleast 1-2 hours a day on it for all 30 days. (maybe I will help the site a lot with extra hours on the weekends.)
Plan for today will be simple.
1) Get back in the blogging groove, and announce my project.
2) Decide which technologies I am planning on using.
3) Setup my development environment with these technologies.
If you are reading this, step one is done.
Technologies I plan on using.
backend framework - I plan on the backend mostly being a JSON service. So many things should be able to do the work. Frameworks for the back end I considered: Ruby on Rails, Ramaze, Sinatra, Async_Sintra, Goliath, Node.js. I think I am going to go with Async_Sinatra. I really want an Evented backend. I have used Goliath before and loved it, but I want to try something new. Async_Sinatra sounds like a cool project, and I have not used it before.
backend data persistance - I really only considered two things here. Postgresql and mongodb. I know there are a lot of others. MySQL, CouchDB, Sqlite, Redis among many more, but I need something familiar. Since I plan on the backend being mostly a JSON service, I think I am choosing MongoDB, since the BSON it create will have the same taste as the output I am creating.
caching - Memcached seems like the obvious choice here. I am not even sure what other options are out there. I use Memcached at work. I am not sure I will bother with caching until the beta is done and working though.
frontend framework - That is a word you did not hear much a couple years back. The choices I am considering are Ember.js, Backbone.js and Spine.js. I am planning on making this app work as well as I can on mobile devices, and Spine seems like it might be the smallest, and quickest to load on mobile devices, but I am going to go with backbone.js, mostly because of the awesome peepcode.com videos I have already seen once, and can watch again.
more frontend - I also plan on using Twitter-bootstrap. This will also be a new thing for me. I am a developer; not a designer. Hopefully using twitter-bootstrap will hide that fact from you. I also love how it degrades on smaller screen sizes to look like a mobile app by default.
Okay step 2 is done.
Step 3) install the development environment.
Everything is installed. I have not got a mongo ORM yet. I will have to decide what I am using for that tomorrow.
List of stuff for tomorrow:
1) Create a private github repo.
2) Work on a beta signup page using same technologies from my technologies stack.
3) Find a mongo orm for ruby that works well in Sinatra.