# Contribute to the open source platform

This section is for contributing to the Fuchsia open source platform and
operating system. Explore the open source code at [cs.fuchsia.dev](https://cs.fuchsia.dev)

## Basic workflows

 - [Get started](/docs/get-started/README.md) - If you're new to the Fuchsia
   platform, complete this guide first.
 - [Source code](/docs/get-started/get_fuchsia_source.md)
 - [fx workflows](build/fx.md)
 - [Pushing a package](/docs/concepts/packages/package_update.md)
 - [Working across different petals](source_code/working_across_petals.md)
 - [Build system](/docs/development/build/build_system/index.md)
 - [Workflow tips and FAQ](source_code/workflow_tips_and_faq.md)
 - [Testing FAQ](testing/faq.md)

## Languages

 - [README](languages/README.md) - Language usage in Fuchsia
 - [C/C++](languages/c-cpp/README.md)
 - [FIDL](languages/fidl/README.md)
 - [Go](languages/go/README.md)
 - [Rust](languages/rust/README.md)
 - [Python](languages/python/README.md)
 - [New language](languages/new/README.md) - How to bring a new language to Fuchsia

## API

 - [README](/docs/development/api/README.md) - Developing APIs for Fuchsia
 - [API Council](/docs/contribute/governance/api_council.md) - Definition of the API council
 - [System](/docs/development/api/system.md) - Rubric for designing the Zircon System Interface
 - [FIDL API][fidl-api] - Rubric for designing FIDL protocols
 - [FIDL style][fidl-style] - FIDL style rubric
 - [C](/docs/development/api/c.md) - Rubric for designing C library interfaces
 - [Tools](/docs/development/api/tools.md) - Rubrics for designing developer tools

## Testing

 - [Debugging workflow](/docs/development/debugging/debugging.md)
 - [Fuzz testing with LibFuzzer](/docs/development/testing/fuzzing/overview.md)
 - [Test components](/docs/development/testing/components/test_component.md)
 - [Test environments](/docs/contribute/testing/environments.md)
 - [Testability rubrics](/docs/development/testing/testability_rubric.md)
 - [Test flake policy](/docs/development/testing/test_flake_policy.md)
 - [Host-target interaction tests](/docs/development/testing/host_target_interaction_tests.md)
 - [Testing for Flakiness in CQ](/docs/development/testing/testing_for_flakiness_in_cq.md)
 - [Testing a USB Device](/docs/development/testing/testing_usb_device.md)

## Tracing

 - [Fuchsia tracing system](/docs/concepts/kernel/tracing-system.md)
 - [Tracing guides](/docs/development/tracing/README.md)
 - [Tracing for input events](/docs/development/ui-input/tracing.md)

## Internationalization

 - [Internationalization, localization and input methods](internationalization/README.md)

[fidl-style]: /docs/development/languages/fidl/guides/style.md
[fidl-api]: /docs/development/api/fidl.md

