To set the stage, my technical experience has mainly been in backend development and my recent roles have been focused on software department leadership and management. That has created an itch to get more hands-on. I'm excited to dive back into hands-on coding and explore the latest trends in web development.
I am starting with setting up a dev environment for web development coding.
Choosing the Tech Stack When setting up my development environment, I had specific requirements in mind:
It should be easy to get started, but not rely on drag-and-drop tools like WordPress. I wanted to work with code.
It should be free to use and run.
It should leverage modern web development tools such as React, Typescript, and GraphQL.
I preferred a Linux-based development environment.
Deployment automation already wired up would be a bonus.
After careful consideration, I decided to use Gatsby as the primary technology framework for building my site. Gatsby is a static site generator that utilizes React and GraphQL, running on Node.js. It's fast, user-friendly, and free. Moreover, Gatsby is a popular tool with excellent support and a large community.
Despite my experience with web basics like HTML/CSS, Markdown/MDX, and Javascript/Typescript being limited, as well as my unfamiliarity with React, GraphQL, and Gatsby, I'm eager to learn and embrace these technologies. While I've encountered Node.js in web apps developed by teams I've led, this is my first time personally working hands-on with it. So, I'm taking on the challenge of learning many new things simultaneously.
Initially, I opted to use AWS Cloud9, running on Linux, as my development environment for deploying all the required tools. Cloud9 is a cloud-based IDE powered by AWS EC2. It provides a convenient way to engage in Linux-based web development without the need for local machine installations. However, after a day of attempts, I hit a roadblock. Gatsby requires Node version 18 or higher, but the available Amazon Linux or Ubuntu AMIs on Cloud9 were incompatible due to Node 18 requiring a glibc upgrade. Faced with this hurdle, I decided not to pursue this path as I didn't want to deal with OS upgrades or search for a compatible AMI.
Instead, I chose to use my Mac Mini M1 as my development environment. It closely resembles a Linux development environment, which aligns with my learning goals. I installed all the necessary tools—Git, Node, and Gatsby—and opted to work with VS Code as my IDE. To manage my code, I'm utilizing the GitHub integration in VS Code, allowing me to push my code directly to GitHub. Additionally, I signed up for a 30-day trial of GitHub Copilot, an AI tool that assists in code writing. I've already witnessed its benefits in helping me write code, comments, and even this blog post!
This blog post was written with the assistance of ChatGPT and GitHub CoPilot.