How I built a modern website in 2022 (over-engineered?)

I have arguably over-engineered what could be perceived to be a simple blog and there will be question marks over why I didn’t just use a simple traditional blogging platform like WordPress or simpler still if you’re planning on doing very little writing why build one at all.

Technology overview

Here are the technologies I’ve chosen to use in this build:

  • React: For the UI
  • NextJS: Framework for SSR/SSG React applications
  • TypeScript: Typed JavaScript
  • Cypress: End-to-End testing framework
  • GraphQL: Query language to interface with API’s
  • Jest: Unit/Component testing framework
  • Material UI: UI component library (Originally)
  • Tailwind CSS: Utility classes for consistent/maintainable styling

Here are the services this site uses:

  • AWS: Super hosting platform
    • ECS: Elastic Container Service
    • ECR: Elastic Container Registry
  • Github: Version control

For those wondering; I’m looking to replace MUI with Tailwind for no other reason than I prefer building with Tailwind. Like most projects I start this out with all good intentions of maintaining but what I’ve come to appreciate over the years is that I’m not a writer, this is purely a place for me to experiment, jot notes and any other useful material I gather over the years. Material UI was just something I wanted to configure/play around with in a little more depth.