Everyone should know by now – I launched a new service called FantasyBaseballAlerts.com over Memorial Day weekend. The service itself seems as simple as it can get – track a player, get different alerts about them based on different criteria.
Well…the one thing that’s kept me highly motivated on the project for the past few weeks is all the cool shit that goes on behind the scenes. We’re preparing for version 2.0 to launch on Monday (June 10, 2012), and I wanted to give everyone a sneak peak in to the components that are behind FantasyBaseballAlerts.com:
The whole site, front & back end are built on the Codeigniter platform (yes, even our cron jobs!). We’ve been using it for about 4 years now, and we think it’s the bees knees. Seriously…look in to it…you can literally build an app overnight with it – it’s very easy to pick up & use!
I’m a little biased here, but Sparks is probably the best thing to ever happen to Codeigniter (founding developer). We use the following Spark packages:
By using these packages wrapped up as Sparks, it allows us easy integration and usage of readily available libraries on the net. Big thanks to the developers that created the Spark wrappers listed above!
Twilio API (http://www.twilio.com):
We use the Twilio API to send out all of our SMS alerts. The service is really great, it’s really cheap, and it’s super easy to use. We’re currently brewing up some new and exciting ways to use this service – like finding interesting ways to utilize inbound text messages.
Amazon SES (http://aws.amazon.com/ses):
We use the Amazon SES service to send out all of our email communication. This allows us to not have to worry about configuring an email server of our own and maintaining it. We seriously suck at maintaining email servers…we’ll let the good folks at Amazon handle that for us and charge our card every month!
We use Redis to store information (daily) about players. Any alert that is assigned to a player is stored in a Redis key for that player for that day. This allows us cheap storage of that information (it’s auto-expired at the end of every day), and allows us to access this information REALLY fast. Redis kind of gives us a woody…just sayin’.
We use Gearman processes to offload all processing of our SMS and email alerts. This allows us to maintain a lighting fast front-end by not having to wait for processes that may take a little bit (1s+) – like sending email/etc. Gearman also allows us to keep the backend processes churning through the teams of thousands of users on the system with blazing speed. It’s almost like we have our own little team of Ooompah Loompah’s here…in digital form. We are pretty sure that’s why the site is orange in color.
Yahoo! Fantasy Baseball API (http://developer.yahoo.com/fantasysports):
We utilize this service so our users can “Connect with Yahoo” to pull out information on their current starting rosters. After a roster has been set via the “Connect with Yahoo” tool, we can automatically monitor the roster for any changes you’ve set in your lineup and mirror them on our site. Tracking then becomes seamless.
Oh Stripe…how many ways do I love thee? There are plenty of payment processing applications out there that we could have used…especially a really BIG one that is really popular, but lacks any coherent documentation. Sorry…but get your shit straight…Stripe did. Literally the easiest payment platform that we’ve ever integrated, no monthly fees, standard fees per charge, coupon handling, and…wait for it…recurring payments AT NO ADDITIONAL COST. No shit?! Love it.
We’re using WordPress for our new blog as well. Standard issue…we of course could have created a new one, and I could also start melting down rubber bands to make some new tires for the Bro-Dozer…but why build what already exists and works well?
Wait…can I use hash tags in blog posts?
Needless to say, we’re using some bad ass technology behind the scenes – and there is more to come once I get a hold of ESPN. We’ve got access to CBS Sports Fantasy stuff, but it’s kind of stupid how they implement it, so we’re trying to work through that.
Not gonna stop until we get there.