How we keep Flat simple

If an organization tool is too complicated, it’s adding to the problem it's supposed to solve. Unfortunately, being too complicated is what happens by default. Here’s how we ensure that doesn’t happen to Flat as we’re constantly improving it.

Dec 7, 2023

Recently when I was showing Flat to a prospective user, he said something to the effect of “I can see you haven’t been working on this for very long because there’s not much to it.” He couldn’t have been more wrong! We’ve been working on Flat for three years, most of which has been spent tenaciously pursuing a level of simplicity that only appears obvious — to him and to others — after the fact. Achieving and maintaining that level of simplicity is not easy. We've often torn down features that have already shipped to replace them with simpler designs, sometimes up to seven times.

If a tool is too complicated, it becomes part of the problem, not part of the solution, and people just won’t use it. Unfortunately, that’s the default trajectory for a software product — to become more and more complicated over time Simplicity, on the other hand, must be fought for, tooth and nail, forever. But the fight is worth it. Simple software feels almost like an extension of the mind. It can be learned and used with little to no effort, and delights its users.

There are three main layers to a software product  — the user’s mental model of the product, the product’s interaction design, and its visual design  — and we strive for simplicity in all of them.

The foundation layer is the user’s mental model of the app’s core concepts and how they relate to and interact with each other. It’s visible to users in the concrete terms the app uses for its concepts, and in how the app structurally arranges its content on the screen (its information architecture). Simplicity here is absolutely critical, because if the mental model is complex, the higher layers of the product’s design won’t be able to hide it.  Simplicity here means: the fewer concepts, the better. In Flat, topics are the central concept and are like file folders binding together context, status, and discussions; while workspaces group related topics together and provide workflows and a searchable archive. There are more details of course, but that’s the big picture.

The next layer is interaction design. Flat aims to minimize cognitive load by presenting information clearly and concisely, and letting users provide information quickly and easily with interactions that are intuitive and efficient. Here, simplicity means consistency in our interaction patterns, so the product’s behavior is predictable to the user. We try to have as few patterns as possible, to minimize the learning curve. A good example of this is Flat’s plan and dates views. The plan view lists topics grouped by priority bucket, and the date view lists topics grouped by date range. In both views, users can drag a topic to move it to a different group, despite it meaning something very different in each view. The consistent interaction pattern creates simplicity for the user.

The final, surface layer is visual design. Flat aims to provide a feeling of calm and clarity for users, avoiding the visual clutter and crampedness that can be subliminally stressful. Flat uses a strong and consistent visual language to convey to users what things mean and how components behave. Visual design and interaction design are tightly coupled, and much of the work in creating a feeling of simplicity in Flat comes down to finding the design that strikes the right balance between the two, while staying faithful to the user’s mental model.

All that said, the biggest contributor by far to our relentless pursuit of simplicity is everything we don’t build. Our philosophy is: less is more. A single product can’t make everyone completely happy, because users all have slightly different requirements — and everyone has their pet feature ideas. If we tried to build all those features, we’d end up with an unusable monstrosity of a product. Instead, we build only the features that all or almost all users need. Flat can be thought of as a bargain struck between thousands of users who’ve never met each other, each of whom says: I’ll give up my pet feature, if you all give up yours. This way the product can be kept simple for everyone, and that simplicity has enormous value.

But our dedication to simplicity doesn’t end at the borders of our product; we aim to help users by simplifying their work lives, and that requires considering the entire context of how teams use Flat, and all the other tools they’re using alongside it. If we simplify Flat merely by pushing complexity somewhere else for our users, we haven’t really helped them in our book.

So the key to Flat’s simplicity is no secret process, tool, or technique: it’s just that we obsess over it, poring over every design and considering every decision in the relentless pursuit of it. Nothing less is required to make software that users find delightfully simple and easy to use.

Seth Purcell is the co-founder and CEO of Flat. His career has ranged over genomics, finance, and for the past decade, leadership roles in web technology startups.