How People Can Specifically Help Crystal

As I use Crystal more, and watch its development, it’s becomes clearer how much about Crystal I don’t know. I would like to become more knowledgeable about the many areas of the language, and its development, but don’t know how to do it. Thus, I’m seeking direction on how to proceed to gain this knowledge, and help the project in specific ways.

  1. One thing I would like to able to do is understand git better, so I can follow PRs and commits. What it the best/better way to do this specifically for Crystal. I already follow the github repos issues and PRs, but would like a deeper understanding of all its ecosystem.

  2. I am not a C programmer, and have no deep understanding of LLVM and compilers, but I would like to learn how to know more about these areas. How would one start to develop this knowledge in a way that would specifically best help Crystal?

  3. I would like to be able to do some of the non-technical stuff Crystal needs help with, like correcting typos and grammatical errors in the docs, and other such things. It would be nice to have a list of PRs, or areas of the docs people can help with that you know need improving, and other such non-technical things.

  4. It would be nice to have some structured way people can offer and provide their skills to the project that aren’t necessarily technical, but still necessary in the Big Picture. Things like helping to make the website better, marketing, fundraising, structuring/writing better docs, tutorials, videos, etc, etc.

After watching the first Raw Crystal event last week (Friday, December 11, 2020) I came away wanting to understand more about what the presenters were talking about on a higher level. This is part of the motivation behind my thinking.

I suspect others are probably having similar thoughts, and hope people will contribute them here so we can share our ideas on how to contribute more to Crystal in ways we are able to.

  1. There’s really nothing specific with using git for Crystal development. It’s just plain git. I think good resources on learning are available on
  2. I am neither of those, too. Just have a solid basic understaning. So C and LLVM isn’t really necessary for working on Crystal. Unless you want to work on C bindings or codegen in the compiler. If you still want to know more about this, maybe a good idea would be writing bindings for a simple C library. You don’t need to write C code for that, only read it and think about how to map it to Crystal. That way you could also put the input from that Conference talk to some use.
  3. There are lots of open issues on rystal-website and crystal-book repos with requests for several non-technical improvements. On the main repo there’s a kind:docs label. So that might serve as a starting point. Another option is to just browse the website, reference, API docs. It helps you to learn more about Crystal, and you will likely find things that you a) don’t understand and can ask for clarification or b) notice could be made better - a chance for a contribution.
  4. The best way to offer and talk about helping is probably by opening issues on the respective repositories or starting a discussion here in the forum. So feel free whatever fits best.