{
  "app_title": "Piano Heroes — Content",
  "logo": {
    "src": "/brand/icon-192.png"
  },
  "site_url": "https://pianoheroes.co",
  "display_url": "https://pianoheroes.co",
  "backend": {
    "name": "github",
    "repo": "ve-design-studio/ph-club",
    "branch": "master",
    "base_url": "https://pianoheroes-cms-auth.ve-1c3.workers.dev",
    "auth_scope": "repo"
  },
  "publish_mode": "editorial_workflow",
  "media_folder": "content-site/public/uploads",
  "public_folder": "/uploads",
  "output": {
    "omit_empty_optional_fields": true
  },
  "collections": [
    {
      "name": "blog",
      "label": "Blog posts",
      "label_singular": "Blog post",
      "icon": "edit_note",
      "description": "Articles on the Piano Heroes blog.",
      "folder": "content-site/src/content/blog",
      "extension": "md",
      "format": "yaml-frontmatter",
      "create": true,
      "slug": "{{slug}}",
      "preview_path": "/blog/{{slug}}/",
      "thumbnail": "previewImage",
      "summary": "{{title}}",
      "sortable_fields": {
        "fields": [
          "date",
          "title"
        ],
        "default": {
          "field": "date",
          "direction": "descending"
        }
      },
      "view_filters": [
        {
          "label": "Hidden posts",
          "field": "draft",
          "pattern": true
        }
      ],
      "view_groups": [
        {
          "label": "Category",
          "field": "category"
        }
      ],
      "fields": [
        {
          "name": "title",
          "label": "Title",
          "widget": "string"
        },
        {
          "name": "date",
          "label": "Publish date",
          "widget": "datetime",
          "type": "date",
          "format": "YYYY-MM-DD",
          "default": "{{now}}",
          "hint": "Posts are listed newest first."
        },
        {
          "name": "category",
          "label": "Category",
          "widget": "select",
          "required": false,
          "options": [
            {
              "label": "Teaching",
              "value": "teaching"
            },
            {
              "label": "Technology",
              "value": "technology"
            },
            {
              "label": "Business",
              "value": "business"
            },
            {
              "label": "Holiday Collection",
              "value": "holiday-collection"
            }
          ]
        },
        {
          "name": "tags",
          "label": "Tags",
          "widget": "list",
          "required": false,
          "hint": "Short topic words, for example scales or rhythm."
        },
        {
          "name": "previewImage",
          "label": "Card image",
          "widget": "image",
          "required": false,
          "hint": "Shown on the blog listing."
        },
        {
          "name": "draft",
          "label": "Hide this post from the site",
          "widget": "boolean",
          "required": false,
          "default": false,
          "hint": "Hidden posts stay saved here but do not appear on the blog."
        },
        {
          "name": "description",
          "label": "Summary for Google and social media",
          "widget": "text",
          "required": false,
          "maxlength": 300,
          "hint": "One or two sentences. Shown under the title in Google results and when the page is shared."
        },
        {
          "name": "ogImage",
          "label": "Image when shared on social media",
          "widget": "image",
          "required": false,
          "hint": "Optional. Without one, the main image is used."
        },
        {
          "name": "body",
          "label": "Post",
          "widget": "richtext",
          "modes": [
            "rich_text",
            "raw"
          ],
          "hint": "To add a YouTube or TED video, choose Insert › Video."
        }
      ]
    },
    {
      "name": "resources",
      "label": "Shop products",
      "label_singular": "Product",
      "icon": "storefront",
      "description": "Printables, games, cards and worksheets in the shop.",
      "folder": "content-site/src/content/resources",
      "extension": "md",
      "format": "yaml-frontmatter",
      "create": true,
      "slug": "{{slug}}",
      "preview_path": "/shop/{{slug}}/",
      "thumbnail": "images",
      "summary": "{{title}}",
      "sortable_fields": {
        "fields": [
          "title",
          "tier"
        ],
        "default": {
          "field": "title",
          "direction": "ascending"
        }
      },
      "view_filters": [
        {
          "label": "Starter plan",
          "field": "tier",
          "pattern": "starter"
        },
        {
          "label": "Growing plan",
          "field": "tier",
          "pattern": "growing"
        },
        {
          "label": "Full Studio plan",
          "field": "tier",
          "pattern": "full_studio"
        },
        {
          "label": "No Download button",
          "field": "download",
          "pattern": false
        }
      ],
      "view_groups": [
        {
          "label": "Category",
          "field": "category"
        },
        {
          "label": "Plan",
          "field": "tier"
        }
      ],
      "fields": [
        {
          "name": "title",
          "label": "Product name",
          "widget": "string"
        },
        {
          "name": "images",
          "label": "Images",
          "widget": "image",
          "multiple": true,
          "hint": "The first image is the cover shown in the shop. Drag to reorder."
        },
        {
          "name": "category",
          "label": "Shop category",
          "widget": "select",
          "options": [
            {
              "label": "Free Printables",
              "value": "free-printables"
            },
            {
              "label": "Games",
              "value": "games"
            },
            {
              "label": "Cards",
              "value": "cards"
            },
            {
              "label": "Worksheets",
              "value": "worksheets"
            },
            {
              "label": "Activities",
              "value": "activities"
            },
            {
              "label": "Piano Heroes",
              "value": "piano-heroes"
            },
            {
              "label": "Interactive Tools",
              "value": "interactive-tools"
            }
          ]
        },
        {
          "name": "topic",
          "label": "Free printables topic",
          "widget": "select",
          "required": false,
          "options": [
            {
              "label": "Pitch And Notation",
              "value": "pitch-and-notation"
            },
            {
              "label": "Rhythm",
              "value": "rhythm"
            },
            {
              "label": "Intervals",
              "value": "intervals"
            },
            {
              "label": "Scales And Key Signature",
              "value": "scales-and-key-signature"
            },
            {
              "label": "Chords",
              "value": "chords"
            },
            {
              "label": "Piano Technique",
              "value": "piano-technique"
            },
            {
              "label": "Composition",
              "value": "composition"
            },
            {
              "label": "Sheet Music",
              "value": "sheet-music"
            },
            {
              "label": "Studio Everyday",
              "value": "studio-everyday"
            }
          ],
          "hint": "Only for free printables."
        },
        {
          "name": "tier",
          "label": "Which plan unlocks the download?",
          "widget": "select",
          "options": [
            {
              "label": "Starter",
              "value": "starter"
            },
            {
              "label": "Growing",
              "value": "growing"
            },
            {
              "label": "Full Studio",
              "value": "full_studio"
            }
          ],
          "default": "growing",
          "readonly": true,
          "hint": "Set by the site admin — ask them to change it. Plans include everything below them: Starter files are available to every subscriber, Growing files to Growing and Full Studio, Full Studio files to Full Studio only."
        },
        {
          "name": "files",
          "label": "Download files (PDF)",
          "widget": "file",
          "multiple": true,
          "required": false,
          "media_folder": "/downloads",
          "public_folder": "",
          "accept": "application/pdf",
          "readonly": true,
          "hint": "Set by the site admin — ask them to change it. What a subscriber receives when they click Download — never public."
        },
        {
          "name": "download",
          "label": "Show a Download button",
          "widget": "boolean",
          "required": false,
          "default": false,
          "readonly": true,
          "hint": "Set by the site admin — ask them to change it. Off for items that are not a download (an online tool, a print book on Amazon) and for new items until a file is attached."
        },
        {
          "name": "tags",
          "label": "Tags",
          "widget": "list",
          "required": false
        },
        {
          "name": "order",
          "widget": "hidden",
          "required": false
        },
        {
          "name": "description",
          "label": "Summary for Google and social media",
          "widget": "text",
          "required": false,
          "maxlength": 300,
          "hint": "One or two sentences. Shown under the title in Google results and when the page is shared."
        },
        {
          "name": "ogImage",
          "label": "Image when shared on social media",
          "widget": "image",
          "required": false,
          "hint": "Optional. Without one, the main image is used."
        },
        {
          "name": "body",
          "label": "Product description",
          "widget": "richtext",
          "modes": [
            "rich_text",
            "raw"
          ],
          "hint": "To add a YouTube or TED video, choose Insert › Video."
        }
      ]
    },
    {
      "name": "books",
      "label": "Books",
      "label_singular": "Book",
      "icon": "menu_book",
      "description": "The Mission Start, Adventure and Success books.",
      "folder": "content-site/src/content/books",
      "extension": "md",
      "format": "yaml-frontmatter",
      "create": true,
      "slug": "{{series}}-{{slug}}",
      "thumbnail": "previewImage",
      "summary": "{{title}}",
      "view_groups": [
        {
          "label": "Series",
          "field": "series"
        }
      ],
      "fields": [
        {
          "name": "title",
          "label": "Book title",
          "widget": "string"
        },
        {
          "name": "series",
          "label": "Series",
          "widget": "select",
          "options": [
            {
              "label": "Mission Start",
              "value": "start"
            },
            {
              "label": "Mission Adventure",
              "value": "adventure"
            },
            {
              "label": "Mission Success",
              "value": "success"
            }
          ]
        },
        {
          "name": "previewImage",
          "label": "Cover",
          "widget": "image",
          "required": false
        },
        {
          "name": "tier",
          "label": "Which plan unlocks the download?",
          "widget": "select",
          "options": [
            {
              "label": "Starter",
              "value": "starter"
            },
            {
              "label": "Growing",
              "value": "growing"
            },
            {
              "label": "Full Studio",
              "value": "full_studio"
            }
          ],
          "default": "growing",
          "readonly": true,
          "hint": "Set by the site admin — ask them to change it. Plans include everything below them: Starter files are available to every subscriber, Growing files to Growing and Full Studio, Full Studio files to Full Studio only."
        },
        {
          "name": "files",
          "label": "Download files (PDF)",
          "widget": "file",
          "multiple": true,
          "required": false,
          "media_folder": "/downloads",
          "public_folder": "",
          "accept": "application/pdf",
          "readonly": true,
          "hint": "Set by the site admin — ask them to change it. What a subscriber receives when they click Download — never public."
        },
        {
          "name": "download",
          "label": "Show a Download button",
          "widget": "boolean",
          "required": false,
          "default": false,
          "readonly": true,
          "hint": "Set by the site admin — ask them to change it. Off for items that are not a download (an online tool, a print book on Amazon) and for new items until a file is attached."
        },
        {
          "name": "description",
          "label": "Summary for Google and social media",
          "widget": "text",
          "required": false,
          "maxlength": 300,
          "hint": "One or two sentences. Shown under the title in Google results and when the page is shared."
        },
        {
          "name": "ogImage",
          "label": "Image when shared on social media",
          "widget": "image",
          "required": false,
          "hint": "Optional. Without one, the main image is used."
        },
        {
          "name": "body",
          "label": "Book description",
          "widget": "richtext",
          "modes": [
            "rich_text",
            "raw"
          ],
          "hint": "To add a YouTube or TED video, choose Insert › Video."
        }
      ]
    },
    {
      "name": "settings",
      "label": "Redirects",
      "icon": "alt_route",
      "description": "Send visitors from an old address to a new one.",
      "files": [
        {
          "name": "redirects",
          "label": "Moved pages",
          "file": "content-site/src/data/redirects.json",
          "format": "json",
          "fields": [
            {
              "name": "redirects",
              "label": "Redirects",
              "label_singular": "Redirect",
              "widget": "list",
              "required": false,
              "summary": "{{from}} → {{to}}",
              "hint": "Use when a page moves or is removed, so old links and Google results still work.",
              "fields": [
                {
                  "name": "from",
                  "label": "Old address",
                  "widget": "string",
                  "pattern": [
                    "^/\\S*$",
                    "Start with / and leave out the domain, for example /old-page/"
                  ],
                  "hint": "The path only, for example /old-page/"
                },
                {
                  "name": "to",
                  "label": "New address",
                  "widget": "string",
                  "pattern": [
                    "^(/|https://)\\S*$",
                    "Start with / for a page on this site, or https:// for another site"
                  ],
                  "hint": "A path on this site, for example /blog/new-page/, or a full https:// link."
                },
                {
                  "name": "permanent",
                  "label": "Permanent move",
                  "widget": "boolean",
                  "required": false,
                  "default": true,
                  "hint": "Leave on unless the old page is coming back."
                },
                {
                  "name": "note",
                  "label": "Note (for you)",
                  "widget": "string",
                  "required": false
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
