David Heinemeier Hansson

Made Basecamp and HEY for the underdogs as co-owner and CTO of 37signals. Created Ruby on Rails. Wrote REWORK, It Doesn't Have to Be Crazy at Work, and REMOTE. Won at Le Mans as a racing driver. Fought the big tech monopolies as an antitrust advocate. Invested in Danish startups.
December 19, 2023

The Big Cloud Exit FAQ

Just over a year ago, we announced our intention to leave the cloud. We then shared our complete $3.2 million cloud budget for 2022, and the fact that we were going to build our own tooling rather than pay for overpriced enterprise service contracts. The mission was set! A month later, we placed an order for $600,000 worth of Dell serv...
Read more
December 18, 2023

Patek levels of finishing

We’re in the final phase of getting the first ONCE product out the door. As with any new development, there are a million little details we need to nail for a successful launch that’s up to our standards. That’s usually where the temptation to cut corners on internal quality beckons, but we’ve handcuffed ourselves to the virtue of beau...
Read more
December 17, 2023

Native mobile apps are optional for B2B startups in 2024

I continue to see new B2B software startups struggle with native mobile apps. Consumer software makers can usually start by going all-in on a single platform, but for business tools, that’s rarely an option. So they must face the tall task of tackling web, iOS, and Android at the same time. Hence the proliferation of toolkits like Reac...
Read more
December 14, 2023

The early bird sees the sunrise

I’ve found that you eventually get bored or at least used to every form of material trapping you can buy. Cars, watches, cameras, computers, whatever. It’s not that fancy stuff stops being nice, but it does stop being wow. That’s the essence of the hedonic treadmill. But do you know what never gets old? Nature. And I mean nature in the...
Read more
December 10, 2023

What is HiFi

I grew up in a home where music was always playing. My father repaired electronics, so an endless stream of speakers, amplifiers, turntables, and TVs passed through the household. And all of it had to be tested, of course. At max volume. Sometimes at odd hours. While that was frequently a bit of a nuisance, it did seed a deep appreciat...
Read more
November 10, 2023

The origin of Ruby on Rails

I can't thank Honeypot and Carolina Cabral enough for the producing The Rails Documentary that was just released today. Looking back on those early, formative years of Ruby on Rails with Tobi, Jamis, Jeremy, and Jason was actually kind of profound. I usually don't spend much time looking back, so for once to stop and marvel at how we g...
Read more
October 31, 2023

That Model S Plaid

I've owned a lot of great cars in my time. It's been one of the few places where hitting it big has allowed for something that wouldn't otherwise be possible. From Lamborghini to Pagani, Porsche to Ferrari, Aston Martin to Bentley, I have owned and loved them all. A+ use of lottery money, would do it again! It's against all these delig...
Read more
October 31, 2023

Workfeed goes to America

During my three years in Denmark, I invested in five local startups. All on the premise that we'd work towards becoming profitable, remaining in the country, and avoiding the VC timebomb. The one that has already fulfilled all the objectives is Workfeed, and now they're ready to take on the American market. It's a proud moment! Workfee...
Read more
October 30, 2023

Negative visualization in practice

The most counterintuitive of the Stoic mental exercises is that of negative visualization. Willfully imagining all manner of terrible things that might befall you, but haven't yet. Described like this, it sorta sounds like a fancy word of anxiety, but if you look closer, it's in fact its opposite. The point of visualizing the consequen...
Read more
October 27, 2023

X celebrates 60% savings from cloud exit

Musk has taken a cleaver to the costs and complexity at X. It hasn't always been pretty, but it sure has been effective, and in the process, he's proven his detractors wrong time and again. Not only has the site stayed up, despite hysteric proclamations that it would crater soon after his personnel changes, but X has been able to incre...
Read more
October 20, 2023

Buying the seller

We've just moved the 37signals podcast to Buzzsprout. Podcast hosting is to some extent a commodity market, so this was less about pining for a specific feature or even working to reduce the bill. This was about buying from Tom Rossi, the technical cofounder of HigherPixels (who make Buzzsprout), and his team, because we'd just prefer ...
Read more
October 19, 2023

The open source gift exchange

I love writing and sharing code as open source, but it's not an abstract act of pure altruism. The first recipients of these programming gifts are almost always myself and my company. It's an intentionally selfish drive first, then a broader benefit second. But, ironically, this is what's made my participation in the gift exchange of o...
Read more
October 16, 2023

The price of managed cloud services

One of the common objections to our cloud exit has been that we shouldn't have expected good outcomes from a lift'n'shift operation. That the real value of the cloud is in managed services and new architectures, not just running the same software on rented cloud instances. It's basically the "you're holding it wrong" argument for the c...
Read more
October 13, 2023

We tried that, didn’t work

In our quest for making programming simpler, faster, and prettier, no logical fallacy provides as much of an obstacle as “we tried that, didn’t work”. The fallacy that past failed attempts dictates the scope of what's possible. That just because someone, somewhere, one time attempted something similar and failed, nobody else should try...
Read more
October 11, 2023

You can't get faster than No Build

