Hacker News new | ask | show | jobs
by hereisdx 2161 days ago
Apart from a user, I am also a contributor to the Zulip project, for the last ~7 months.

The community is very helpful and for getting started with open source development, I can't recommend a better place. You get really high quality code reviews, get to participate in meaningful discussions on features and the development goals of the project, and developers constantly share lots of knowledge in streams like #learning about software development, tech, git, best practices and so on.

Also, the documentation is very detailed and the codebase is very high quality. It's really easy to get started.

You can find the github org here: https://github.com/zulip

3 comments

Thanks for the kind words!

One of our goals as a project is to have a "teaching-quality" codebase, so this is no surprise. I think this is incredibly important and something every community open source project should strive for.

An analogy I like to use is to think about the experience of contributing to your open source project as a product, so you should:

* Do usability studies where you help a group of people try to get started with your product (I used to do this all the time at events like Python conference sprints pre-pandemic). The first few we did were eye-opening as nobody got anywhere without a lot of handholding, and I suspect that's common.

* Make the development environment tooling Just Work and have a good support experience.

* Write good documentation that thoughtfully explains the ideas one needs to understand to participate on your project. My strategy for this was to avoid explaining how things work to a contributor, and instead meet the need by spending a couple hours writing something like https://zulip.readthedocs.io/en/latest/subsystems/sending-me... and send it to them. That way, even if that contributor bounces (as the vast majority of new people who show up to any volunteer organization do), I still used my time well.

I'm planning a series of blog posts on building a successful open source community, since we've spent a lot of time thinking about how to make contributing to Zulip a great experience, and some ideas are subtle (E.g. the secret to being able to give high quality code reviews is equipping new contributors with the tooling and documentation to help them avoid problems before a reviewer even looks at it!), and I regret not having spent more time sharing that thinking.

Thanks for you comment with interesting points. It’s quite different from the perspective of “scratching an itch” open source code. I look forward to your posts on nurturing open source communities.
As a fellow Zulip user and minor contributor, I wholeheartedly agree.

In addition to coordinating development teams on three continents, we also use Zulip as an integration hub. git commits go in the #commits channel, jenkins build status to #builds, and run-time errors to #errors.

We use errbit (API-compatible Airbrake clone) for error reporting and Zulip didn't have an errbit integration.

So I wrote one, and they integrated it within a few days. The Zulip team was super-responsive and easy to work with. It certainly helped that they had excellent docs on how to write integrations, and tons of examples.

Go Zulip!

> The community is very helpful and for getting started with open source development

That probably explains the healthy number of active developers for this project:

https://imgur.com/XwhDHVZ

Based on my simple analytics that looks at the time between a contributors first and last commit, I'm getting 50 active contributors, which matches up with many of the other popular open source projects I've indexed.

Also, that's just the server project. There are also clients like the mobile app and the terminal app, which have a whole new set of active contributors.