EDIT: Oh, I was late...
Also is the above method better than using nodemon?
It's not really doing the same thing as nodemon - the latter is mainly for watching file changes and restarting the application in that case. However, it's not tied to system init in any way, if the system restarts (eg. due to a power outage) it just dies in the process and you need to start it manually afterwards.
Systemd is a software suite which includes the init system and service management, and it's used by majority of modern Linux distributions. The file here is a service unit definition for systemd, and since the same suite handles the init as well you can trivially configure the system to start your service on boot (this is what the systemctl enable command does)
Systemd also has facilities for doing a lot of other things like timers, watching file paths, etc. but they're not as commonly used as services, so a common configuration might be to use a systemd service to run something like nodemon or PM2 instead of using the harder to configure built-in tools.
On my server I just have the account I log in with. should I make another user?
Nothing is stopping you from using the same user, there are some security advantages to separating services but it's not unique to running as a systemd service so it won't decrease your security compared to your current setup.
Like why does this file need a link to the docs?
It doesn't - it really is just for the sysadmin (in this instance you) to see a link when they're looking at the service and eg. want to debug something. If you feel you don't need it just leave it out - for units I write for myself I usually wouldn't add it, mostly since there wouldn't really be much relevant documentation - but since someone was already writing a pre-made unit file, why not include something nice that might be very occasionally helpful at a cost of just around 40 bytes of disk space being taken?