If I remember to look at my web stack next year too, then this will be the start of my annual tradition to look at the web frameworks and languages I used this year, and think about how and whether I will apply them next year as well. All of these things are free to download and install. From where? Let’s start with that.
Package Managers. Full of free stuff that you never knew you wanted so bad. Want to throw some single page app together? Want to grab some pre-written and pre-tested code, and learn about language and architecture at the same time? You can instantly download and unpack these libraries ready-to-go, like an epic, perpetually free Christmas present whenever you want it. From npm, start with some of these:
My goto package manager is npm, however I also use Bower and RubyGems. Homebrew is available for Mac users. Apparently there’s something new call yarn, and npm has a tool called shrinkwrap. Why? Because in the days of us all using other people’s code – everything from jQuery to React and beyond – the versions of this code can change, and those changes can break your code.
What if you are writing code on your laptop and then deploy it to a live server, or you want your coding friends to write parts of it. Do they have the exact same environment as you, and the same as the final production site? Chances are, no. These kinds of tools will save hours of mystery trying to figure out why perfectly working code on your laptop goes haywire in production. Npm’s shrinkwrap attempts to address these issues, and Yarn adds clever new features and conveniences.
For everything you ever wanted to know about package managers, check out this great podcast episode from Bike Shed by Thoughtbot where they talk about package managers, dependency issues, npm, shrinkwrap, yarn, RubyGems, and all the drama behind them.
My goto frameworks and development stacks:
WordPress. Here’s why I often recommend the most widely used content management system in the world: Will my clients ever want to write their own content? They need a tool where they can create any kind of content any day of the week, without breaking into the underlying coding and without calling a developer.
The opportunities for customization are endless. To better understand WordPress and go very, very deep down the rabbit hole, read up everything there is about the Hooks API. Really it’s called the Plugin API but it should be the “Hooks API” because hooks are such a key part of the WordPress universe that understanding them opens so many new insights and everything else just falls together.
Underscores.me. a great super-basic boilerplate for making your own WordPress theme without extra features and bloat that you don’t need.
PHP. Similar to the WordPress Hooks API, it is worth a very deep dive in advanced object-oriented PHP. Ever heard of “spl_autoload_register”? It lazy-loads classes, conserves memory, and instantiates all those pesky objects for you! BuddyPress, which is a social media/community plugin for WordPress, uses
Bootstrap. because it’s so easy to use, easy to learn and give you an instantly responsive site. It’s also easy to make a site that looks like everyone else’s, so hire a good designer, change the font, change the colors, and ditch the rounded corners on all the UI buttons. This isn’t 2009.
Bourbon.io. When you’re overdosed on Bootstrap, check out Bourbon.io. It is really, really, really cool and is made by one of my favorite web agencies, ThoughtBot. It has a different approach: rather than insert all these CSS classes into endlessly nested DIVs like Bootstrap, the Bourbon suite (which includes Neat, Bitters and Refills) defines the grid entirely in Sass and keeps the HTML much cleaner.
Sass. Makes you love CSS. And those cool hipster glasses on Sass website definitely help.
Rails. Even before Rails 5 was released, Rails has been a good tool to see a more fundamental example of the Model-View-Controller architecture. And like WordPress, you can just scaffold up a simple system and be done with it, or plunge down the rabbit hole with tools like helpers, specialized features in the Router, Testing, Caching, database associations, and so much more.
Node/Express. Because who doesn’t love the idea of spinning up a production-quality router to parse a few urls in fewer lines than a Shakespearean sonnet?