Workflow: Build and run my apps on your machine

Hey! Thanks for posting these videos, they are very interesting to see how you work :). I have a couple of comments/questions.

About installing Node, one problem I’ve found working with different projects is that not all of them work in the same version of Node. I usually solve this using nvm — Node Version Manager. It allows you to have multiple versions of Node in the same machine. You can also add a .nvmrc file in your repo an then people only need to run nvm use in order to have the same Node version as you. For people who is not using nvm, you can also use engines.node in package.json.

I am surprised looking at your package.json, it looks very different from most projects I’ve come across. In particular, how come you’re not indicating any specific versions for your dependencies? The package-lock.json you mention is actually quite useful, because it stores the exact versions of the dependencies you’re using. Without doing this, if one of your dependencies publishes a new version it could break your code. And maybe you notice now, but imagine that you don’t touch an app’s code base for 5 years, then it’ll be almost impossible to make it work.

You mention that you do a lot of testing, but I don’t see any Continuous Integration (like Github Actions). That means that you rely on running tests in your machine before pushing new code? I think it’s a good idea to use CI, not only because it tells you if something is broken in case you forget to run the tests, it also makes sure that your code actually works in an isolated environment. It would be possible that your tests are passing locally, but you rely in some global dependency that you weren’t aware of. I still have to watch your video on testing, sorry if that’s already answered there :).