# Introduction

Copy as Markdown[View as Markdown](/docs/development/customization/custom-components/introduction.md)

***

EventCatalog provides the ability to add custom components to your domains, services and messages within your catalog. These features include:

* Adding reuseable content across all your resources
* Styling components with [Tailwind CSS](https://tailwindcss.com/)
* Adding custom [JavaScript to your pages](https://docs.astro.build/en/guides/client-side-scripts/#using-script-in-astro)

### Why create components?[​](#why-create-components "Direct link to Why create components?")

Components are a great way to customize your EventCatalog and write shared snippets of code or content you can reuse across your EventCatalog.

Components can be either [markdown files (component.mdx) or astro files (component.astro)](/docs/development/customization/custom-components/adding-components.md#types-of-components).

Astro components

Custom components are powered by [Astro Components](https://docs.astro.build/en/basics/astro-components/). Read the Astro documentation to learn more about what you can include in your components. Custom components can be very powerful and allow some great customization.
