# Development Guides and Tutorials

## Overview

Welcome to our Developer Guide and Tutorials page. You can find information about integrating and customizing interfaces with cPanel & WHM.

## Guides

[Guide to Testing Custom Code](/guides/guide-to-testing-custom-code) — This guide explains the basics of how to test your custom code.

[Guide to cPanel Interface Customization and Branding](/guides/guide-to-cpanel-interface-customization-and-branding) — You can use several different methods to modify the appearance of the cPanel interface.

[Guide to cPanel Plugins](/guides/guide-to-cpanel-plugins) — cPanel plugins add new functionality to the cPanel interface.

[Guide to WHM Plugins](/guides/guide-to-whm-plugins) — WHM plugins add new functionality to the WHM interface.

[Guide to WHM dynamicui Files](/guides/guide-to-whm-dynamicui-files) — WHM themes use dynamicui files to display icons and groups.

[Guide to Template Toolkit](/guides/guide-to-template-toolkit) — Template Toolkit is the main template system for the cPanel and WHM interfaces.

[Guide to Site Publisher Templates](/guides/guide-to-site-publisher-templates) — You can create your own custom templates for cPanel's [Site Publisher](https://docs.cpanel.net/cpanel/domains/site-publisher/) feature.

[Guide to API Authentication](/guides/guide-to-api-authentication) — cPanel & WHM supports several API authentication methods.

[Guide to Standardized Hooks](/guides/guide-to-standardized-hooks) — Standardized Hooks trigger applications when cPanel & WHM performs an action.

[Guide to Package Extensions](/guides/guide-to-package-extensions) — Package extensions add custom fields to packages and accounts.

[Guide to Perl in cPanel & WHM](/guides/guide-to-perl) — cPanel & WHM ships with multiple Perl environments.

[Guide to cPanel Variables](/guides/guide-to-cpanel-variables) — The [LiveAPI system](/guides/guide-to-the-liveapi-system) and [`dynamicui` files](/guides/guide-to-cpanel-plugins/guide-to-cpanel-plugins-add-plugins) can access cPanel's global variables.

[Guide to Locales](/guides/guide-to-locales) — The locale system localizes text in Perl, Template Toolkit, or JavaScript code.

[Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system) — The LiveAPI System provides environments for applications in the cPanel interface.

[Guide to Custom dnsadmin Plugins](/guides/guide-to-custom-dnsadmin-plugins) — Custom dnsadmin plugins can update DNS records on external systems.

[Guide to API Privilege Escalation](/guides/guide-to-api-privilege-escalation) — To run a function with escalated privileges, call a function through the `Call` method or use the `send_cpwrapd_request` pluggable wrapper.

[Guide to External Authentication](/guides/guide-to-external-authentication) — External Authentication modules allow users to log in through OpenID Connect-compliant identity providers.

[Guide to cPanel Market Provider Modules](/guides/guide-to-cpanel-market-provider-modules) — This document explains how to create a third-party custom cPanel Market provider module with basic functionality.

[Guide to Transfer and Restore API Functions](/guides/guide-to-transfer-and-restore-api-functions) — The system uses several WHM API 1 functions during the transfer and restore process.

[Guide to Report Receiver APIs for the ModSecurity Rule Reports](/guides/guide-to-report-receiver-apis-for-the-modsecurity-rule-reports) — This document describes report receiver API endpoints for the ModSecurity™ Rule Reports.

[Guide to Replacing cPanel API 1 Functions with UAPI Equivalents](/guides/guide-to-replacing-cpanel-api-1-functions-with-uapi-equivalents) — This document lists the UAPI functions that replace previously-deprecated cPanel API 1 functions.

[Guide to Integration Links](/guides/guide-to-integration-links) — Integration links create a link in a user's cPanel interface using WHM API 1.

[Guide to Third-Party AutoSSL Provider Modules](/guides/guide-to-third-party-autossl-provider-modules/) — AutoSSL provider modules allow your server's users to automatically secure locally-hosted domains on their accounts with certificates from that SSL certificate provider.

[Guide to Custom Service Notifications](/guides/guide-to-custom-service-notifications) — You can create modules to send notifications to custom services.