For the first time since the 2000s, I'm working on a new Rails application without using any form of real build steps on the front-end. We're making it using vanilla ES6 with import maps for Hotwire, and vanilla CSS with nesting and variables for styling. All running on a delightfully new simple asset pipeline called Propshaft. It's al...
Read more
October 7, 2023

One happy Rails World

Celebrating twenty years of Ruby on Rails with more than 700 happy developers packed into the coolest conference venue possible in Amsterdam was epic. Safe to say, Rails World was a roaring success. Which is deeply satisfying to conclude, because it really wasn't a given outcome when I started working on The Rails Foundation last year....
Read more
September 25, 2023

The Musk Algorithm

Walter Isaacson's new book about Elon Musk is a fine biography, but a better business book. And like all the best business books, it's not merely an instruction manual, but an inspirational guide too. Not since reading Ricardo Semler's Maverick in the early 2000s have I been this impressed with the foresight, fortitude, and ferocity of...
Read more
September 20, 2023

Finishing Hotwire with the introduction of Strada

When we announced Hotwire a few years back, it was always meant as a triptych. The center piece is Turbo. That's the drop-in level-up that makes multi-page web apps feel like single-page web apps – without giving up any of the development advantages to server-side programming. Then Stimulus brought order and structure to JavaScript spr...
Read more
September 19, 2023

Kamal 1.0

I count my lucky stars that SUSE's pricing for Rancher and Harvester was so ridiculous over the top for our situation. If they hadn't reached for those million-dollar contracts, we'd probably be stuck in enterprise vendor hell forever, buying over-priced consulting services for Kubernetes and VM tooling. That would have sucked. Now tha...
Read more
September 15, 2023

Our cloud exit has already yielded $1m/year in savings

Getting our applications out of the cloud provided the main celebration for our exit, but seeing the actual spend tumble is the prize. See, the only way to get pricing in the cloud down from obscene to merely offensive is through reserved instances. This is where you sign up for a year or more in advance on a certain level of spend. Th...
Read more
September 11, 2023

Tesla wins

When we first got our Tesla Model X four years ago, I wasn't the biggest fan. Build quality was spotty, brakes didn't match the performance, and handling was at best so-so. But it could carry seven, including luggage, was electric, and the dual-motor acceleration was a hoot. So it stayed in the garage, pending competition on these crit...
Read more
September 7, 2023

Open source hooliganism and the TypeScript meltdown

I've seen a lot of true believers argue for virtues of their favorite paradigms and methods over the decades working in software. And mostly, I look at people with a passionate preference and smile. Isn't it great that people care so much about their craft that they volunteer to extol the benefits of their favorite tools! Yes it is, bu...
Read more
September 6, 2023

Turbo 8 is dropping TypeScript

By all accounts, TypeScript has been a big success for Microsoft. I've seen loads of people sparkle with joy from dousing JavaScript with explicit types that can be checked by a compiler. But I've never been a fan. Not after giving it five minutes, not after giving it five years. So it's with great pleasure that I can announce we're dr...
Read more
September 1, 2023

You can't fix core competency with a stern conversation

When things aren't going well with a new hire, the problem usually falls into one of two categories: competency or engagement. If it's a problem with engagement – their style of collaboration, their communication, their approach – there's a good chance you can fix it with some clear feedback. But if the problem is with core competency ...
Read more
August 11, 2023

Learning to accept defeat against reality

A great many smart people terminably hamper their ability to better understand the world by refusing to accept defeat when reality proves them wrong. Armed with an intellect that's at once both too proud to recognize it's own failings and cunningly capable of producing sophisticated excuses, they're adapt at spotting this failing in ot...
Read more
August 10, 2023

Turns out nobody cared about panel gaps

One of the most fascinating aspects of Tesla's rise to dominance has been how they discarded many of the traditional values of car making. While the rest of the industry was stuck competing on the size of their panel gaps, and other aspects of precision and quality assembly, Tesla didn't even show up to participate. Their cars are lege...
Read more
August 8, 2023

The curing value of creation

It's hard not to see your spirits lifted when you're part of bringing something to life. Be that a product, an organization, or a community, or all three at once. Like exercise, it's one of those rare avenues of human endeavor that almost invariably will make anyone feel better. And, also like exercise, the hard part is getting started...
Read more
August 7, 2023

Et tu, Zoom?

The corporate cause for return-to-office just claimed its perhaps most ironic victim: Zoom! The company that literally lives to sell us all on the wonders of remote collaboration wants its own people back into the office again. Which I guess is just a regression to the mean of productivity tool makers failing to believe their own marke...
Read more
August 4, 2023

Not everyone can be the best

Many software developers seem to have a uniquely hard time accepting that not everyone who just tries real hard will become so good as to be among the best in this field. That there really is a discrepancy of talent that leads to a discrepancy of competence. That not everyone can or will become equally good at this job. In contrast, no...
Read more
July 27, 2023

X marks the motivated reasoning

I’ve lost track of all the things that Musk has done to Twitter that ought to have brought it down by now. Scarcely a month goes by without some action triggering the incessant bells of doom, ringing from the bellies of bloviating ding dongs. And the ringing seemingly never stops long enough to allow for some basic contemplation or cor...
Read more

See more posts »