⚑ NEW: Block editor/contributors/folder structure - Complete Album!

Folder Structure

The following snippet explains how the Gutenberg repository is structured omitting irrelevant or obvious items with further explanations:

β”‚
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ SECURITY.md
β”œβ”€β”€ CONTRIBUTING.md
β”‚
β”œβ”€β”€ .editorconfig
β”œβ”€β”€ .eslintignore
β”œβ”€β”€ .eslintrc
β”œβ”€β”€ .jshintignore
β”œβ”€β”€ .eslintignore
β”œβ”€β”€ .prettierrc.js
β”œβ”€β”€ .stylelintignore
β”œβ”€β”€ .stylelintrc.js
β”œβ”€β”€ .markdownlintignore
β”œβ”€β”€ .npmpackagejsonlintrc.json
β”œβ”€β”€ phpcs.xml.dist
β”‚   Dot files and config files used to configure the various linting tools
β”‚   used in the repository (PHP, JS, styles...).
β”‚
β”œβ”€β”€ .browserslistrc
β”œβ”€β”€ babel.config.js
β”œβ”€β”€ jsconfig.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ tsconfig.base.json
β”œβ”€β”€ webpack.config.js
β”‚   Transpilation and bundling Config files.
β”‚
β”œβ”€β”€ .wp-env.json
β”‚   Config file for the development and testing environment.
β”‚   Includes WordPress and the Gutenberg plugin.
β”‚
β”œβ”€β”€ composer.lock
β”œβ”€β”€ composer.json
β”‚   Handling of PHP dependencies. Essentially used for development tools.
β”‚   The production code don't use external PHP dependencies.
β”‚
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
β”‚   Handling of JavaScript dependencies. Both for development tools and
β”‚   production dependencies.
β”‚   The package.json also serves to define common tasks and scripts
|   used for day to day development.
β”‚
β”œβ”€β”€ changelog.txt
β”œβ”€β”€ readme.txt
β”‚   Readme and Changelog of the Gutenberg plugin hosted on the WordPress
β”‚   plugin repository.
β”‚
β”œβ”€β”€ gutenberg.php
β”‚   Entry point of the Gutenberg plugin.
β”‚
β”œβ”€β”€ post-content.php
β”‚   Demo post content used on the Gutenberg plugin to showcase the editor.
β”‚
β”œβ”€β”€ .github/*
β”‚   Config of the different GitHub features (issues and PR templates, CI, owners).
β”‚
β”œβ”€β”€ bin/api-docs
β”‚   Tool/script used to generate the API Docs.
β”‚
β”œβ”€β”€ bin/packages
β”‚   Set of scripts used to build the WordPress packages.
β”‚
β”œβ”€β”€ bin/plugin
β”‚   Tool use to perform the Gutenberg plugin release and the npm releases as well.
β”‚
β”œβ”€β”€ docs/tool
β”‚   Tool used to generate the Block editor handbook's markdown pages.
β”‚
β”œβ”€β”€ docs/*.md
β”‚   Set of documentation pages composing the [Block editor handbook](https://developer.wordpress.org/block-editor/).
β”‚
β”œβ”€β”€ platform-docs
β”‚   Documentation website targeted to non WordPress developers
β”‚   using Gutenberg in their own applications.
β”‚   Deployed on [https://wordpress.org/gutenberg-framework/](https://wordpress.org/gutenberg-framework/).
β”‚
β”‚
β”œβ”€β”€ lib
β”‚   PHP Source code of the Gutenberg plugin.
β”‚
β”œβ”€β”€ lib/compact/wordpress-x.x
β”‚   PHP code that was include in WordPress ont the WordPress X.X version.
β”‚   It is kept to ensure plugin compatibility with older WordPress versions.
β”‚
β”œβ”€β”€ packages
β”‚   Source code of the WordPress packages.
β”‚   Packages can be:
β”‚    - Production JavaScript scripts and styles loaded on WordPress
β”‚      and the Gutenberg plugin or distributed as npm packages.
β”‚    - Development tools available on npm.
β”‚
β”œβ”€β”€ packages/{packageName}/package.json
β”‚   Dependencies of the current package.
β”‚
β”œβ”€β”€ packages/{packageName}/CHANGELOG.md
β”œβ”€β”€ packages/{packageName}/README.md
β”‚
β”œβ”€β”€ packages/{packageName}/src/**/*.js
β”œβ”€β”€ packages/{packageName}/src/**/*.scss
β”‚   Source code of a given package.
|
β”œβ”€β”€ packages/{packageName}/src/**/*.test.js
β”‚   JavaScript unit tests.
|
β”œβ”€β”€ packages/{packageName}/src/**/{ComponentName}/index.js
β”‚   Entry point of a given component.
|
β”œβ”€β”€ packages/{packageName}/src/**/{ComponentName}/style.scss
β”‚   Style entry point for a given component.
β”‚
β”œβ”€β”€ packages/{packageName}/src/**/{ComponentName}/stories/*.jsx
β”‚   Component Stories to load on the Gutenberg storybook.
β”‚
β”œβ”€β”€ phpunit
β”‚   Unit tests for the PHP code of the Gutenberg plugin.
β”‚
β”œβ”€β”€ storybook
β”‚   Config of the [Gutenberg Storybook](https://wordpress.github.io/gutenberg/).
β”‚
β”œβ”€β”€ test/integration
β”‚   Set of WordPress packages integration tests.
β”‚
β”œβ”€β”€ test/native
β”‚   Configuration for the Gutenberg Mobile unit tests.
β”‚
β”œβ”€β”€ test/unit
β”‚   Configuration for the Packages unit tests.
β”‚
β”œβ”€β”€ test/e2e
β”‚   End-2-end tests of the Gutenberg plugin.
β”‚
β”œβ”€β”€ test/performance
β”‚   Performance metrics. Results are tracked on the [Gutenberg performance dashboard](https://codevitals.run/project/gutenberg).
β”‚
β”œβ”€β”€ tools/eslint
β”‚   Configuration files for the ESLint linter.
β”‚
β”œβ”€β”€ tools/webpack
β”‚   Configuration files for the webpack build.