[Guide to Custom Plugins in log_retention Script](/guides/guide-to-custom-plugins-in-log-retention-script/) — This document explains how to create custom plugins for the `/usr/local/cpanel/scripts/log_retention` script.

## Tutorials

[Add a Link to the cPanel Interface](/guides/quickstart-development-guide/tutorial-add-a-link-to-the-cpanel-interface) — This tutorial adds an icon that links to an external location to the cPanel interface.

[Call UAPI's SSL::install_ssl Function in Custom Code](/guides/quickstart-development-guide/tutorial-call-uapis-ssl-install-ssl-function-in-custom-code) — This tutorial creates custom code to call UAPI's [`SSL::install_ssl`](https://api.docs.cpanel.net/openapi/cpanel/operation/install_ssl/) function.

[Create a ModSecurity Vendor](/guides/quickstart-development-guide/tutorial-create-a-modsecurity-vendor) — This tutorial describes how to create a custom ModSecurity™ vendor.

[Create a New cPanel Interface](/guides/quickstart-development-guide/tutorial-create-a-new-cpanel-interface) — This tutorial uses Template Toolkit to create a new cPanel interface.

[Create a New cPanel Interface in PHP](/guides/quickstart-development-guide/tutorial-create-a-new-cpanel-interface-in-php) — This tutorial uses PHP to create a new cPanel interface.

[Create a New WHM Interface in PHP](/guides/quickstart-development-guide/tutorial-create-a-new-whm-interface-in-php) — This tutorial uses PHP to create a new WHM interface.

[Create a New WHM Interface in Template Toolkit](/guides/quickstart-development-guide/tutorial-create-a-new-whm-interface-in-template-toolkit) — This tutorial uses Template Toolkit to create a new WHM interface.

[Create a Standardized Hook](/guides/quickstart-development-guide/tutorial-create-a-standardized-hook) — This tutorial adds custom hooks to preserve a customized configuration file.

[Create a WHM Plugin](/guides/quickstart-development-guide/tutorial-create-a-whm-plugin) — This tutorial shows how to use WHM plugins to add custom system administrator-level functionality to cPanel & WHM servers.

[Create Custom-Branded Login Pages](/guides/quickstart-development-guide/tutorial-create-custom-branded-login-pages) — This tutorial creates server-wide custom login pages for the cPanel, WHM, or Webmail interfaces.

[Integrate Custom Webmail Applications](/guides/quickstart-development-guide/tutorial-integrate-custom-webmail-applications) — This tutorial explains how to integrate custom webmail applications in cPanel's [*Webmail*](https://docs.cpanel.net/webmail/the-webmail-interface/) interface (*cPanel >> Home >> Email >> Email Accounts >> Check Email*).

[Localize Text in cPanel Plugins](/guides/quickstart-development-guide/tutorial-localize-text-in-cpanel-plugins) — This tutorial creates and installs a fully-localized cPanel plugin.

[Register a WHM Plugin with AppConfig](/guides/quickstart-development-guide/tutorial-register-a-whm-plugin-with-appconfig) — This tutorial explains how to register a WHM plugin with AppConfig.

[Replace a cPanel API 1 Function With a UAPI Function](/guides/quickstart-development-guide/tutorial-replace-a-cpanel-api-1-function-with-a-uapi-function) — This tutorial shows how to replace a deprecated cPanel API 1 function with a [UAPI function](/cpanel/introduction) in a cPanel integration or plugin.

[Use UAPI's Fileman::upload_files Function in Custom Code](/guides/quickstart-development-guide/tutorial-use-uapis-fileman-upload-files-function-in-custom-code) — This tutorial explains the process to upload files with UAPI's [`Fileman::upload_files`](/openapi/cpanel/operation/upload_files/) function.

If you have questions or need help with your customization project, join the conversation on our [cPanel Developers Forum](http://forums.cpanel.net/cpanel-developers.html), or reach out to us in [Discord](http://go.cpanel.net/discord).

We encourage anyone who develops for cPanel products to read the [cPanel Blog](http://blog.cpanel.net/), and join our Plugin Developers [mailing list](https://mail.cpanel.net/mailman/listinfo/plugindevs_cpanel.net).