React — and What’s Wrong with Web Development Today

In a small apartment in California, 2010, a recently quit software developer wrote a package manager.

As these two platforms developed, one becoming npm, the Javascript package manager, and the other becoming React, an open-source library for building UIs, it seemed as developing apps and websites was as easy as ever.

React

React became popular because it divided sites and apps into “Components”, or parts of a user interface. Designers create Components, then another member of the team just drags and drops them as needed, just like completing a puzzle.

Then Google came into the mix, presenting their Material Design, a series of Components for developing beautiful UIs in React. Suddenly, developers who didn’t have a smidge of knowledge about design could create a full interface in minutes!

Seems too good to be true, ain’t it? Almost every site online today uses React. Even some apps use it!

Out of curiosity, I downloaded Facebook’s React DevTools to see which websites use React. Turns out, the more the website is popular, the more likely it is to use React. Also, the number of websites that use React has been growing exponentially ever since React’s introduction.

With so many users, and so many apps & websites (Facebook, WhatsApp, Instagram, Netflix, PayPal, Reddit, Dropbox, LinkedIn and this very site), everything is starting to look more and more alike.

The same Components, the same look, the same UI. Because creating new Components is costly and time-consuming, developers don’t try anything new.

How many sites have you been to that use the same layout: Header, Content, Footer. The same Material Design. Look, it’s cool, but when Every Website in The Web uses the same layout, it gets a little repetitive.

An example of a new design tech from not long ago, called Neumorphism (new·mor·phi·ziz·um). A fresh take on Apple’s realistic Skeuomorphism from the first iPhones, combined with Google’s flat Material Design.

Seems cool, right? So why isn’t it in every app?

React, huh.. Seems like we’re bounded by Components…

Neumorphism Components are available. But using them makes yourself bounded by the Component creators, unable to take advantage of the huge potential in the design.

When you build a framework, it’s very hard to change it to something new. It’s like building a giant robot. Very cool, but.. Takes forever to move around.

What about npm?

When you create a React app, React installs loads of packages from npm. Why? Because they have code that the developers want to save writing themselves. For example, a program that inserts characters at the beginning of a string (for example, making a zip code). This insignificant piece of code, that you could write yourself in a single minute, almost broke the web when a guy in Oakland decided he wanted to delete it because he felt like it.

That’s called a dependency (no, literally). Now think that instead of just one, there’s hundreds!

Not only does this make your multi-million dollar app completely dependent on some guy in Florida, having a lot of dependencies slows your app down. It also requires a build process, that slows debugging and updating way down. But the most salient thing is that you don’t even need all of them!

So what do you do?

3 words: Strip the layers.

Write in vanilla Javascript. Make your own components. It might make some trouble, but that trouble is worth it. Good enough will only get you far enough.

Don’t rely on deprecated packages. Rely on yourself.

“If you really look closely, most overnight successes took a long time.” — Steve Jobs

Getting creative.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store