I have found MY perfect React dosage
October 8th, 2024 will mark exactly 4 years since I penned my thoughts on learning React.
Throughout this time, React has continued its ascent, cementing its position as the go-to technology for declarative user interface development on the web.
With this ascent however, there has not been any shortage with the complexities in building full-stack or even client-only apps in the React ecosystem.
From state management challenges to the various methods of data fetching—now recognized as a distinct issue—along with the new trend of React Server Components and outsourcing authentication and authorization to third-party SaaS, the list of complexities keeps piling up.
Yet, even with these intricacies, I can’t overlook the elegance and user-friendliness of JSX that React popularized - though I had to learn to tolerate the className
mishap.
Not only is it beautiful, but it’s also portable, as the API presents itself as familiar JavaScript functions—and I love JavaScript functions.
Additionally, React’s approach to conditional rendering, iterations, and event handling increasingly resembles JavaScript.
All of these pique my interest, but whenever I encounter a state management solution or consider the full-stack story with something like Next or Remix, my interest fades.
React is not the problem
I got to ponder more on my newly found love/hate relationship with React when I had to work on Mellow React - The full-stack starter template for The Boring JavaScript Stack.
Then I had an epiphany: React was never the problem. It was never too complex; the complexity came from the other technologies or concepts added to React to make it do full-stack or build Single Page Applications.
Using React in The Boring JavaScript Stack was ideal for me. It focuses on vanilla React without complex state management or client-side routing, avoiding the extra layers added by the Merchants of Complexity that make React challenging.
It’s hard to sell simple, because simple looks easy, and who wants to pay for that? Of course, everyone says they want something simple, but the way they buy reveals that they usually don’t. - DHH from The Merchants of complexity
My perfect React dosage
My perfect React dosage is using React as a declarative language for authoring UIs - vanilla React.
Removing all the bells and whistles of “modern” web development complexities and pairing React with Inertia.js - the tiny routing library that makes The Boring Stack possible - truly makes React shine for me, and I love it.
That’s my limit; anything more feels like an overdose. From what I’ve seen online, it’s excessive for most people. Why don’t we all adjust our React usage to a comfortable level, as I have?
I plan to test out this React dose of mine by building more full-stack JavaScript applications using React. In fact, I plan to build 25 full-stack JavaScript products with React under the umbrella of my course: Build 50 Products in 50 Days.
That should be exactly 25 reasons why vanilla React is fun to author UI in, and I can’t wait to share my findings after that as well. Stay tuned!
Levelling up on my React
With this React dosage of mine, it means the surface area of concepts and techniques I have to learn to master React has been greatly reduced to its essence.
Because of that, I’ll be taking Kent C. Dodds’ Epic React v2 course as I want to write the best React possible for the Build 50 Products in 50 Days course and also improve the free starter templates for The Boring JavaScript Stack.
Here is to finding your perfect dosage for the tools you use!