Every post, reaction, follow, profile update, zap, and direct message on Nostr is the same shape of object: an event. It has a public key, a created_at timestamp, a kind number saying what the event represents, a content string, zero or more tags, and a signature.
The kind is what gives events their meaning. Kind 1 is a short note. Kind 7 is a reaction. Kind 0 is a profile metadata update. Kind 30023 is a long-form article. There are dozens more. A client decides what to render based on the kind.