@mdo

Don't recreate the platform

At Twitter, the Design team is broken down into a number of verticals: corporate, research, mainstream/feature, and platform. The balance of the last two, designing features and designing platforms, represents an important rule of thumb for building on the Web.

Don’t recreate something the platform already provides. This guideline tends to manifest in two areas:

  1. Designing features versus designing reusable components.
  2. Developing new functionality versus utilizing existing functionality provided by the platform.

In the first one, your team has to find balance in building new things within the constraints of a potentially already designed system: your product. Don’t spend time creating new variations on your grids, typography, buttons, navigation, and the like. Instead, spend your time innovating on top of constraints. Focusing on recreating your most common components in every project only undermines your own efforts. Identify those constraints and make them work.

In the second area, the issue is using what the platform gives you or spending time to recreate that existing functionality. Why recreate checkbox functionality when you can simply use checkboxes? In most cases, the former means additional markup, CSS, and JavaScript. In the latter, you get all that behavior for free simply by using native HTML. Now, this doesn’t apply to every situation: sometimes you need to extend existing functionality. In that situation, it becomes an issue of return on investment, and it’s up to your team to make that call.

Don’t let rules cripple the innovation or progress of your team, but try to design within meaningful constraints. Great design is always mindful of striking out on your own and respecting the platform you’re developing on.