Development Environment

Tools that excel at helping me get the job done for building most of my web application development projects.

While not always the case, I find these to be the most attractive features for the tools that I use:

  • Open source. Free is a nice up-front cost that frees up funds for commercial software that's really needed. The peer review process for open source software leads to high-quality, battle-tested tools.

  • Large, active community. When there is a large network of people using a particular tool, it's easier to find help when you're struggling with something. Hiring from a larger talent pool also makes business significantly easier.

Programming Languages

Ruby
Ruby has proved to be a great all-purpose server-side language, has a passionate and innovative open source community, and is generally a joy to work with. This is the go-to language for new software projects.
JavaScript
Used for client-side scripting. On websites, I use it to progressively enhance the user interface. In big web applications, I use a JavaScript framework like Ember.js.
Sass
Sass provides scripting capabilities for CSS. Its ability to store variables, define mixins, and nest CSS rules makes it an invaluable tool for organizing and maintaining code.

Frameworks

Ruby on Rails
Provides structure and conventions to follow when building a web application. Rails also offers quite a few modules and tools for making common programming tasks and application security easier. The Rails community has matured and still attracts some of the tech world's brightest thinkers.
Ember.js
Much like Ruby on Rails, Ember.js provides an opinionated, structured style of writing and organizing code—this time for building client-side JavaScript applications. With Ember CLI, you get a great set of command-line tools for scaffolding code and building the final production application.
jQuery
Makes working with JavaScript easier, and its open source community is huge. You can usually find a jQuery plugin for common tasks.
ZURB Foundation
Provides a slew of Sass/CSS styles and jQuery plugins to use for building websites and applications, including a responsive grid to use for layouts. I tend to prefer this as my go-to front-end framework for building public websites.

Databases

PostgreSQL
A powerful relational database great for most data storage purposes. I prefer PostgreSQL over the similar MySQL due to MySQL's questionable future as a truly open source database under Oracle's ownership.

Version Control

Git
De-facto version control system. Great branching system. Keeps log of versions and allows me to review and revert versions if I really mess something up.
Bitbucket
Most client project code is hosted here because of Bitbucket's extremely generous free plan.
GitHub
A great place to host open source projects.

Editors and Graphical User Interfaces

Sublime Text
Lightweight, scriptable text editor with a nice ecosystem of syntax highlighters and plugins.
Postgres.app
Simple installer and lightweight control panel for running PostgreSQL on Mac.
Navicat Essentials for PostgreSQL
The most usable PostgreSQL GUI for Mac that I've encountered.
SourceTree
Point-and-click interface for doing simple Git operations. Works with any remote Git hosting service (e.g., GitHub, Bitbucket, self-hosted, etc.).
CodeKit
An excellent tool for coding static HTML sites, CodeKit compiles languages like Sass and CoffeeScript, and it combines and minifies the files for improved performance.
Adobe Fireworks
I cannot let go of this tool, even though Adobe canceled it. Fireworks is generally a better tool than Photoshop for designing wireframes, web mockups, and other web graphics. I'm currently (and slowly) looking for a replacement.
Cyberduck
FTP, SFTP, WebDAV, and Amazon S3 file transfer and browsing freeware on the Mac.

Email Development and Testing

ZURB Ink
A responsive email framework that provides a grid system and some additional tools for making emails responsive.
ZURB Inliner
Programmatically strips out CSS from your HTML email's <style> tag and inlines it all in style attributes for maximum email client compatibility.
Mailtrap
I configure my development and staging applications to deliver transactional email through Mailtrap's services. (I don't want my customers to receive test emails, especially not on accident!) I then log in to Mailtrap and view the emails as if I were the recipient.
Litmus
Automatically provides email previews on a wide variety of devices, operating systems, and email clients.

Full-text Search

Apache Solr
Fast, effective, and customizable open source full-text search engine. The Sunspot gem for Ruby makes setup and development with Solr particularly easy.

Related Resources

  1. Oracle Makes More Moves To Kill Open Source MySQL, TechCrunch

Last updated: