openimsdk / open-im-server

IM Chat
https://openim.io
Apache License 2.0
13.35k stars 2.35k forks source link

[FEATURE REQUEST] some advice about this project #2340

Open newcworld opened 3 weeks ago

newcworld commented 3 weeks ago

I spent the weekend reviewing this project and would like to offer some suggestions.

In the IM (Instant Messaging) field, top-tier open-source projects are scarce, which has always been a pain point. OpenIM is currently a leading project in the IM domain.

Existing issues with OpenIM include:

Lack of Community: Virtually only the developers themselves contribute to the code. As for the users, the Slack link has been broken for so long and no one has addressed it. Poor Documentation: Basic product documentation is missing, let alone detailed project design and interpretation documents. Moreover, many errors exist in the existing documentation. Service Chaos: The oimws service doesn’t even have an official Docker image. The containers are hosted on GitHub, DockerHub, and Alibaba Cloud inconsistently. Diluted Focus: Despite the basic experience still being imperfect, the team is trying to develop non-core features like conference software and audio-video integration, which is a waste of energy. Profitability Concerns: Although the team has provided such an open-source project, they can only profit from individual IM outsourcing deals. The poor user experience in the open-source community also means the team isn't making much money. Suggested Solution A typical open-source project should be operated as follows:

Documentation:

Complete and thorough product documentation, roadmap, changelog. Improve design documentation to help others who want to contribute code to understand the project and its design faster. Community:

Use GitHub Discussions and other community forums for discussions. Prepare some promotional materials, such as cups and stickers, and host code contribution events where such items are distributed, giving a sense of achievement to open-source contributors. Cloud:

Offer hosted SaaS services, mainly profiting from cloud hosting and private deployments. Code:

Standardize the codebase, officially maintain Helm charts, Docker images. Integrate universal observability tools like OpenTelemetry, abandoning the current custom operationID system. Organize project structure, open-source the admin backend, and ensure everything that needs to be open-sourced is available, avoiding a mix of open and closed sources. Open-source projects should put the community first, and developers need to learn how to manage a community rather than just contributing code.

Project developers might look at how open-source projects like Meilisearch, LangFuse, and TiDB are operated.

Contributing to TiDB could provide insight into what a community is like and how an open-source community should be managed.

Currently, the leading IM SaaS in the industry, GetStream.io, offers a fairly average user experience. I look forward to OpenIM surpassing it.

kubbot commented 3 weeks ago

Bot detected the issue body's language is not English, translate it automatically. πŸ‘―πŸ‘­πŸ»πŸ§‘β€πŸ€β€πŸ§‘πŸ‘«πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸ»πŸ‘©πŸΎβ€πŸ€β€πŸ‘¨πŸΏπŸ‘¬πŸΏ


Why this feature?

I spent the weekend looking at this project and would like to make some suggestions.

There are very few top-level open source projects in the IM field, which has always been a pain point. OpenIM is currently a top-notch project in the IM field.

Current problems with openim include

Judging from the current projects, although the team provides such open source projects, the income can only be earned by doing IM outsourcing alone. The user experience of the open source community is poor, and the team cannot make much money.

Suggested Solution

How a typical open source project should be run

document

Community

cloud

Open source projects come first in the community. In fact, devs need to learn how to run a community rather than contributing code.

It is recommended that project devs take a look at the operation methods of open source projects such as meilisearch, langfuse, and tidb.

You can contribute code to tidb and get a feel for what a community is and how an open source community should operate.

Currently, the leading im saas in the industry is https://getstream.io/. In fact, the user experience is very average. I hope openim can surpass it.

Additional Information

No response

skiffer-git commented 3 weeks ago

Thank you for your suggestion. We are also aware of this issue and will make significant improvements in the upcoming new version, with a particular focus on optimizing the core systems of messaging and channels. Other business systems will be gradually decoupled.

We will also spend a considerable amount of time addressing the existing bugs in the system to meet developers' needs for launching their applications.