Main reason its written in js/ts is because the underlying p2p database system, Peerbit, is written in ts.
Also docker is not needed, for some reason people always assume it is even though docker is not mentioned in the install instructions.
Also, language is not really important. Functionality is primary, language is merely a tool to achieve the desired functionality. No reason to get hung up in a purity spiral and be a dilating /g/tranny about it.