﻿---
title: Contributing
description: How to work inside the Kibana repository: the development principles we hold, the day-to-day GitHub workflow, the layout of the codebase, the rules for...
url: https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing
products:
  - Kibana
---

# Contributing
How to work inside the Kibana repository: the development principles we hold, the day-to-day GitHub workflow, the layout of the codebase, the rules for HTTP API design, and how the build and CI pipeline work.

## Principles

How we think about quality, security, accessibility, performance, and i18n when writing code. Start here if you're new to the project.
- [Developer principles](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/principles/developer-principles)
- [Security](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/principles/security)
- [Accessibility](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/principles/accessibility)
- [Internationalization](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/principles/internationalization)
- [Performance](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/principles/performance)
- [Standards and guidelines](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/principles/standards-and-guidelines)


## Workflow

How we use GitHub, submit and review pull requests, file issues, and plan feature work.
- [How we use GitHub](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/workflow/how-we-use-github)
- [Submitting a pull request](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/workflow/development-pull-request)
- [Pull request review guidelines](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/workflow/pr-review)
- [Effective issue reporting](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/workflow/kibana-issue-reporting)
- [Feature development](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/workflow/feature-development)


## Codebase

Repository layout, TypeScript project references, linting, internal documentation, dependency management, and platform-wide concerns like logging and saved objects.
- [Repository structure](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/repository-structure)
- [TypeScript project references](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/typescript-project-references)
- [Kibana linting](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/kibana-linting)
- [Documentation](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/documentation)
- [Managing third-party dependencies](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/managing-third-party-dependencies)
- [Upgrading Node.js](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/upgrading-nodejs)
- [Logging](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/logging)
- [Saved objects and migrations](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/saved-objects-and-migrations)
- [Runtime constraints](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/runtime-constraints)
- [Package design](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/codebase/package-design)


## API design

Conventions for designing HTTP APIs in Kibana, including Terraform-friendly patterns.
- [Guidelines for HTTP API design in Kibana](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/api-design/guidelines-for-http-api-design-in-kibana)
- [Guidelines for Terraform-friendly HTTP APIs](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/api-design/guidelines-for-terraform-friendly-http-apis)


## CI and build

How Kibana's Buildkite CI works, how to build a distributable, and how to debug failures (including FIPS-mode test failures).
- [CI](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/ci-and-build/ci)
- [Building a Kibana distributable](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/ci-and-build/building-a-kibana-distributable)
- [Debugging in development](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/ci-and-build/debugging-in-development)
- [Debugging FIPS test failures](https://www.elastic.co/elastic/docs-builder/docs/3589/extend/kibana/contributing/ci-and-build/debugging-fips-test-failures)