Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE REQUEST] some advice about this project #2340

Open
newcworld opened this issue Jun 11, 2024 · 3 comments
Open

[FEATURE REQUEST] some advice about this project #2340

newcworld opened this issue Jun 11, 2024 · 3 comments
Labels
good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. planning

Comments

@newcworld
Copy link

newcworld commented Jun 11, 2024

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
Copy link
Contributor

kubbot commented Jun 11, 2024

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

  • There is no community. In terms of code, almost only the devs contribute code. As for users, no one cares about the slack link that has been hanging for so long.
  • Documentation is missing and confusing. There are no basic product documents, let alone documents for project detailed design interpretation. At the same time, there are many errors in the existing documents.
  • The service is confusing. The oimws service does not even have an official docker image. The container is hosted on github, dockerhub, and Alibaba Cloud.
  • The energy is scattered. When the basic experience is not perfect, the team also wants to make conferencing software, audio and video integration and other non-core functions, which is a waste of energy.

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

  • Complete product documentation, roadmap, changelog
  • Improve product design documents so that other people who want to contribute code can understand the project and design faster

Community

  • Use github discussion to discuss with the community
  • Prepare a small amount of promotional materials, such as water cup stickers, etc., hold some code contribution activities, and distribute these materials for code contributions to give open source contributors a sense of accomplishment.

cloud

  • Provides managed SaaS services and is expected to make money mainly from cloud service hosting and privatized deployment

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
Copy link
Member

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.

@skiffer-git skiffer-git added good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. planning labels Nov 21, 2024
@OpenIM-Robot
Copy link

This issue is available for anyone to work on. Make sure to reference this issue in your pull request. ✨ Thank you for your contribution! ✨
Join slack 🤖 to connect and communicate with our developers.
If you wish to accept this assignment, please leave a comment in the comments section: /accept.🎯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. planning
Projects
None yet
Development

No branches or pull requests

5 participants
@newcworld @skiffer-git @kubbot @OpenIM-Robot and others