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 7, 2021

The time is right for Hotwire

It's not exactly been a big secret that I've harbored a fair skepticism towards single-page applications over the years. Not because of some innate animosity with JavaScript, at least not the modern variety, which we first tasted in the form of CoffeeScript, then as transpiled ES Next. But because writing and updating HTML like that ne...
Read more
December 2, 2021

Worrying yourself into excess

When we were developing this HEY World system in the beginning of the year, we ended up spending a very considerable amount of time worrying about and discussing all the ways it might be abused. This is the internet after all! Full of savage trolls! Surely we must fortify lest we be overrun? But the trolls never came. Since we launched...
Read more
December 1, 2021

Books that bust bubbles

It's a disorientating time in America. So many societal seams are unraveling simultaneously. So few ideas for how to stitch those seams back together find common cause. No wonder despair and anger comes so easy to so many right now. These dark emotions are then propelled by the particle accelerator that is Twitter into super-charged ta...
Read more
November 25, 2021

Programmers should stop celebrating incompetence

In the valiant effort to combat imposter syndrome and gatekeeping, the programming world has taken a bad turn down a blind alley by celebrating incompetence. You don't have to reduce an entire profession to a clueless gang of copy-pasta pirates to make new recruits feel welcome. It undermines the aspiration to improve. It reduces the w...
Read more
November 22, 2021

Authoritarian hippie parents

There was a time when liberal ideals of self-determination, self-regulation, and free-range independence naturally extended to parenting as well. Such ideals were seen in stark opposition to conservative parenting based on obedience, discipline, and reverence. Today it seems like these roles are often reversed. The strictest parents I ...
Read more
November 17, 2021

It must be worth it even if it doesn't work

The way to work without regrets is to pursue projects that'll have been worth your time even if they don't pan out. Projects that'll tickle your curiosity, flex your competency, and teach you something new regardless of where they ultimately end up. Projects that leave you better off, as a person, despite not being a commercial or crit...
Read more
October 6, 2021

How do you know what people have been working on?

Losing the sense of being in the know about what's going on at the company is one of the most common concerns I hear regarding working remotely. Both at the managerial level and between coworkers. There's a real fear that staying remote for too long will eventually lead to nobody really knowing what's going on, and thus the organizatio...
Read more
September 24, 2021

Stimulus 3 + Turbo 7 = Hotwire 1.0

For so long, it felt like I could only tell half the story of how we make software for the web at Basecamp. Too many of the chapters about our front-end approach were missing key pages. Sure, we had some of it out there. Turbolinks, for example, hark back to 2012, when I was inspired by Chris Wanstrath's ideas in pjax, and took them fu...
Read more
September 20, 2021

Conceptual compression is lossy (and loss hurts)

To make things simpler, you have to take something away. That means giving up something of real value to get something else of greater value still. You can't counter complexity without being willing to sacrifice. That is the nature of conceptual compression. It's why it's so hard to do. People become attached to the choices and advanta...
Read more
September 16, 2021

Your likes, hearts, and flattering comments are bad for my brain

I’ve been publishing controversial thoughts, essays, books and software for half my life. It has endowed me with a thick skin to repel the haters, and kept me going whatever they said. But after close to two decades of having my work often judged favorably, I’m still no better at dealing with gestures of adoration. In fact, I think it’...
Read more
September 14, 2021

Apple's forced IAP is either dead, a joke, or illegal

I can understand Epic's disappointment with the verdict in their trial against Apple. They sought to have the iPhone recognized as the pocket computer it is. One where consumers should have the right to install the applications of their choice, like with any other general-purpose computer, and where developers should be free from extor...
Read more
September 6, 2021

Rails 7 will have three great answers to JavaScript in 2021+

Rails has been unapologetically full stack since the beginning. We've continuously sought to include ever-more default answers to all the major infrastructure questions posed by modern web development. From talking to a database, to sending and receiving emails, to connecting web sockets, to rendering HTML, to integrating with JavaScri...
Read more
September 3, 2021

No one wants to be a code monkey

So many software companies these days are stuck on a ticket treadmill, working a never-ending backlog. When those companies look at Basecamp, they think "this can't work for software development?!", because it's not a ticket feeder. Heads explode when I tell them we do everything in Basecamp. That's the challenge of selling software ou...
Read more
September 2, 2021

Japan bends Apple another inch on the App Store

Is there a country anywhere in the world without an open investigation into Apple's monopoly abuses with the App Store? It seems like we can barely go a month, let alone a week, between announcements of new inquiries, new laws, new settlements, new scrutiny. Change comes slowly, then all at once, eh? Now it's Japan's turn. The Japanese...
Read more
August 31, 2021

South Korea just killed the 30% app-store cut

Apple and Google knew from the start of this fight that they couldn't afford to lose even once. That's why they pulled out all the stops stops to intimidate the Senate in North Dakota. That's why they spared no expense on the backroom deal to kill the Arizona bill. But now they've finally met a legislature they couldn't bully or buy: T...
Read more
August 27, 2021

Apple's new settlement is a corrupt joke

