2. Tools around development
There are some differences between operation system (Windows, MacOS, or base on Linux), but my approach is to make my environment for development similar across operation systems.
Let's start with system form Microsoft. Linux and MacOS are UNIX-like systems and what we want on Windows is to have UNIX-like space. For years was develop many solution to solve this problem (like Cyngwin), but finally Microsoft create own solution WSL (Windows Subsystem of Linux). And this solution create Linux-base space so we can now use tools created for Unix-like systems.
Also Microsoft create Windows Terminal (now included in newest releases of Windows 11, if you don't have you can install form GitHub, also in Windows 10).
If you wanna stay on Windows, you should remember to enable in
Privacy & security =>
For developers =>
Developer mode. Some tools can relay on that like
pnpm with symlinks, that are disable in normal mode for not admin terminal.
MacOS is a UNIX-like system so there will be only one change to solve on minor problem. When you try to change name file
Name.tsx this change will be ignored and not committed. So your code will be work only in MacOS, but for example on CI (that base on Linux), your code will be crash.
git config core.ignorecase false
The terminal app that I use is iTerm2. Included in MacOS terminal have problem with proper render of Nerd Fonts and this was the one reason that I switch to something else.
This our target, to make our development environment similar to. Nowadays I didn't use desktop distribution of Linux, but Linux is everywhere: WSL, CI, VPS. So I know a lot but without knowledge about GUI. I am aware of GNOME and KDE, but I don't have a lot of experience using them.
It's up to you there is a lot of tool in this area, you can find what you need, but what I use is zsh with oh-my-zsh as a shell, with starship as a prompt, and of course Nerd Fonts need to be installed.
And that's all, if I have open project in VS Code, i mostly used builtin terminal.
Git - Version control
If you don't know about this kind of tools it's time to catch up. You probably want have possibility: to create snapshots of your work, to time travel to older version in your project, to backup your project to server. For these things you can use
git, and you can read more in Getting Started - What is Git?
VS Code - Code editor
It's just working and have a lot of possibility of customization and expansion with large amount of extensions. It is very popular, so a lot of problems with this editor you can find solved on Stack Overflow.