# Source: https://docs.convex.dev/components.md

# Components

Convex Components package up code and data in a sandbox that allows you to confidently and quickly add new features to your backend.

Convex Components are like mini self-contained Convex backends, and installing them is always safe. They can't read your app's tables or call your app's functions unless you pass them in explicitly.

You can read about the full vision in [Convex: The Software-Defined Database](https://stack.convex.dev/the-software-defined-database#introducing-convex-components).

Components can be installed from NPM or from a local folder. Once installed, they have their own database tables and isolated function execution environment. Check out the full directory of components on the [Convex website](https://convex.dev/components).

## [Understanding components](/components/understanding.md)

[Explore the concepts behind and build a mental model for how components work.](/components/understanding.md)

## [Using components](/components/using.md)

[Learn about useful components and how to use them in your application.](/components/using.md)

## [Authoring components](/components/authoring.md)

[Learn how to write and publish a component.](/components/authoring.md)

## [Components Directory](https://convex.dev/components)

[List of all components.](https://convex.dev/components)