motherfuckingui.com

Your UI is doing too much.

The Manifesto

Your website has 47KB of JavaScript to render text. That's the problem.

We used to have hypertext. Now we have "experiences." We used to have pages. Now we have "landing pages" and "onboarding flows" and "micro-interactions."

Everything is a modal. Everything is a tooltip. Everything needs a close button you can't find.

"We shipped 12 new features!"

Cool. Does it still load?

What's Broken

1. The Loading State Industrial Complex

Your app needs a loading state. That's a bug, not a feature.

You know what doesn't need a loading state? HTML files from 1993. They just loaded. You clicked, you read. Groundbreaking stuff.

2. UI Patterns as a Service

Everyone's using the same components:

dropdown menus hamburger menus toast notifications skeleton loaders infinite scrolls modal dialogs cookie banners newsletter popups

Congratulations. Your site is indistinguishable from every other startup's site.

3. The "User Experience" Lie

We optimized for engagement, not utility. We measure time on page, not tasks completed.

Your onboarding flow has 7 screens? That's not UX. That's hazing.

4. Accessibility as Afterthought

Keyboard navigation? Supported.
Screen readers? Tested.
High contrast mode? Considered.

Your "beautiful" design is a wall to anyone who doesn't see the world exactly like you.

What Works

1.4s Load Time
23KB Total Size
100% Readable

The Principles

The Secret

You don't need React. You don't need Vue. You don't need Svelte. You don't need Angular.

You need <a href>. You need <button>. You need <form>.

The platform already did the work. You just got in the way.


This Page

This page weighs less than 5KB. It works without JavaScript. It's accessible. It respects your CPU and your battery.

YOUR APP CAN'T SAY THAT.

Your "modern web development" stack:

bundle.js: 847KB framework: 42KB gzipped state management: 15KB router: 12KB CSS-in-JS: 28KB icons: 6MB analytics: 0KB useful

For what? A form that sends an email?