{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Getting Started","description":"Developer documentation for the WHMCS API — the","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"getting-started","__idx":0},"children":["Getting Started"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The default theme that ships with WHMCS is called the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Twenty-One"]}," theme."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you wish to customise any of the themes that ship by default with WHMCS, we recommend using the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/child-themes"},"children":["Child Themes"]}," functionality."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"creating-a-child-theme","__idx":1},"children":["Creating a Child Theme"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Tip"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Recommended for all new theme development in WHMCS 8.1 and later."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/child-themes"},"children":["Child Themes"]}," for more information."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"creating-a-custom-theme","__idx":2},"children":["Creating a Custom Theme"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you wish to create a new Parent Theme (that other themes can inherit from and be a child of), or are using WHMCS 8.0 or earlier, you can create a Custom Theme. For all other scenarios, we recommend using ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/child-themes"},"children":["Child Themes"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The first step is to create your own copy of the template. This ensures your customisations are not lost when updating."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"method-1-using-source-control","__idx":3},"children":["Method 1: Using Source Control"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you're familiar with Git version control, we make our system themes and order form templates available as read-only repositories on ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/WHMCS/"},"children":["GitHub"]},". You can use these to build your template in a way that can be tracked and automatically updated."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use this, navigate to the WHMCS templates directory:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"$ cd ~/whmcs/templates/\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Then, clone the repository into your new template directory:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"$ git clone https://github.com/WHMCS/templates-six.git my-template-name\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Next, you can ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/customising"},"children":["customise"]}," your system theme or ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/order-form-templates"},"children":["order form template"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"method-2-without-source-control","__idx":4},"children":["Method 2: Without Source Control"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alternatively, if you aren't familiar with Git version control or don't wish to use it, you can make a copy of the template directory within WHMCS."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To do this, copy the theme or order form template directory (for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["~/templates/twenty-one/"]},") to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["~/templates/yourname/"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Template names should be a single word, consisting of only lowercase letters and numbers."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Next, you can ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/customising"},"children":["customise"]}," your system theme or ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/themes/order-form-templates"},"children":["order form template"]},"."]}]},"headings":[{"value":"Getting Started","id":"getting-started","depth":1},{"value":"Creating a Child Theme","id":"creating-a-child-theme","depth":2},{"value":"Creating a Custom Theme","id":"creating-a-custom-theme","depth":2},{"value":"Method 1: Using Source Control","id":"method-1-using-source-control","depth":3},{"value":"Method 2: Without Source Control","id":"method-2-without-source-control","depth":3}],"frontmatter":{"title":"Getting Started","seo":{"title":"Getting Started"}},"lastModified":"2026-08-03T17:00:42.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/themes/getting-started","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}