# Overview

Padrino is an agnostic web framework. This means that the framework has been
built from the ground up to easily allow support for any arbitrary number of
different developer choices with respect to object permanence, stylesheet
templates, JavaScript libraries, testing libraries, mocking libraries and
rendering engines. For a detailed overview of the available components, check
out the [Generators guide](/guides/generators/overview "generators guide").

Although Padrino is fundamentally agnostic, in practice only a very limited set
of available components have actually been integrated into the Padrino generator
and admin dashboard. The set of available components is determined by libraries
actually used or noted by the core developers and the existing community.
However, adding additional components to Padrino is not only possible but highly
recommended. In fact, this is possibly _the best_ way for a developer to get
started [contributing to Padrino](/contribute "contributing to Padrino").

The following guides will outline in detail how to properly contribute new
components to Padrino and get them included into the next Padrino generator as
quickly and efficiently as possible.

- [Persistence Engine](/guides/adding-components/persistence-engine "Persistence Engine")
- [Javascript Library](/guides/adding-components/javascript-engine "Javascript Library")
- [Testing Library](/guides/adding-components/testing-library "Testing Library")
- [Rendering Engine](/guides/adding-components/rendering-engine "Rendering Engine")
- [Mocking Library](/guides/adding-components/mocking-library "Mocking Library")
- [Stylesheet Engine](/guides/adding-components/stylesheet-engine "Stylesheet Engine")
- [Locale Translations](/guides/adding-components/locale-translations "Locale Translations")


