Skip to main content Accessibility Feedback

Just because a big, well-known tech company does something doesn't mean you should, too

In fact, it may well mean the opposite.

I’ve been talking a lot about my issues with CSS-in-JS lately. One of the biggest counter-arguments I get in favor of it is something like this:

Twitter has had great success using CSS-in-JS with their large engineering organization.

There’s a common belief that if an organization is large and successful and has lots of smart, talented people working there, it must be doing the right things.

I’m not sure that’s true.

Large organizations don’t optimize for user experience.

They optimize for cost. They optimize for internal ease (same thing, I suppose). And they optimize to maintain internal power.

If Twitter optimized for user experience, we would still have a reverse-chronological feed of just the stuff the people you follow post. We’d have a fully-functioning API and thriving third-party app market. We’d have better moderation systems and tools.

When’s the last time you’ve loved a change Twitter has made to their site? So why would you idolize their engineering process?

Yes, Twitter reduced the size of their overall CSS using CSS-in-JS. But they could have done that other, less fragile and user-hostile ways, too.

Making things complex is easy. Making them simple is hard.

Twitter and tons of other big tech companies are filled with lots of super talented people. I certainly don’t want to take away from their hard work.

CSS-in-JS can be an incredibly impressive piece of engineering.

I’m sure it helps Twitter’s internal teams work around lots of application-level and organizational complexity.

That doesn’t mean it’s good for the web, or that you should use it, too.