A Look at Open Source Inside Connected

Open Source

The cost of building software products has dramatically fallen compared to a decade ago. Products that used to take millions of dollars are now being built for hundreds of thousands if not tens of thousands of dollars. Two of the most important drivers of falling costs have been open source software and cloud computing.

Yesterday I had the delightful task of rebuilding one of our production cloud images for Connected. What I realized during that process was the full extent to which we rely on open source software to build Connected. Connected wouldn't be what it is today and couldn't have been built nearly as quickly or cheaply without the incredible amount of open source used throughout the stack. I thought I'd take a moment to catalog all the open source software we use to give you a sense of just how much it has truly changed the cost of software development.

Production Operating Systems
Fedora - OS used on our web servers
CentOS - OS used on our queue servers

Data Tier
MySQL - data storage
mysql-proxy - used for automatic db failover
memcached - hot cache

Web Servers
Apache - application web server
mod_wsgi - interface to Python application code
Nginx - static files and load balancing web server

Application Code
Wordpress - hosts our blog
Python - application programming language

Python Libraries
django - Python web framework
setuptools - easy package installation
pip - even easier package installation
virtualenv - isolated package installations
mysql-python - Python MySQL driver
BeautifulSoup - HTML parser
lxml - HTML parser
django_compressor - JS and CSS static file compression
django-indexer - simple key/value store
django-paging - simple paging
django-sentry - detailed web request error logging
greenlet - concurrent programming library
eventlet - concurrent programming library
pyopenssl - SSL support
gdata - Google Data API library
httplib2 - advanced http support
pycrypto - cryptography
python-openid - OpenID
pytz - timezone support
tlslite - SSL support
feedparser - broad feed parsing support
iso8601 - ISO 8601 date conversion
thrift - cross-language development
evernote - Evernote API library
python-dateutil - automatic date conversion
vobject - vCard support
suds - SOAP API library
python-ntlm - NTLM authentication
dnspython - DNS querying
django-storages - common Django storage back-ends
boto - S3 library
python-memcached - memcached library
aweber_api - AWeber API
django-templatetag-sugar - simplified django templates
oauth2 - OAuth library
pyssh - SSH client
django-logging - django debugging
debug_toolbar - dango debugging
daemon - daemonize your background processes

Front-end Code
jQuery - light-weight javascript library
jQuery UI - UI widgets for javascript
jquery-autocomplete - autocomplete text field
jquery-fancybox - pop-up dialog
sencha - mobile javascript framework
micro_templating.js - John Resig's simple javascript templating
underscore.js - powerful data manipulation javascript library
Backbone.js - light-weight javascript MVC framework

Developer Tools
svn - version control
svnX - Mac svn client
Eclipse - developer tools
iTerm - alternative terminal client
PyDev - Python support in Eclipse
Pylint - Python static analysis
pyflakes - Python static analysis
Munin - graphing and monitoring
yui compressor - javascript compressor
Enjoyed this essay?
Get my weekly essays on product management & entrepreneurship delivered to your inbox.