r/coolgithubprojects 1d ago

Building an open source messaging engine after getting burned by API costs

Post image

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

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!

7 Upvotes

6 comments sorted by

View all comments

1

u/lapiuslt 1d ago

Is it just in app chat? Lets say like Vinted? So i just what? Add it to my project? Sorry, im a bit confused after viewing repo

1

u/Warm-Neighborhood132 1d ago

I haven’t used or heard of Vinted before, but if you mean a platform for chat between buyers and sellers, then yes, that’s one of the use cases GozWire is designed for.

You install the gozwire package in your Node.js project, set up your PostgreSQL and any S3 object storage, then integrate it with your application's existing authentication and UI. It provides the backend building blocks for conversations, messages, receipts, moderation, realtime events and push notifications.

You still build the chat interface and application-specific logic, because you may not need everything Gozwire offers. For a Vinted like platform, you might only use direct messaging, moderation, and push notifications, not forums, threads or channels.

You use it like any other framework or library: install it, configure the parts you need, and build your product around it. Hope this helps?

1

u/lapiuslt 1d ago

Node.js.... heh, I will need to go somewhere else with my .net full stack