What is GozWire?
GozWire is an open-source Node.js messaging engine. Applications call @gozwire/core to persist conversations, messages, receipts, attachments, threads, reactions, and optional push. It is not a consumer chat app and it is not a hosted chat vendor.
What npm package do I install?
The engine is @gozwire/core. That is the only package required to use the engine. The Express and Svelte demo and the Python moderation sidecar live in the repository as applications, not as engine dependencies.
Is PostgreSQL required?
Yes. PostgreSQL is the durable source of truth. A successful messages.send is a committed PostgreSQL transaction. Centrifugo, sockets, and push-provider HTTP acceptance are not the definition of success.
Can I build Slack-style channels or Reddit-style forums?
Yes, as conversation types. createChannel and createForum use membership and the same message model. Channel directories, upvotes, ranking, and discovery stay in your application.
Does GozWire include user accounts?
No. Identities are referenced users, not a full account system. Signup, SSO, and sessions are host-application concerns. The local demo simulates identity with an x-user-id header.
Is push on by default?
No. push.enabled defaults to false. Direct adapters cover Web Push with VAPID, FCM HTTP v1, and APNs HTTP/2. Provider 2xx means the provider accepted the request, not that a device displayed a notification.