How to Contribute

👋 We're so excited you're interested in helping with Blitz! We happy to help you get started, even if you don't have any previous open-source experience :)

Blitz is a Community Project 🤝

Blitz is built by and for the community. There's no large company sponsoring development. So all community contributions are very appreciated!

Our Codebase is a Garden

The Blitz codebase is like a community garden. There's a lot of beautiful plants and vegetables, but it won't take long until you find some weeds! When you find weeds, please remove them :) Minor refactoring is always encouraged. If you'd like to do some major refactoring, it's best to first either open an issue or check with us in Slack. Most likely we'll agree with you.

First Things First

  1. New to open source? take a look at How to Contribute to an Open Source Project on GitHub
  2. Familiarize yourself with the Blitz Code of Conduct
  3. Join the Blitz Slack Community

Video Overview of Our Codebase

Watch this video for a walkthrough the entire Blitz codebase. This is a great way to get an overview of the various parts and how they fit together!

Weekly Contributors video call

Every week Blitz contributors meet in a video call to discuss progress and ideas.

The contributor video call is mainly for those contributing or want to start contributing. However anyone is welcome to join and listen!

The timezone

We are literally all over the globe, so the weekly contributors call alternates timezones every other week to accommodate different regions

  • Even weeks of the year: Tuesday at 1am UTC (Note: this is Monday evening in the USA)
  • ~Odd weeks of the year: Wednesday at 9am UTC~ (Temporarily canceled)
  • Use this link to see the current week of the year

How to join

Zoom link will be posted in slack

#-announcements channel before the call

Recording

Recordings of previous calls can be found

here

What to Work On?

Issues with the label

status/ready-to-work-on are the best place to start. If you find one that looks interesting and no one else is already working on it, comment in the issue that you are going to work on it. Please ask as many questions as you need, either directly in the issue or in Slack. We're happy to help!

The Blitzjs.com website and documentation repo also has issues with

ready to work on | help wanted.

Things that are ALWAYS welcome

  • Adding tests
  • Improved documentation
  • Improved error messages
  • Improved logging (i.e. more clear, more beautiful)
  • Performance or security improvements
  • Educational content like blogs, videos, courses

If there's some other way you'd like to contribute, ask us about it in slack!

After you contribute in any way, please add yourself as a contributor via the

@all-contributors bot!

Development Setup

1. Fork this repo

2. Clone your fork repo

# If you didn't fork the repo use blitz-js as the USERNAME
git clone git@github.com:USERNAME/blitz.git
cd blitz

3. Install dependencies

yarn

4. Start the package server. This must be running for any package development or example development

yarn dev

5. Run tests

yarn test

Sync your fork

git remote add upstream git@github.com:blitz-js/blitz.git
./scripts/fetchRemote.sh
git merge upstream/canary

The following will link the development CLI as a local binary so you can use it anywhere for testing.

yarn link-cli
// `yarn unlink-cli` will unlink

Develop a Blitz package

1. Change to a package directory

cd packages/core

2. Start the test runner

yarn test:watch

Develop a Blitz example

1. Change to an example directory

cd examples/store

2. Follow instructions in the example's README

Troubleshooting

If you run into issues that should be documented here, please submit a PR! ❤️

Windows Subsystem for Linux

node-pty error when running yarn. Fix by installing node-pty dependencies

sudo apt install -y make python build-essential
Idea for improving this page?Edit it on Github