# Develop & Contribute

- [Codebase Basics](/develop-and-contribute/codebase-basics.md)
- [Code Setup](/develop-and-contribute/codebase-basics/code-setup.md)
- [Code Modules and Organization](/develop-and-contribute/codebase-basics/code-modules-and-organization.md): Overview of the Apache Pinot Maven modules and how the codebase is organized.
- [Dependency Management](/develop-and-contribute/codebase-basics/dependency-management.md)
- [Build Docker Images](/develop-and-contribute/codebase-basics/build-docker-images.md)
- [Extending Pinot](/develop-and-contribute/extending-pinot.md)
- [Writing Custom Aggregation Function](/develop-and-contribute/extending-pinot/custom-aggregation-function.md)
- [Segment Fetchers](/develop-and-contribute/extending-pinot/segment-fetchers.md)
- [Plugins](/develop-and-contribute/plugin-architecture.md)
- [Write Custom Plugins](/develop-and-contribute/plugin-architecture/write-custom-plugins.md)
- [Input Format Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/record-reader.md)
- [Filesystem Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/pluggable-storage.md)
- [Batch Segment Fetcher Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/write-your-batch.md)
- [Stream Ingestion Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/write-your-stream.md): This page describes how to write your own stream ingestion plugin for Pinot.
- [Time Series Language Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/time-series-language-plugin.md): Describes how you can support custom or novel Time Series Query Languages like PromQL, M3QL, etc.
- [Segment Uploader Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/segment-uploader-plugin.md)
- [Segment Writer Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/segment-writer-plugin.md)
- [Metrics Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/metrics-plugin.md)
- [Minion Task Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/minion-task-plugin.md): Write a custom Minion task plugin with a task generator and task executor.
- [Opchain Converter Plugin](/develop-and-contribute/plugin-architecture/write-custom-plugins/opchain-converter-plugin.md): Learn how to implement a custom OpChain converter for multi-stage engine extensibility
- [Config Validator SPI](/develop-and-contribute/plugin-architecture/write-custom-plugins/config-validator-spi.md)
- [Design Documents](/develop-and-contribute/design-documents.md): Index of design documents and how to propose new ones
- [Segment Writer API](/develop-and-contribute/design-documents/segment-writer-api.md)
- [Contributing](/develop-and-contribute/contributing.md)
- [Contribution Guidelines](/develop-and-contribute/contributing/contribution-guidelines.md)
- [Contribute Pinot Documentation](/develop-and-contribute/contributing/contributing.md)
- [Update Documentation](/develop-and-contribute/contributing/update-document.md)
- [Style Guide](/develop-and-contribute/contributing/style-guide.md)
