Since, by definition, these projects aren't worked on full-time you need to know that any changes you do find time to apply are not going to kill your site/service.
I don't have 100% coverage, but I do have a lot of test-cases which cover areas that are "hard". Or in response to customer bug-reports to ensure I don't have any surprises.
(My service has a fair number of moving-parts, using a job-queue, service workers, a web-site, and integration with an external DNS provider, or two.)
Briefly:
* Humans can determine if your code does what it's supposed to.
* Automated tests can keep your code stable, i.e. make sure it doesn't change.
If you care about correctness you want manual testing and code review. If you care about stability you want automated testing like unit tests.
If you care about both correctness and stability you need both kinds of testing.
Personally I've mostly written libraries, where stability is very important, so yes, lots of unit tests.
Longer version: https://codewithoutrules.com/2017/03/26/why-how-test-softwar...
To be honest, I did not write unit tests for my previous side projects. I just think that my codes "it works". I realized that it makes me hard to find a bug on the code when given some test cases. Developing a program is not only just "it works" but also ensure the program can handle the test cases.
I know its very anti-TDD to write tests from a reactionary perspective, but I find this is a good way to gradually get test coverage where it is needed while still being able to prototype the parts of the side project that are interesting.
I have integrated testsuit for core framework components, which can be run separately, i tend to have separate tests for more upper level stuff, and i rarely have unit tests for actual programs.
It tends to be a drag that is very easy to half-ass, so i try not to waste it.
One of my side projects is also a test framework, so that has tests of itself using itself, in hindsight this was a poor decision.