[Development Guides Home](/guides) >> [Guide to Site Publisher Templates](/guides/guide-to-site-publisher-templates) # Guide to Site Publisher Templates - The meta.json File ## Introduction The `meta.json` file stores your Site Publisher template's information. Every Site Publisher template that you create **must** include a `meta.json` file in the main template directory. cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) uses this file to display template information and generate the form fields in the *Customize and Publish* step. This file does not store user-entered information. The system stores that data in the configuration file for each Site Publisher website. div Important: * Each `meta.json` file must include the `information` hash and may include one or more hashes in the `fields` array. ## The information hash The information hash contains all of the data that cPanel uses for individual Site Publisher templates. | Parameter | Type | Description | Possible values | Example | | --- | --- | --- | --- | --- | | `id` | *string* | **Required**The template ID. This value is also the template's directory name. | A valid string. | `my_template` | | `name` | *string* | **Required**The template's display name.cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) displays this name in the *Select a Template* section. | A valid string. | `My Template` | | `date` | *string* | The template's creation date.cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) uses this value to determine the template's display order in the list of templates.If you do not supply a value, the cPanel interface sorts the template to the end of the template list. | A valid date, in `YYYY-MM-DD` format, where:`YYYY` represents the four-digit year.`MM` represents the two-digit month.`DD` represents the two-digit day. | `2017-01-01` | | `description` | *string* | *Required*The template's description.cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) displays this text in the *Select a Template* section. | A valid string. | `A one-page placeholder website.` | | `preview_image_path` | *string* | *Required*The path to the template's preview image.Preview images **must** be at **least** 370 by 200 pixels. The system will automatically shrink larger images. | The path to a `preview.png` file, relative to the template directory.This file **must** use the `preview` filename **and** the `.png` file extension. | `img/preview.png` | ## The fields array The `fields` array includes hashes of data for each custom field that the *Customize and Publish* section of cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) displays. You can use these variables [in the *Template Toolkit* files in your template](/guides/guide-to-site-publisher-templates/guide-to-site-publisher-templates-template-files/) in order to allow users to customize the information that their websites display. | Parameter | Type | Description | Possible values | Example | | --- | --- | --- | --- | --- | | `id` | *string* | **Required**The field's unique ID. | A valid string. | `description` | | `label` | *string* | **Required**The field's label. cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) displays this label with the form field in the *Customize and Publish* section. | A valid string. | `Description` | | `type` | *string* | **Required**The field type. This value determines the type of form field that cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) displays.**Note:**Older browsers may not support all HTML5 field types. Most older browsers revert to the `text` or `textarea` types for field types that they do not support.The way in which some HTML5 field types display depends on the specific browser and its version. | A Site Publisher-supported field type:`checkbox` — A checkbox.`color` — A color value.`date` — A date.`datetime` — A date, time, and timezone.`datetime-local` — A date and time.`email` — An email address.`month` — A month and year.`number` — A numeric value.`password` — A password.`range` — A numeric value within a range.`search` — A search field.`tel` — A telephone number.`text` — A single-line text box.`textarea` — A multi-line text box.`time` — A time.`url` — A URL.`week` — A week and year.For more information, read [Mozilla's HTML5 `<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) documentation. | `text` | | `placeholder` | *string* | The default placeholder value that cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) displays before the user enters a value for the `email`, `number`, `password`, `search`, `tel`, `text`, `textarea`, and `url` field types.If you do not supply a value, the interface will not display placeholder text for that input field. | A valid string. | `This site is under construction.` | | `min` | *string* | The minimum value that cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) will allow for a value in the `date`, `datetime`, `datetime-local`, `number`, or `range` field types. | For the `number` and `range` types, a valid integer.For the `date`, `datetime`, and `datetime-local` types, a valid date, in `YYYY-MM-DD` format, where:`YYYY` represents the four-digit year.`MM` represents the two-digit month.`DD` represents the two-digit day. | `2012-06-29` | | `max` | *string* | The maximum value that cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) will allow for a value in the `date`, `datetime`, `datetime-local`, `number`, or `range` field types. | For the `number` and `range` types, a valid integer.For the `date`, `datetime`, and `datetime-local` types, a valid date, in `YYYY-MM-DD` format, where:`YYYY` represents the four-digit year.`MM` represents the two-digit month.`DD` represents the two-digit day. | `2014-03-29` | | `value` | *string* | The default value for the `checkbox`, `color`, `date`, `datetime`, `datetime-local`, `month`, `range`, `time` or `week` field types. cPanel's [*Site Publisher*](https://docs.cpanel.net/cpanel/domains/site-publisher/) interface (*cPanel >> Home >> Domains >> Site Publisher*) will preselect this value when it loads the selected template. | A valid value for the selected field type. | `#4acaa8` | ## Example ```json { "information": { "id": "my_template", "name": "My Template", "date": "2017-01-01", "description": "A one-page placeholder website.", "preview_image_path": "img/preview.png" }, "fields": [{ "id": "text_field", "label": "A Text Field", "type": "text", "placeholder": "This text will appear until the user enters a value." }, { "id": "password_field", "label": "A Password Field", "type": "password", "placeholder": "This text will appear until the user enters a value." }, { "id": "textarea_field", "label": "A Large Text Box", "type": "textarea", "placeholder": "This text will appear until the user enters a value." }, { "id": "checkbox_item", "label": "Check the checkbox?", "type": "checkbox" }, { "id": "color_field", "label": "Pick a Color", "type": "color", "value": "#4acaa8" }, { "id": "date_field", "label": "Date", "type": "date", "min": "2012-06-29", "max": "2014-03-29" }, { "id": "datetime_field", "label": "Date, Time, and Timezone", "type": "datetime", "min": "2012-06-29", "max": "2014-03-29" }, { "id": "datetime-local_field", "label": "Date and Time", "type": "datetime-local", "min": "2012-06-29", "max": "2014-03-29" }, { "id": "email_field", "label": "Email Address", "type": "email", "placeholder": "user@example.com" }, { "id": "month_field", "label": "Month and Year", "type": "month" }, { "id": "number_field", "label": "A Number", "type": "number", "min": "0", "max": "10" }, { "id": "range_field", "label": "A Range", "type": "range", "min": "0", "max": "10" }, { "id": "search_field", "label": "A Search Box", "type": "search", "placeholder": "This text will appear until the user enters a value." }, { "id": "tel_field", "label": "A Telephone Number", "type": "tel", "placeholder": "555-555-1212" }, { "id": "time_field", "label": "A Time", "type": "time" }, { "id": "url_field", "label": "URL", "type": "url", "placeholder": "http://www.cpanel.com" }, { "id": "week_field", "label": "A Week and Year", "type": "week" }] } ```