There's this iconic scene in the movie Fight Club where Edward Norton's character is sitting together with his boss, and they're negotiating some enterprise software sales deal on a dreary Monday morning. The boss is being dazzled with the usual, trite spiel that enterprise sales people lay on middle managers, like "waste is a thief". ...
Read more
August 12, 2021

Modern web apps without JavaScript bundling or transpiling

I didn't much care for vanilla JavaScript prior to ES6. Through all of the 2000s, I chased different approaches to avoid writing too much of it. First there was RJS (Ruby-to-JavaScript). Then there was CoffeeScript. Both transpiling approaches that turned more enjoyable-to-write source code into the kind of JavaScript that browsers wou...
Read more
August 11, 2021

Too many fights on too many fronts

Compared to its big tech compatriots, Apple has only recently reached Grand Scrutiny Station. The place where everything you do is met first with skepticism and scrutiny – by an influential segment of the masses and the media – more so than courtesy or curiosity. That's undoubtedly a foreign place for Apple, after so many years of unad...
Read more
July 1, 2021

Broken software invites collaboration

After two decades of open source participation, I’ve found it easier to cultivate community collaboration around software that’s obviously a little broken. Waiting until the project is pristine before sharing it with the world creates an aura of perfection that intimidates and alienates. So releasing before every bug has been squashed,...
Read more
June 23, 2021

Here comes the law

It always seems impossible until it’s done. And few fights have demonstrated this more than that against the monopoly abuses of big tech. For over a decade, the likes of Google, Apple, Amazon, and Facebook have been able to get away with murder in digital markets without fear of consequences. Wrapping their tentacles ever more forceful...
Read more
June 15, 2021

Bringing Hotwire to Basecamp

Hotwire is now powering Basecamp 3 on the alpha version we're running internally, and I thought it'd be helpful to document the upgrade process. Although upgrading is perhaps a big word. It's not like we rewrote all the JavaScript we have to make this happen. Coexisting is probably a better term. While existing JavaScript code stays as...
Read more
June 8, 2021

Email spy pixels are dead now that Apple will follow HEY

There's no advocacy as effective as competition. I could have yelled and screamed about email spy pixels till I was blue in the face, but it was building a serious set of defenses into HEY that turned the argument into action. And now the entire email tracking industry is about to be turned upside down, as Apple has announced they'll f...
Read more
June 3, 2021

We're hiring!

In the past few weeks, we've filled a bunch of vacancies at Basecamp with wonderful new coworkers. People we mainly found through our personal networks and other informal channels. But now it's time for the first big open call. We always do these with a bit of trepidation, because it's a lot of work. We usually get hundreds of applicat...
Read more
June 3, 2021

Building Basecamp 4

Since launching Basecamp in 2004, we've rewritten the entire system not once but twice. First with Basecamp 2 in 2012, then with Basecamp 3 in 2015. Yet unlike other infamous rewrites, we didn't do it due to technical debt. We did it because we wanted Basecamp to be a radically different product every time. The big ideas that animated ...
Read more
May 28, 2021

You'll pay for it either way

“If you need a machine and don't buy it, then you will ultimately find that you have paid for it and don't have it – Henry Ford” I was thinking of this quote all week, as I worked on a new internal operating tool for supporting Basecamp. We must have wasted thousands of hours over the years on routine support questions for Basecamp tha...
Read more
May 25, 2021

Targeted ads are staggeringly unpopular so we should ban them

People really don't like getting tracked around the internet by targeted ads. I mean really, really don't like it. A staggering 96% of users in the US are declining the privilege of being followed around their apps and websites for the grand prize of "more relevant ads" when given the choice in iOS 14.5. The American public can barely ...
Read more
May 24, 2021

Who owns your iPhone?

You can spend up to $1,399 on an iPhone 12 Pro Max in the US, but even though the button to commit to this extravagant purchase says "buy", the transaction isn't really a sale in the traditional sense. Because even if you pay lavishly for this magnificent pocket computer, it's never truly yours. The Right To Repair You'd think that aft...
Read more
May 21, 2021

Not just what you read but how

The concept of a media diet has gotten a lot of attention, and it's surely an important one. If you fill your mind with drivel, it'll soak your thoughts in kind. But how you choose to fill your mind matters too. Even if the sources are ace. For many years, I consumed media in a continuous, never-ending stream from morning till night. I...
Read more
May 20, 2021

Speeding up HEY's The Feed

Modern emails are essentially HTML pages. Particularly newsletters, which are full of images, styles, and tables. Showing these HTML emails inside a web-based email client is not a trivial problem. Unlike a normal HTML page that has the whole browser to itself, these HTML emails have to be shown inside the navigational chrome of the em...
Read more
May 20, 2021

After the storm

It's been three weeks since Jason and I announced the set of workplace policychanges that led to a public firestorm and a really difficult, stressful time for everyone at Basecamp. Since then, we've been regrouping, hiring new colleagues, and continued operating our services without a hitch. We have a great team in place, and everyone ...
Read more

See more posts »