We’ve just unlocked the 4th video in the The Playbook: Video Edition: Development.
In this 34 minute HD video I cover development, our development principles, our development process, the main tools we use, and our default platform choices.
If you haven’t grabbed this series, now is an excellent time as I’ll be hosting a live Q&A session for all who’ve purchased this Wednesday, August 1st, 2012 at 3pm US Eastern time.
This video joins the three other videos in the series that we’ve already released:
When you purchase this series of videos you also get one on one and group support directly from me and other members of the thoughtbot crew. Ask us any questions you have about startups, building successful application, Rails, and mobile and web development.
You can view more information about the video series on our workshops site.
It’s been two weeks since we launched The Playbook: Video Edition, and that means we’ve just unlocked the 3rd video in the series: Design.

In this 30 minute HD video I cover design, our design principles, and our design process. As an illustrative example, I use our own application, Trajectory.
This video joins the two other videos in the series that we’ve already released:
When you purchase this series of videos you also get one on one and group support directly from me and other members of the thoughtbot crew. Ask us any questions you have about startups, building successful application, Rails, and mobile and web development.
You can view more information about the video series on our workshops site.
We’ve been giving an in-person workshop in Boston for a couple of years that goes through our best practices in successful web application development. People all over the world have been asking if there was a way we could bring this workshop to them.
This series of five high-definition videos is just that. I’ve made an introductory video which describes it in more detail:
When you purchase this series of videos you also get one on one and group support directly from me and other members of the thoughtbot crew. Ask us any questions you have about startups, building successful application, Rails, and mobile and web development.
The first video in the series “Planning” is available today. We’ll be releasing the next four videos each week for next four weeks, and purchasing the series today gets you all future videos as well as the support.
For the in-person workshop in Boston we charged $250. Today, you can purchase this new video series, with the one on one and group support, for just $49 for you, or $199 for your entire company.
You can view more information about the video series on our workshops site.
I’ve been using Tmux for about six months now and it has become just as essential to my workflow as vim. Pane and window management, copy-mode for navigating output, and session management make it a no-brainer for those who live in the terminal (and especially vim). I’ve compiled a list of tmux commands I use daily to help me work more efficiently.

If a tmux command I mention is bound to a keyboard shortcut by default, I’ll note that in parenthesis.
Sessions are useful for completely separating work environments. I have a ‘Work’ session and a ‘Play’ session; in ‘Work’, I keep everything open that I need during my day-to-day development, while in ‘Play’, I keep open current open-source gems or other work I hack on at home.
tmux new -s session_nametmux attach -t session_nametmux switch -t session_nametmux list-sessionstmux detach (prefix + d)Tmux has a tabbed interface, but it calls its tabs “Windows”. To stay organized, I rename all the windows I use; if I’m hacking on a gem, I’ll name the window that gem’s name. The same thing goes for client applications. That way, I can recognize windows by context and not what application it’s running.
tmux new-window (prefix + c)tmux select-window -t :0-9 (prefix + 0-9)tmux rename-window (prefix + ,)Panes take my development time from bland to awesome. They’re the reason I was able to uninstall MacVim and develop solely in iTerm2. I don’t have to switch applications to switch contexts (editing, reading logs, IRB, etc.) - everything I do, I do in a terminal now. People argue that OS X’s Cmd+Tab is just as fast, but I don’t think so.
tmux split-window (prefix + ")tmux split-window -h (prefix + %)tmux swap-pane -[UDLR] (prefix + { or })tmux select-pane -[UDLR]tmux select-pane -t :.+tmux list-keystmux list-commandstmux infotmux source-file ~/.tmux.confThese are some of my must-haves in my tmux config:
# remap prefix to Control + a
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# force a reload of the config file
unbind r
bind r source-file ~/.tmux.conf
# quick pane cycling
unbind ^A
bind ^A select-pane -t :.+
During the day, I’ll work on one or two Rails apps, work on my dotfiles, run irssi, and maybe run vim in another window to take notes for myself. As I mentioned, I run all of this inside one tmux session (named work) and switch between the different windows throughout the day.
When I’m working on any Ruby work specifically, I’ll have a 75%/25% vertical split for vim and a terminal so I can run tests, interact with git, and code. If I run tests or ‘git diff’ and want to see more output than the 25% allots me, I’ll use tmux to swap the panes and then move into copy mode to see whatever I need to see.
Finally, I run iTerm2 in full-screen mode. Switching between OS X apps for an editor and a terminal is for chumps!
Kristof Bardos of Digital Natives asks:
Dear Thoughtbot,
I read about ‘Web Business Kick Start’ as one of your services. My question is, are you acting as a startup incubator, or merely like a kind of consultancy of tech and other business areas?
The Kickstart is somewhere in-between a startup incubator and our normal development engagement where we do agile, iterative development from concept to production.
In addition to the normal application development we usually do, we give our customer office space in our office and assist them in hiring a team to replace us. The people they eventually hire work right alongside us, being trained in Rails if necessary, our process for developing software, and the application itself.
After launch, and when the team is ready, we step away and the company goes on its own.
The Kickstart differs from a more traditional incubator in that we charge our normal application development rates, and we don’t assist with the legal setup and organization of the company. However, there are no additional charges for any of the other services. We don’t typically take equity in the kickstart companies, but it is something we are open to and evaluate on a case by case basis.
Building a successful business is about more than just the software we build. As with all of our customers, we take an interest in helping them succeed. Introducing them to our other contacts and potential investors who might help to make their dream a reality.
The majority of businesses we work with come to us with little more than the concept, typically in the form of a pitch-deck or wireframes. They are typically a single founder or a pair of co-founders who are either self-funded or have a small amount of angel investment. Most applications are launched, to production, in 4-8 weeks from the start of the project, and then go onto ongoing iterations from there.
Take a look at a video we produced with two of our customers.
I hope that answers some of the common questions we get about the Kickstart service.
Do you have a question about how we do something? Get in touch with us and we might feature your question here on the blog.