Oddbean new post about | logout
 One thing I don't completely understand is why every Nostr event kind uses the exact same data structure.

JSON is very flexible, we could simply define additional fields to our hearts' content.  Instead, `content` always has to be a string, and the most flexibility we get is to define tags as arrays within arrays.

Array-based tags are stupid, IMO.  It's needlessly difficult to parse.  All you need is a few common top-level fields (pubkey, sig, kind), and the `kind` field tells the client what other *top-level fields to expect on this JSON blob.

For a JSON-lover's protocol, we're really underutilizing JSON.