March 23, 2023
Cut cloud before payroll
Every week seems to offer fresh staff cuts at the big tech companies right now. Several of the giants are already on their second rounds, and few would probably bet against a third after those. But as hard as it is on an individual level – and it's always hard! – there's a silver lining for the economy as a whole: Releasing captive tal...
Read more
Read more
March 22, 2023
Angry customers are a gift
The majority of customers will never tell you why they stop buying on their own. In fact, even if pressed, most will just smile, nod, and give you some face-saving reason for how “now is just not the right time” or “we are just going in a different direction”. Because that’s what avoids conflict. Thus, the only time you’re truly allowe...
Read more
Read more
March 21, 2023
Compressing a million-dollar commercial into $37,000
Last year, we hired a high-profile ad agency to work on our first-ever branding campaign for Basecamp. They were smart, funny... and entirely out of sync with our budget. So we ended up letting them go, hiring a new head of marketing, and doing it all ourselves. The problem was that our entire marketing budget for 2023 amounted to a "m...
Read more
Read more
March 8, 2023
Actions beat arguments
You can't convince someone invested in their convictions to the contrary by arguments alone. Only actions can pry open a locked mind, and most minds remain locked most of the time. So if you wish to be persuasive, you ought to spend less time arguing and more time doing. This is as it should be. Talk is cheap, and others are right to k...
Read more
Read more
March 3, 2023
SaaS startups will have to care about productivity again
When the money flows freely, and there's a strong cachet to having tons of open positions, you can be forgiven to think that the individual productivity on a product team just doesn't matter. So much time is spent coordinating the work anyway. Who cares if the stack you're using takes twice the number of people to ship meaningful updat...
Read more
Read more
March 1, 2023
The simplest thing that could possibly work
I'm a programming child of the agile software movement. Just as I was starting out, Kent Beck published Extreme Programming Explained in 2000. It was a revelation. I had just enough exposure to Big Upfront Design and waterfall methodologies to appreciate what a monumental shift this was. Beck's methodology x-rayed the ills of the tradi...
Read more
Read more
February 28, 2023
Introducing Kamal
It's finally time to talk about the technology we've been building at 37signals to leave the cloud with HEY and many of our legacy applications. We already run Basecamp on our own hardware, but we deploy it using an old tool known as Capistrano. This is the deployment tool we originally wrote at 37signals all the way back in 2005, when...
Read more
Read more
February 28, 2023
When prophecy fails
Remember back in November, when seemingly every pious public persona and their coteries announced final farewells on Twitter? All in the clear expectation that the service would sink any moment? Like they had seen the iceberg, and was sure – just sure! – that impact was imminent. Except, there was no iceberg, no impact, no sinking ship...
Read more
Read more
February 27, 2023
Don't be fooled by serverless
Cloud aficionados love pinning the true promise of the cloud on serverless functions and services. Not getting the savings you thought you would with the cloud? It's because you didn't go serverless. Frustrated with the complexity of the cloud? Serverless! Performance questions? SERVERLESS! Serverless has become a mantra to chant becau...
Read more
Read more
February 24, 2023
Get out of momentum's way
It can take a long time and be tricky business to get a gaggle of humans rolling in the same, right direction. When it finally happens, you feel it. The pace is effortless. The interactions are easy. This is the moment when momentum asks you to get out of the way. The easiest way to mess up a good thing is to mess with it at all. Just ...
Read more
Read more
February 23, 2023
Caring about costs is cool
Revenue gets all the glory in the land of tech. The unlimited upside! Growth cures all! The next digit unlocks the next round! Don't get me wrong, without revenue, without paying customers, there's nothing. But once there's something, costs count just as well to the bottom line as does revenue – if you care about profits, and you shoul...
Read more
Read more
February 22, 2023
Five values guiding our cloud exit
I've talked a lot about cost in our reasoning for leaving the cloud. But while cost is crucial, it is not the only motivating factor. Here are five values that have guided our decision, and that I recently articulated in an internal post at 37signals (so excuse the code names etc): 1. We value independence above all else. Being trapped...
Read more
Read more
February 21, 2023
We stand to save $7m over five years from our cloud exit
Since declaring our intention to leave the cloud in October, we've been busy at work making it so. After a brief detour down a blind alley with an enterprise Kubernetes provider, we found our stride building our own tools, and successfully moved the first small application out of the cloud a few weeks ago. Now our sights are set on a t...
Read more
Read more
February 16, 2023
My all-time dream car
Whether you're a car lover or not, there's no denying the disarming enthusiasm of Doug DeMuro. He's an anti-influencer in a car world dominated by slick, status-conscious performers on YouTube. A reminder that being into cars doesn't have to be about showing off, and that you can enjoy the design, engineering, and driving experience of...
Read more
Read more
February 14, 2023
Hey, is that a CRM?
When we first started work on HEY, we didn't mean to build a general-purpose email service at all. We were looking to create Highrise 2. The successor to our beloved small-team CRM system from 2007. We had several skunkworks attempts at that in the past. One was nicknamed Glenn Gary. Another was Chestnut. But it was realizing that emai...
Read more
Read more
February 13, 2023
Inspiration is perishable
We all have ideas. Ideas are immortal. They last forever. What doesn’t last forever is inspiration. Inspiration is like fresh fruit or milk: It has an expiration date. If you want to do something, you’ve got to do it now. You can’t put it on a shelf and wait two months to get around to it. You can’t just say you’ll do it later. Later, ...
Read more
Read more
February 10, 2023
Invest in things that don't change
You know you're old when you can talk about stuff that happened twenty years ago with vivid recollection. I'm now that old. This week, it's been 19 years(!!) since we first launched Basecamp. Which means it's been well over twenty years that I've been working with Jason Fried at 37signals, and also more than twenty years since I first ...
Read more
Read more
February 9, 2023
How it started / how it's going
A picture of my home office in Malibu went viral last week. Some two million people gawked at that lovely Catalina Island-facing view that forms the background for work when I'm there. Here's another shot of that same office from the early morning: It really is my dream office. But at the same time, it's also just an office, and the mo...
Read more
Read more
February 7, 2023
Software has bugs. This is normal.
Disappointment occurs when expectations don’t match reality. And our expectations for software quality are profoundly unrealistic. Thus, lots of people are continuously disappointed — even enraged — by software bugs. They shouldn’t be. The only reliable, widely used way to ensure impeccable software quality is to write less software th...
Read more
Read more
February 3, 2023
Proof of the peak
Just a couple of months ago, I wrote an analysis of why I believed we were entering the waning days of DEI's dominance. I looked at four factors: 1) the likely judicial defeat of affirmative action in universities, 2) the disintegration and scandalization of BLM, 3) the loss of Twitter as an effective woke policing mechanism, and 4) fi...
Read more
Read more
January 31, 2023
Just let me do my job
This is to everyone who've ever been frustrated with the inability to find time at work to do their actual job. To those who've had to nod and smile at the VP of Wasting Everyone's Fucking Time. To whoever is sick of playing calendar tetris just to win the prize of zoom gloom. To people who actually like what they do, and would be ever...
Read more
Read more
January 26, 2023
Hardware is fun again
I lost interest in computer hardware during the 2010s. It seemed years would pass with only meager, marginal improvements. Intel was stuck in a rut, so CPUs were barely improving. The only bright spot for me was Apple's progress with their A-series chips for phones. But that felt like a segregated reality from that of regular computers...
Read more
Read more
January 23, 2023
Glorious days like these
This is my favorite kind of day. An entirely empty schedule combined with a juicy, challenging project to dedicate it to. The perfect antidote to the dread that occasionally sets in when a whole week is devoured by #ExecutiveLife. Nothing invigorates the soul like seeing something come together out of nothing, and to do that, you need ...
Read more
Read more
January 20, 2023
Another Android
It'd been a couple of years since I'd gotten a new Android phone. The last one was the One Plus 8 Pro. Nice phone, but I hated the screen water-falling over the edge. And I absolutely cannot stand the One Plus hijinks applied to scroll acceleration. So I've pretty much only used it as a spare Fortnite machine for the kids, except when ...
Read more
Read more
January 16, 2023
You can always go faster (if you know where to risk it)
The better you are, the faster you go. That's a basic truism of just about any field, and programming is no different. But competence isn't the only input to pace. Risk tolerance is just as important, if not more so. You can't go quickly if you treat every problem with the diligence required for rocket surgery. If your work can directl...
Read more
Read more
January 12, 2023
They're rebuilding the Death Star of complexity
I started my career in programming during heydays of Java Enterprise Edition (J2EE). This was late 90s/early 00s, and there was a rich ecosystem of enterprise vendors hawking application servers, monitoring tools, and boxes upon boxes of other fancy solutions. These tools were difficult to learn, expensive to license, and required an a...
Read more
Read more
January 10, 2023
The only thing worse than cloud pricing is the enterprisey alternatives
We spent the last couple of months thinking that bringing HEY home from the cloud was going to involve SUSE Rancher and Harvester. A combination of enterprisey software products that would give us a cloud-like experience on our own hardware, and require minimal changes to how HEY is already packaged and deployed. But we should have sme...
Read more
Read more
January 9, 2023
We don't A/B test core values
Carlos Trujillo recently had to cancel a Basecamp account, but we managed to leave a warm, lasting impression by making it effortless. No last-minute offers, no pressure to get on a call to "explain", no dark patterns of any kind. Just gratitude that we could be of service while it lasted. It seems self-evident that it should always be...
Read more
Read more
January 4, 2023
A high bar is high respect
It's tempting to think you're doing someone new a favor by initially holding them to lower standards on work, effort, or decision making. They're new! They need to find their feet! Yes and yes, but neither fact is helped by going easy on what good decisions, reasonable effort, and solid work needs to look like at your company. Now keep...
Read more
Read more
December 16, 2022
Throw Twitter into the fire of Mount Doom
Whatever brief promise that Elon Musk might run New Twitter on principles not power seem dashed by the ElonJet affair. So I'm now biased to the tail outcome of this acquisition: That it liberates the world from Twitter's unique influence on our common discourse. Nobody should have this much power over the town square. No human is stron...
Read more
Read more
See more posts »