[ { "name": "name", "type": "Text", "required": true, "validations": [ { "size": { "min": 0, "max": 50 }, "message": "Too long!!" } ] }, { "name": "slug", "type": "Text", "required": true, "validations": [ { "unique": true } ] }, { "name": "publisher", "type": "Text", "required": true, "validations": [ { "size": { "min": 0, "max": 20 } } ] }, { "name": "description", "type": "Text", "required": true, "validations": [ { "size": { "min": 0, "max": 140 }, "message": "Too long!!" } ] }, { "name": "framework", "type": "Array", "required": true, "validations": [ { "size": { "max": 2, "min": 0 } } ], "items": [ { "in": [ "Next.js", "Svelte", "React", "Vue", "Python", "Flask", "Nuxt", "Qwik", "Astro", "Solid", "Preact", "Gatsby", "Angular", "Remix", "Hugo", "Other" ] } ] }, { "name": "type", "type": "Array", "required": true, "validations": [ { "size": { "min": 1, "max": 3 } } ], "items": [ { "in": [ "Starter", "Ecommerce", "Blog", "AI", "Edge Functions", "Edge Middleware", "Global Config", "Portfolio", "Virtual Event", "SaaS", "Documentation", "Multi tenant-apps", "Cron", "Realtime Apps", "Monorepos", "Web3" ] } ] }, { "name": "css", "type": "Array", "required": true, "validations": [ { "size": { "min": 1, "max": 2 } } ], "items": [ { "in": [ "Tailwind", "Chakra", "Radix UI", "CSS Modules", "Material UI", "Styled Components", "Pinceau", "CSS", "CSS-in-JSX", "None" ] } ] }, { "name": "githubUrl", "type": "Text", "required": true, "validations": [ { "regexp": { "pattern": "^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-/]))?$", "flags": null } } ] }, { "name": "demoUrl", "type": "Text", "required": true, "validations": [ { "regexp": { "pattern": "^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-/]))?$", "flags": null } } ] }, { "name": "relatedTemplates", "type": "Array", "required": true, "validations": [ { "size": { "min": 1, "max": 4 } } ], "items": [ { "linkContentType": ["templates"] } ] }, { "name": "deployUrl", "type": "Text", "required": true, "validations": [ { "regexp": { "pattern": "^https://vercel.com/new/clone", "flags": null } } ] } ]