Start Contributing
In this workshop, we'll start with documentation or translation contributions. These are the easiest and most beginner-friendly ways to get involved.
You don't need to understand Airflow internals - just improve clarity or language support.
Starting Airflow with Breeze
In this section, we start Apache Airflow locally using Breeze, the development CLI that provides a ready-to-use Docker-based environment.
Run the following command to start Airflow:
Note: To customize how the Breeze environment starts (for example, using a different executor), check the available options with --help or -h.
The startup process may take a moment. Once Airflow is ready, your terminal should look like this:

You can then access the web interface at http://localhost:28080/.
You should see the sign-in page like this:

The default username is admin and the password is admin.
After signing in, you should see the home page like this:

You're now ready to start using and contributing to Apache Airflow!
How to Add Stuff in Breeze
- Your dags for webserver and scheduler are read from
/files/dagsdirectory which is mounted from folder in Airflow sources:[YOUR_OWN_WORKING_DIRECTORY]/airflow/files/dags
- Your plugins are read from
/files/pluginsdirectory which is mounted from folder in Airflow sources:[YOUR_OWN_WORKING_DIRECTORY]/airflow/files/plugins
- You can add
airflow-breeze-configdirectory. Place it in[YOUR_OWN_WORKING_DIRECTORY]/airflow/files/airflow-breeze-configand:- Add
environment_variables.env- to make breeze source the variables automatically for you - Add
.tmux.conf- to add extra initial configuration totmux - Add
init.sh- this file will be sourced when you enter container, so you can add any custom code there. - Add
requirements.txt- to specify additional Python packages that should be installed in the Breeze development environment.
- Add
- You can also share other files, put them under
[YOUR_OWN_WORKING_DIRECTORY]/airflow/filesfolder and they will be visible in/files/folder inside the container.
Note: [YOUR_OWN_WORKING_DIRECTORY] refers to the local directory containing your forked Apache Airflow repository.
Ports Forwarded and Direct Links
The table below shows the ports forwarded to the running Docker containers for the webserver and database, along with direct links you can use from the host.
| Local Port | Forwarded To | Container Destination | Link |
|---|---|---|---|
| 12322 | Airflow SSH Server | airflow:22 |
ssh -p 12322 airflow@localhost (password: airflow) |
| 28080 | Airflow API Server (Airflow 3) or Webserver (Airflow 2) | airflow:8080 |
http://localhost:28080 (username: admin, password: admin) |
| 25555 | Flower Dashboard | airflow:5555 |
http://localhost:25555 |
| 25433 | PostgreSQL Database | postgres:5432 |
jdbc:postgresql://localhost:25433/airflow?user=postgres&password=airflow |
| 23306 | MySQL Database | mysql:3306 |
jdbc:mysql://localhost:23306/airflow?user=root |
| 26379 | Redis | redis:6379 |
redis://localhost:26379/0 |
Contributing to Documentation
Edit a documentation file, e.g., airflow-ctl/docs/index.rst.
Make a small improvement:
- Fix a typo
- Improve a sentence
- Clarify wording
- Update formatting
Keep the change small and focused.
Before building, check the available documentation package names:
Then build the documentation for the specific package you want, for example:
Preview the documentation locally by running the following command for a lighter resource option:
Then open:
- http://localhost:8000
- Documentation list http://localhost:8000/docs/
Verify your change appears correctly.
Example Issue You Can Contribute To
There is a small typo on the Airbyte connection page (as of Mar 10, 2026) that needs to be fixed. See the screenshot below.

You can search for the text on the page using grep in your terminal.

Alternatively, you can search for it in VS Code.

Contributing to Translation (UI i18n)
Improving UI translations is another easy way to start contributing.
Let's start by reading the internationalization (i18n) policy, which explains how translations are organized and structured.
To check translation completeness:
To check a specific language (e.g., Thai):
The output of the command above should look like this:

You then can:
- Improve existing translations
- Add missing translations
- Correct unclear wording
Enjoy translating!
Contributing to Airflow Core
A great way to start is by reviewing existing pull requests to see how changes are proposed, reviewed, and merged.
This will help you understand the coding style, review process, and expectations for contributors.
Contributing to the core can be more involved than documentation or translation, but it's also a rewarding way to learn, grow your skills, and make a meaningful impact. Take your time and enjoy the process!