I used Basecamp for about four years at a startup, from when we were 3 people up to around 20. A lot of it worked really well. This isn’t a “Basecamp is bad” post. Quite the opposite, actually. It was one of the calmest tools I’ve worked with, and that was a big reason it worked for us.
What Basecamp did especially well was communication. The chat was genuinely great for async work — quick questions, small updates, and day-to-day coordination without forcing more meetings. Messages were also useful when something needed a bigger discussion or more context. For that kind of collaboration, I think Basecamp gets a lot right.
What I kept feeling over time, though, was that for software development the connection between discussion, work, and delivery wasn’t strong enough. We could talk about something, write todos, and keep moving, but the thread from “we discussed this” to “this is now part of the real plan” to “this specific work is done in code” never felt clear enough.
That gap matters more in development than it might in other kinds of work. A discussion is not the same as a decision. A todo written down is not the same as a real execution order. And something being marked done is not always the same as understanding what actually changed in the codebase.
Another thing I’ve come to value a lot is being able to roughly see what is likely to get done without creating a separate planning ritual around it. Not because every task needs an exact date, but because it becomes obvious what will likely be finished soon, what may slip, and what probably won’t happen yet. What I was missing wasn’t more planning. It was a structure where that became naturally visible.
I also felt the lack of a stronger link between todos and code. Not in a heavy, enterprise workflow kind of way, but just enough to follow the thread from discussion, to prioritized work, to implementation, to actual delivery.
In the end, I don’t think Basecamp gets it wrong. I think it’s built for a slightly different kind of customer, and for that customer it does a lot really well. But software development puts pressure on a system in different ways. Developers need a clearer path from discussion to execution, from execution to code, and from code to finished delivery.
That was the gap I kept feeling. Not because Basecamp failed us, but because it helped me understand what I wanted to keep — calm, async-first collaboration — and what I still needed beyond that.