Status

State: Draft

Discussion thread: 

JIRA: https://issues.apache.org/jira/browse/AIRFLOW-3788

Motivation

Open Source Software needs to build a community to ensure its healthy growth. One of the tools used to build a community is the web site dedicated to the product. The goal behind building an open source friendly website for Apache Airflow is to engage, inform, and educate visitors, and ultimately to convert visitors into users and users into contributors, thus increasing the adoption of the product.

Introduction

This document overviews the general requirements for Apache Airflow website. It includes a list of necessary functions, capabilities, and/or characteristics related to Apache Airflow website, as well as the plans for creating it.

Apache Airflow website, like the rest of the project, will be open source, and accept community contributions. It will make contributions easy and approachable, while enforcing a set of best practices for developing the website and its content.

Improvements will also include a contributor’s guide that easily introduces prospective contributors to the community, and the process for starting to contribute to the project. It will also clarify the different kinds of contribution areas, such as  code, community development, project vision, documentation, bug reports, feature requests and any other constructive contributions.

Knowledge Architecture

OSS projects’ websites typically include several standard pages, where each page is formatted with a navigation bar on the left.

Taking from best practices and based on other OSS websites -- Apache Beam, Apache LibCloud, and others. A preliminary knowledge architecture for the website is provided in the next section. We outline important pages that are must-haves for OSS websites. As we advance in our project development, we will iterate the list and include necessary components that may be missing.

Home Page

Apache Airflow’s Home Page is the primary entry point to the site that contains project description, news, invitation to join the project. The homepage is divided into three sections that users can navigate by scrolling it down. Each section goes into further detail about Apache Airflow’s features, usability, and contributions. The structure is presented below. (For a more detailed description of the website structure see the appendix).

Section 1

Section 2

Section 3

Footer

Other must-have pages:

Proposed organization of must-have pages in Top bar items:

Website Generation Tools

Several options are being considered as a tool for generating Apache Airflow website, such as Hugo, Jekyll, etc.

Regardless of which tool we use, the website should be maintained in the git repository, and include the site generation tool as a binary file. This simplifies the process of site generation and enables changes to the site to be made by any committer.

Since the site is independent of the code, it should exist high in the git repository, e.g. parallel to the trunk of the source tree.

Content generation

Content of the website will include both auto-generated Pydocs for Documentation page and static front-end pages for the rest of the website.

All content will be developed and added by contributors.

Server and Hosting

Needs to be open source friendly - source code on GitHub along with the codebase

Testing

A number of tests, and checks should be written to ensure that changes and contributions to the website are of high quality, and that its appearance will not break or be disrupted by new contributions.

Action Items

The following is a comprehensive list of high-level action items.

References

Appendix. Detailed structure

Homepage

Section 1


The same page MUST have links to:

Section 2

Section 3

Top bar items


Cover:

            Include:

Footer