Our tools of the trade

Chad Pytel

The following details many of the different tools, people, and processes that run our business.

Before discussing those tools, we’d like to say we try to avoid building internal tools. It requires time and money to build and makes you reliant on yourself if and when things don’t work.

We try not to fool ourselves into thinking our problems are unique. We will use spreadsheets and manual processes first. When we do build something, it is usually after using other things for years.


We use Pipedrive for sales pipeline tracking and planning. We switched to it from Highrise, which we still use for tracking communication and people who are not in the immediate sales pipeline.

We have a Wufoo form on thoughtbot.com that potential clients fill out to contact us. It has a web hook, which posts to a Sinatra application, which then posts to Pipedrive’s API.

We use an internal scheduling app we built to manage availability and utilization. We don’t track time, but people plan out their weeks and are assigned to projects in this app. We built the schedule app after many years of using a Google docs spreadsheet to track what everyone was working on and upcoming projects.

Client contracts

We use Campfire to discuss contracts amongst ourselves while we’re drawing them up. We send the contracts to clients as PDFs. From time to time a client requests it in Microsoft Word format to make more drastic changes.

Our contract terms are pretty standard so any important differences between clients manifest themselves in the invoices, so we don’t have a seperate system for tracking contract terms.

We store contracts in Dropbox and have a series of folders for pending, current, past, and lost clients.

Client communication

We often create a “project brief” as a Google Doc for clients. It lists the names, emails, GitHub accounts, and sometimes phone numbers of everyone on the client and thoughtbot sides. It lays out the expected schedule of the thoughtbot team (Monday-Thursday each week) and if the client has their own office space, how many days/week we’ll work out of their office (no more than 2/week) and which days to expect us there. It lists any regular meetings such as daily standups at 10am and a weekly retrospective Monday morning. It links to the project’s Campfire room, project management system, GitHub repo, and other systems like Amazon Web Services, with shared credentials.

It links to the protocol and style guide that the team is agreeing to follow together.

We sometimes additionally create a spreadsheet for a client that lists all the services they are using, the monthly bill to expect, a description of its purpose, and credentials for signing in. It includes line items like GitHub, Heroku, Sendgrid, New Relic, Splunk, etc.


We use Freshbooks for invoicing. Our goal is that all clients have recurring weekly invoices. We also track who the salesperson for a customer is in the notes field in Freshbooks.

Freshbooks provides us with our accounts receivable reports. On a weekly basis they are reported to the leadership team, and we address any concerns.

Clients can pay their invoice via check, credit card directly in Freshbooks, or wire transfer. We use Authorize.net to accept credit card payments in Freshbooks, but we’d switch to something else if it was available.


Our outsourced bookkeeping firm, AccountingDepartment.com, reviews Freshbooks for new invoices and new payments on a daily basis and inputs them into Quickbooks. If any checks or wire transfers have come in, they are entered into Freshbooks and Quickbooks. Freshbooks sends payment received email notifications to both clients and the management team.

AccountingDepartment.com provides us with an outsourced bookkeeper, controller, and tax accountant/CPA. They provide us with a hosted Quickbooks install that we can access via Remote Desktop.

We use Earth Class Mail to receive all paper mail for our offices. This service automatically opens and scans all paper mail and sends it as a PDF email attachment, which we file in Dropbox. Earth Class Mail also automatically detects checks and deposits them into our bank account.

Finance and accounting

In Sweden we are assisted by TMF Group for company, accounting, tax, and human resources.

Last year we started working with an outsourced CFO, Charlie Popkin. Charlie has helped us put in place fairly extensive budgeting and forecasts. This is all done in Excel. On a monthly basis AccountingDepartment.com and Charlie make meaningful management summaries of the comparative financial data, forecasts, and budgets.

Management team collaboration

We use Basecamp to coordinate between Charlie and the leadership team. Examples of recent conversation topics include budgeting for 2013, when to start the process of finding an office manager for the San Francisco office, documenting our quarterly review process, confirming whether our San Francisco client contracts should be under California law, renewing our health insurance plan for another year, identifying the third advisor for our board of advisors, and deciding whether and how much to give for year-end bonuses.

We have a Campfire room for management discussion and planning. This is often discussion about potential projects, leads, availability, rotations, setting up introductions and networking for each other.

Our law firm is Gesmer Updegrove LLP. They are able to provide us with legal support for most everything we need, which is most commonly client, real estate, and company/stock matters. We also engage Costa & Riccio LLP for US immigration matters.

In Sweden we are assisted by Newcomers for immigration and relocation matters.

We use RightSignature for employee forms and contracts but we’re not currently using it for client contracts.

Content marketing

We use Tumblr for our blog. Our CSS for the blog is hosted in a custom Sinatra app deployed to Heroku.

We use Trello to manage the editorial calendar for the blog. The lists on the “Editoral Calendar” board are Next Up, Drafts, In Review, Published, Promoted. We also use Trello to manage our technical research. The lists on the “Technical Research” board are Pending, Researching, Discussing, and Resolved. We share the current state of our research in our monthly newsletter, the ‘bot cave. The newsletter is managed by TinyLetter.

Ad buying

We invest about $500/month in Twitter’s Promoted Accounts product. This lets us find people who are interested in similar topics to us, often in Boston, San Francisco, Boulder, and Stockholm, whom we can then share technical tips and links we think are great via our Twitter account.

We spend about $250/month in Google Adwords for our workshops. We almost never buy display ads, sometimes sponsor a good industry podcast like Dan Benjamin’s 5by5, and don’t sponsor conferences, but do sponsor pub nights, buy dinner for user groups, and pay for childcare of adults taking community-organized training programs.

Marketing metrics

We use Google Analytics and KISSmetrics heavily. Twitter’s Promoted Accounts has a good analytics dashboard that tells us how Twitter users are engaging with our tweets and which ones are resonating with them.


We used to use tokbox, iChat, and freeconferencecall.com. Now we use conference lines that are part of our VoIP system, provided by OnSip, for voice conferencing. For video conferencing we use Google Hangouts, Skype, or FaceTime/iChat.

In our conference rooms we have whiteboards, large screen TVs hooked up to Apple TVs, and Mac Minis. We used to have a webcam attached to the TV, but now we just point someone’s computer at the whiteboard or the group.

If you have any questions about any of the above or anything we may have missed, let us know.