I don't agree Nostr is P2P since clients must connect to relays and there's no provision at the time for client to client connectivity.
I found out about Nostr and due to the simplicity of the protocol I was able to start building right away.
I implemented a relay using Typescript:
https://github.com/Cameri/nostr-ts-relay
I also wrote this dead simple SMTP to Nostr gateway: https://github.com/Cameri/smtp-nostr-gateway