Back when we first got started, our goal was to go from an idea to an app in the App Store in 3 months time. To accomplish this, we had to make a number of decisions about technologies to use in order to get us there. I’d like to share those decisions with you to give some more insight into Farmstand under the hood.
To start, we knew we needed a server to handle all of the data about the farmers’ markets that we love. I chose to work in Ruby, which is my favorite programming language and for good reason. The creator of Ruby, Yukihiro Matsumoto, said, “I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language.” It certainly works. I’ve never been so productive in any other language, and never enjoyed it so thoroughly.
I chose Ruby on Rails as the web framework to power the site because it’s already earned its place as my favorite framework available. Especially considering our primary concern was time, Rails was the right choice for us because it does so much out of the box and has such an excellent community behind it. I know that any time I don’t already know how to do something with Rails, I’m only a short Google search away from the answer. We can move very quickly and not have to reinvent any wheels along the way.
To run that server, I chose Heroku. Their prices are very reasonable, and getting up and running with them is a piece of cake. Going from a working prototype on my laptop to a running server in the cloud was literally a 2 minute job. Considering our initial concern was all about speed of delivery, we couldn’t have asked for more. Nearly a thousand registered users later, their most affordable plan is still working wonderfully for us.
The bulk of the data being transferred while you use Farmstand is in the images. Amazon S3 is incredibly cheap and it really takes the load off of our servers saving us a lot of time and headache while letting us provide excellent download speeds for our users. Thanks to the Paperclip plugin, we can integrate our image storage with Amazon S3 with literally 1 extra line of code.
There’s more tools and toys that we’re playing with here but those are the big ones. With very little effort and very little cost we’ve been able to gain an incredible amount of value and performance for our app. I’m very grateful that these services have all done such a great job that we can devote so much of our time to helping our local farmers!