cookbook icon indicating copy to clipboard operation
cookbook copied to clipboard

📚🍳Recipes and best practices for awesome digital teams

Cookbook Build status

📚🍳 Recipes and best practices for awesome digital teams

      __...--~~~~~-._   _.-~~~~~--...__
    //   Vorsprung   `V'    Pauca      \\
   //   durch Technik |     sed bona    \\
  //__...--~~~~~~-._  |  _.-~~~~~~--...__\\
 //__.....----~~~~._\ | /_.~~~~----.....__\\
====================\\|//====================
                    `---`

What is this

This repository contains all of the recipes, guidelines, templates, documentation you can reuse to cook a delicious digital project. Think of it as a reference of practices to use when working as a team; a starting point to define your own team’s practices.

This cookbook is about helping teams succeed first and foremost, projects being successful is only a consequence. It defines where we want to be, not necessarily where we always are. It is meant to apply to all teams, and all team members – we are knowledge workers first and foremost, our most important role is to successfully think, organise, and share knowledge. Code, designs, plans are only specific artifacts.

Contents

  • Guidelines
    • Contribution guidelines: docs/CONTRIBUTING.md
      • Covers basic project setup, branching, and code reviews.
    • Pull request template: .github/PULL_REQUEST_TEMPLATE.md, for GitHub PRs and GitLab MRs.
    • Issue templates: .github/ISSUE_TEMPLATE/.
    • Security policy: docs/SECURITY.md
    • Support information: docs/SUPPORT.md
    • Code of conduct: docs/CODE_OF_CONDUCT.md
  • Tooling
    • EditorConfig configuration: .editorconfig
    • nvm configuration: .nvmrc
    • .gitignore
    • Git hooks for various scenarios: .githooks
    • Prettier configuration: prettier.config.js, and integration via npm scripts and git hooks
    • commitlint configuration: commitlint.config.js, and integration via npm scripts and git hooks
  • Python Tooling
    • Black configuration: pyproject.toml, and integration via a Makefile and git hooks
    • A Makefile for Python packages development, inspired by npm run-scripts.
    • twine for Python package publishing.
    • mypy and flake8 for Python static analysis.
  • Documentation
    • Browser support targets
    • Accessibility targets

Contributing

Contributions are always welcome! Please read the contribution guidelines first.

Install

Clone the project on your computer, and install Node. This project also uses nvm.

# Use the correct Node version.
nvm install
# Then, install all project dependencies.
npm install

Working on the project

Everything mentioned in the installation process should already be done.

# Make sure you use the right node version.
nvm use
# Lint all of the files in the project.
npm run lint
# Re-formats all of the files in the project (with Prettier).
npm run format
# View other available commands with:
npm run

License

CC0

To the extent possible under law, Thibaud Colas has waived all copyright and related or neighboring rights to this work.