> ## Documentation Index
> Fetch the complete documentation index at: https://site.aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Finding existing rules

> Discover the Bazel rule ecosystem - bazel_skylib, aspect-bazel-lib, and recommended rules - before reinventing utilities in your own BUILD files.

The first approach is just to learn more APIs which are already available.
If the problem you're solving isn't novel, then other engineers probably ran into it before, and may
have provided a solution you can simply adopt.

There is a vibrant ecosystem of rules for Bazel, and you should be able to find documentation for those.

* [bazel\_skylib](https://github.com/bazelbuild/bazel-skylib/tree/main/docs) has many utilities like `copy_file`
* [aspect-bazel-lib](https://github.com/bazel-contrib/bazel-lib/) builds on top of `bazel-skylib` with many more utilities
* [Recommended rules](https://bazel.build/rules) from the Bazel team

You should skim through these to form a rough memory of what's available.
This way when you encounter an interesting problem while writing a `BUILD` file, you can search on this site to find that useful nugget.

You can also look through example repositories like
[aspect bazel-examples](https://github.com/aspect-build/bazel-examples) to find solutions to problems similar to yours.

<Note>
  Aspect can be hired to write "missing" rulesets.

  If you don't find one you need, consider donating a Feature Bounty on our
  [OpenCollective](https://opencollective.com/aspect-build) and we can add it for you.

  For example, we were contracted to write rules\_distroless, rules\_apko, and rules\_sol.
</Note>
