> For the complete documentation index, see [llms.txt](https://help.santesuite.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.santesuite.org/developers/applets.md).

# Applets

Applets are the foundation of extending SanteDB. An applet can contain:

* Custom user interface components (using CSS, JavaScript, AngularJS, and HTML5)
* Custom Business Rules written using the SanteDB Business Rules engine
* Custom Reports written using the embedded reporting engine (those which operate in all SanteDB environments)
* Clinical Decision Support Rules (CDSS) written using XML formatted when/then commands
* Custom View-Model files which instruct SanteDB how to render JSON to consumer applications
* Translations and localization settings for a particular locale
* Custom matching configurations used for the SanteDB Matching Algorithms
* Clinical Template Definitions which contain the validation rules, entry and render forms, and structure of clinical data

### Recommended Tooling

In order to develop SanteDB applets, you'll need a few tools:

* **The SanteDB Software Development Kit** - Contains the necessary tools to debug and package your applet.
* **An HTML5 + JavaScript Editor -** We recommend [Visual Studio Code](https://code.visualstudio.com/), but any editor will do the trick
* **(Optional) An XML Editor -** An XML editor is highly recommended, especially if you're going to be doing heavy editing of SanteDB's CDSS, BI, DataSet, ViewModel or Subscription services.

### Getting Started

Getting started with SanteDB applet authoring is easy

1. Download and install the latest SanteDB SDK: <https://github.com/santedb/santedb-sdk/releases>
2. Clone the starter applet source code: <https://github.com/santedb/applet-starter>
3. Start your favorite code editor!

To test your applet, you can run the Applet Debugging Environment (ADE)&#x20;

```
sdb-ade --applet=path_to_source_code --ref=org.santedb.core --ref=org.santedb.uicore ...
```

## Topics

{% content-ref url="/pages/-MjGAYQtgecTsMf9ZIYW" %}
[Applet Use and Lifecycle](/developers/applets/applet-use-and-lifecycle.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MjGCXTX1dKK-dAWcRju" %}
[Applet SDK Components](/developers/applets/applet-sdk.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZG0oIU1C8NnMC8X0WO" %}
[Applet Structure](/developers/applets/applet-structure.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MGdO0MzlrC3CUt\_eVp8" %}
[JavaScript API](/developers/applets/javascript-api.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LvhK4yKwi11kojkrjJE" %}
[Business Intelligence Assets](/developers/applets/business-intelligence-bi-assets.md)
{% endcontent-ref %}

{% content-ref url="/pages/-Lx5\_RARCi5WkUpv8jzA" %}
[Localization](/developers/applets/localization.md)
{% endcontent-ref %}

{% content-ref url="/pages/-Lx5dt3m21sDU-49ys-S" %}
[Customization & Branding](/developers/applets/customization-and-branding.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M73F\_HthmXu\_hEulUln" %}
[Assets](/developers/applets/assets.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZBPlTWQ\_Xeq89Z5lAA" %}
[AngularJS](/developers/applets/angularjs.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZG11jeygO6gnIhcLl0" %}
[Clinical Decision-Support](/developers/applets/cdss-protocols.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LZG2X1aN0b9baM48\_Mz" %}
[Business Rules](/developers/applets/business-rules.md)
{% endcontent-ref %}

{% content-ref url="/pages/-Liy8q4uEanJFhrKnPFR" %}
[Dataset Files](/developers/applets/distributing-data.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LwOIgZYXXtaZAajSa0D" %}
[Applet Solution Packages](/developers/applets/applet-solution-packages.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MACskYH-uAh6BGs40iT" %}
[Recipes](/developers/applets/recipes.md)
{% endcontent-ref %}
