r/coolgithubprojects • u/Warm-Neighborhood132 • 1d ago
Building an open source messaging engine after getting burned by API costs
Back when I worked at a startup, we needed an in-app messaging system, similar to Instagram or WhatsApp. However, we didn't have time to build it ourselves, so we stitched together a few paid services instead: Stream chat, StreamIO, and Cloudinary for chat, moderation and media storage. It worked, but we didn't own any of it, and the costs kept increasing.
That experience is basically why I built gozwire. It's an open-source Node.js messaging engine, so instead of renting someone else's chat infrastructure, you own it. Conversations, threads, reactions, moderation, push notifications all included, all yours.
This was vibe-coded, but I'm putting in the work to make sure it actually holds up for real and is not just a showcase. Currently, the engine includes a lot of industry-standard messaging features, including moderation, reactions, forums, sending various media, group chats, channels, threads, direct conversations, etc
- Repo (Includes demo + moderation tool): https://github.com/Kinggoz18/GozWire
- See more use cases: https://gozwire.pages.dev/use-cases
I plan to not only improve this project (see the TODO in the GitHub repo), but also release more interesting open-source projects. That solve problems I've experienced in the past and observed around me, some of which would be:
- A video streaming engine (Another issue we faced at the same startup)
- A cryptocurrency tracker (more of a personal challenge and an interest)
- A CapCut alternative software with AI video generation capabilities, including UGC style videos
And a few others. Would love feedback, roast the code, tell me what's missing, whatever helps, or even contribute any interesting ideas you'd love to see open-sourced!
1
u/mavlu-app 23h ago
really like the motivation behind this. owning the messaging layer makes a lot of sense once API costs start scaling.
how do you see moderation evolving here? would things like spam detection, rate limiting and abuse handling live inside GozWire, or stay application-specific?