Hire Us

We partner with organizations of all sizes to design, develop, and grow their products for iOS, Android, and the web.

This is our playbook.

We are thoughtbot. We have worked with hundreds of product teams all over the world, from individual founders who are self-funded, to large multi-national organizations. We have also created our own products and dozens of open source libraries.

This is our playbook. It details how we make successful web and mobile products, and also how we run our company. It's filled with things we've learned based on our own experience and study of others' experiences.

It is a living document that everyone at thoughtbot can edit in a private GitHub repo.

We've made the playbook free and licensed it as Creative Commons Attribution-NonCommercial so you may learn from, or use, our tactics in your own company. While our "plays" have worked for us, we trust your judgment over ours to decide which tools and techniques might work for you, too.

Product Design Sprint

All our projects are design-led, starting with post-its and sketching, ending with design implemented as code in the app. We use design sprints and user research to understand our client's problems, validate assumptions about the products, and build products that are user-centered.

Introduction to Product Design Sprints

Phase 0: Prepare

Phase 1: Understand

Phase 2: Diverge

Phase 3: Converge

Phase 4: Prototype

Phase 5: Test and Learn

Choose Platforms

Early in a project, we have to decide which platforms we'll use. Which platform depends on our ideas for solving these users' problems. After considering what's best for users, the best tools for us have a strong community, make us happy, and help us create and iterate quickly.

"Mobile" refers to the user, not the device

Native matters on mobile devices

Rails gets web products to market quickly

Laptop Setup

Your laptop is your sword. Don't go into battle without it.

Automate your development environment

Share configuration with dotfiles

Use an extensible editor

Planning

One of our primary process goals is to make frequent, small releases of our working software. We do through frequent communication and weekly iterations on a product.

Processes need to adapt to the needs of the product and team

Daily standups build trust and maintain momentum

Nothing beats in-person communication

Manage priorities and visualize progress with a lightweight process

Meet weekly to discuss successes, failures, and future plans

A functioning remote team doesn't happen by accident

Designing

Our projects are frequenly undergoing rapid change. Designers need to use tools and processes appropriate for that environment.

Always Carry a Sketchbook

Test Product Viability and Usability

What is Interaction Design?

What is User Interface Design?

What is Visual Design?

Wireframing in HTML and CSS

Developing

The majority of our development practices were first detailed in Kent Beck's classic Extreme Programming Explained: Embrace Change and in Gerald Weinberg's The Psychology of Computer Programming. We've tried its practices and found that using most of the practices most of the time improves the quality of our work and happiness of our team.

Acceptance Tests

Code Reviews

Continuous Integration

Pair Programming

Refactoring

Style Guide

Test-Driven Development

Version Control

Production

We live in a magical modern era where many problems have already been solved for us. We focus on the core product as much as possible and outsource operations as much as possible to external services.

Domain Names and DNS

Error Tracking

Hosting

Log Collection

Payment Processing

Performance Monitoring

Production Checklist

SSL Certificates

Transactional Email

Measuring

The difficult part of measuring is deciding what to track. Dave McClure's AARRR framework provides a high-level overview of important metrics. We then use tactics such as event tracking to instrument those metrics.

AARRR Framework

A/B Testing

Feature Flags

Instrumentation

Subscription Metrics

Our Company

We believe there is always a better way to do our work, and we want to find it and share it with as many people as possible.

Hiring

Operations

Principles

Sales

Sharing

Time