Learning React
Learning React

For the last few years, my day job has consisted of maintaining a web app that consists of an Angular 2+ frontend and an ASP.NET Core web API backend. This app was started in 2019. At that time I was (and still am) a fan of .Net/C# so using that for the back-end was a pretty easy choice. Did I mention I "grew up" programming in strongly typed languages like C/C++/C#? Yeah, I like strongly typed! Angular was chosen for the frontend because that was pretty popular at the time. React was on the rise, but it hadn't gained any traction within our consultancy at the time. And it uses TypeScript. I like strongly typed! So, Angular with Angular Material is what was used. For the most part, it works. However, the upgrades are starting to have more breaking changes than not. And then there's Angular Material... You'd think that a Material UI package from the creators of Material Design would work a little better than it does. I get by, but it's not a great experience all the time.

Fast-forward a few years and a side project came along where I needed to make a companion web app for a previous employer. This time I didn't get to pick the tech stack though. Their current apps were all written in ASP.NET MVC. Some were .Net Framework, some were .Net Core. I had done some work with MVC in the past, but boy, I had forgotten how much I didn't miss ol' server side rendering. It works, but it's not really my cup of tea.

Fast-forward a bit more to just a few months ago. I'm presented with another side opportunity to create a web app. Some of the details are up in the air, but it will have an admin portal, an API and a mobile component. Whether the mobile component winds up being a response web app/PWA or a native mobile has yet to be determined. But the admin portal and API frameworks are totally up to me to pick.

I did a quick straw poll of my nerd friends on what their preferred front-end technology was. React/NextJS was the clear winner(s). Since NextJS is "built on" React, it seemed like a good idea to start there. So, for the last few weeks, an hour or so here, a few minutes there, I've been piecing together a sample app from various tutorials around the net. A couple things have become pretty clear.

  1. React is pretty cool!
  2. There is a severe lack of "real world" examples on how to implement things with a React site.

Item 2 really isn't a new revelation. This has been the case since there has been examples. But there seems to be a shocking amount of "tutorials" showing you how to use useState!

So this is what I want to do. I want to chronicle my journey of working with React. From creating the app, to adding components, pages and styling. I even need to add authentication.

Here's my proposed list:

  1. Create the base app
  2. Deploy with CI/CD
  3. Add a CSS Framework
  4. Add Components
  5. Add Routing
  6. Add Pages
  7. Add Authentication
  8. Add tests. Yeah, this one shocked me too.

That's my plan! Look for the first installment soon!