It’s a protocol so think of it like a set of rules and standards that you can pick and choose which parts you interact with and everyone running the same client can interact with what’s available to transmit notes and other stuff via relays.
Discussion
I’m not a developer but this is kind of how I understand it. You can program (build) different apps and things on the protocol to accomplish various things, gives a lot of flexibility and opportunity for the developers to make crazy stuff that’s still coming up with funky ass shit like, every single day.