Accessible Zesty.io JSON Object
{
"page_title_and_description": "<h1>ROI calculator</h1>\n<p>Use the tool below to determine savings and return by switching from your current CMS to Zesty.</p>",
"header_graphic": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e226664-nkhr7r",
"url": "https://kfg6bckb.media.zestyio.com/Header.png"
}
]
},
"widget_title_and_description": "<h3 dir=\"ltr\">Your Current Costs</h3>\n<p dir=\"ltr\">Provide your current information below on a monthly basis to calculate your potential ROI with Zesty.io. The more values you provide, the more complete and personalized your results will be.</p>",
"calculations_title": "Calculate your ROI",
"results_title": "Results summary",
"cta_button_text": "Download your ROI report",
"meta": {
"type": "item",
"model_name": "roi_calculator",
"model_alternate_name": "RoiCalculator",
"zuid": "7-e8ebbba88f-pzq2p5",
"createdAt": "2022-07-07 15:51:08",
"updatedAt": "2022-07-07 15:51:08",
"listed": "1",
"version": "6",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-82e1ad9d8d-c2rq2z",
"name": "roi_calculator",
"label": "ROI calculator",
"resourceURI": "https://www.zesty.io/-/instant/6-82e1ad9d8d-c2rq2z.json"
},
"web": {
"url": "https://www.zesty.io/roi-calculator/",
"uri": "/roi-calculator/",
"fragment": "roi-calculator",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-07-07 15:51:08",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "ROI calculator",
"seo_meta_title": "ROI calculator",
"seo_meta_description": "",
"seo_meta_keywords": null
}
},
"zestyProductionMode": true,
"zestyInstanceZUID": "8-aaeffee09b-7w6v22",
"zestyBaseURL": "https://www.zesty.io",
"navigationTree": [
{
"url": "/",
"title": "Zesty.io: Simplify digital. Maximize results.",
"zuid": "7-31209c-g7qsjg"
},
{
"url": "/about/",
"title": "About Zesty.io",
"zuid": "7-e93178-vqvclg"
},
{
"url": "/about/brand/",
"title": "Brand",
"zuid": "7-8aa28788ef-1g0tq0"
},
{
"url": "/about/contact-old/",
"title": "Contact",
"zuid": "7-71c42fc-2zmt7f"
},
{
"url": "/about/contact/digital-transformation/",
"title": null,
"zuid": "7-caebffc185-35545b"
},
{
"url": "/accounts-dashboard-marketing/",
"title": "Accounts Dashboard Marketing",
"zuid": "7-e4e5d3b0ee-tqr69f"
},
{
"url": "/agency-partners/",
"title": "Zesty.io Agency and Implementation Partners",
"zuid": "7-e6d9d0e9bb-tcfk3s"
},
{
"url": "/agency-partners/deal-registration/",
"title": "Agency Deal Registration",
"zuid": "7-baefc8bfa3-qwmwgd"
},
{
"url": "/agency-partners/partner-program-benefits/",
"title": "Zesty Partner Program Benefits",
"zuid": "7-94d1dcd09d-dk6xj5"
},
{
"url": "/agency-partners/partner-program-directory/",
"title": "Partner Program Directory",
"zuid": "7-f294c798d6-f3ld4p"
},
{
"url": "/agency/",
"title": "Agency",
"zuid": "7-c8db30-92zj8p"
},
{
"url": "/ai/",
"title": "Introducing The First AI Powered Content Assistant in a CMS",
"zuid": "7-96c1a4b4a8-h8533f"
},
{
"url": "/announcement/",
"title": "Announcement",
"zuid": "7-f73ce4-h6c9sv"
},
{
"url": "/business/",
"title": "Business",
"zuid": "7-143a5c-284xs2"
},
{
"url": "/buying-journey/",
"title": "Buying Journey",
"zuid": "7-c02998-35tvb1"
},
{
"url": "/capterra/",
"title": "Build content at scale with the modern CMS",
"zuid": "7-ce85b4e5cc-fsntfn"
},
{
"url": "/careers/",
"title": "Careers",
"zuid": "7-ba90a2c4de-1zdf8g"
},
{
"url": "/case-studies/",
"title": "Case Studies",
"zuid": "7-fae5c7a5b6-jrp91s"
},
{
"url": "/chat/",
"title": "chat",
"zuid": "7-a889c98bdd-hs6w6l"
},
{
"url": "/clients/",
"title": "Zesty.io Clients and Projects",
"zuid": "7-eac0bdd6c8-4qdqw8"
},
{
"url": "/contact/",
"title": "Contact Zesty.io",
"zuid": "7-cec987fcf5-9bht2z"
},
{
"url": "/content-creation/",
"title": "Content Creation",
"zuid": "7-b4d234-5pdklm"
},
{
"url": "/content-marketing-1/",
"title": "Content Marketing",
"zuid": "7-259dc4-679fch"
},
{
"url": "/content-resources/",
"title": "Content Resources",
"zuid": "7-8cf8f09ff5-sx5pqs"
},
{
"url": "/content-strategy/",
"title": "Content Strategy",
"zuid": "7-d2cbd4-2t92sh"
},
{
"url": "/cost/",
"title": "Cost",
"zuid": "7-505860-hm8dgt"
},
{
"url": "/demos/",
"title": "Demos",
"zuid": "7-c4b3a9a284-vpwlrp"
},
{
"url": "/demos/video/",
"title": "Zesty demo video",
"zuid": "7-b0dbd7e2e8-m75ns3"
},
{
"url": "/developer-resources/",
"title": "Developer Resources",
"zuid": "7-d2a0d1fed1-5s8hf1"
},
{
"url": "/developers-guide-to-selecting-a-design-system/",
"title": "Developer's Guide to Selecting a Design System",
"zuid": "7-a0cbb780bd-jrxcms"
},
{
"url": "/developers-guide-to-selecting-a-design-system/thank-you/",
"title": "Thank you for downloading the Developer's Guide to Selecting a Design System",
"zuid": "7-ac8c85a8fa-9nn1sn"
},
{
"url": "/developers-tag/",
"title": "Developers",
"zuid": "7-24dd9c-twt7tx"
},
{
"url": "/developers/",
"title": "The Headless CMS for Developers",
"zuid": "7-7135b8d-5gx8c5"
},
{
"url": "/devops/",
"title": "DevOps",
"zuid": "7-4097a8-zlwzlz"
},
{
"url": "/discover/",
"title": "Discover the next generation headless CMS",
"zuid": "7-facfcbf68b-zpl8tj"
},
{
"url": "/drupal/",
"title": "Drupal",
"zuid": "7-632b04-cz44nc"
},
{
"url": "/dxp-rfp-template/",
"title": "Digital experience platform buyer's guide and RFP template",
"zuid": "7-da98be8a84-b6dwqq"
},
{
"url": "/education/",
"title": "Education",
"zuid": "7-220328-gz4mtw"
},
{
"url": "/enterprise-marketing/",
"title": "Enterprise Marketing",
"zuid": "7-18c434-p1dsqv"
},
{
"url": "/events-and-webinars/",
"title": "Zesty.io Events and Webinars",
"zuid": "7-f0bff8e789-4d6vsq"
},
{
"url": "/events-and-webinars/test-event/",
"title": "test event",
"zuid": "7-ead8daf39e-58qx45"
},
{
"url": "/features/",
"title": "Digital Experience Platform Features - Zesty.io",
"zuid": "7-d8aae8b2ea-kkd2br"
},
{
"url": "/features/cdn-hosting/",
"title": "CDN Hosting",
"zuid": "7-d8c2c59ff7-qcpmlc"
},
{
"url": "/features/digital-governance/",
"title": "Digital governance",
"zuid": "7-80ced48eeb-4h6kmh"
},
{
"url": "/features/elastic-scalability/",
"title": "Scalable headless CMS",
"zuid": "7-f8b5a5ece9-48hprf"
},
{
"url": "/features/headless-cms/",
"title": "Headless CMS Features - Zesty.io",
"zuid": "7-f6f3ffc7ec-rcznxd"
},
{
"url": "/features/localization/",
"title": "Headless localization",
"zuid": "7-b2f8c4f6cc-8gp6cv"
},
{
"url": "/features/multi-language/",
"title": "Headless CMS Multi Language - Zesty.io",
"zuid": "7-a4e8c0cea2-bd9ptd"
},
{
"url": "/features/multi-site-management/",
"title": "Multi Site Management - Zesty.io",
"zuid": "7-88a993b59f-kxh3kb"
},
{
"url": "/features/seo/",
"title": "Headless CMS SEO - Zesty.io",
"zuid": "7-ecb7a6818f-hdp3zq"
},
{
"url": "/gaming/",
"title": "Gaming",
"zuid": "7-119d5c-cnh6qc"
},
{
"url": "/global-marketing/",
"title": "Global Marketing",
"zuid": "7-1ea9b4-kfwbr4"
},
{
"url": "/google-cloud/",
"title": "Google Cloud",
"zuid": "7-91dbc4-87w4m8"
},
{
"url": "/google/",
"title": "Google",
"zuid": "7-409468-gsg1jf"
},
{
"url": "/headless-1/",
"title": "Headless",
"zuid": "7-7f0dec-j3qvbp"
},
{
"url": "/headless-cms-buyers-guide-and-rfp-template/",
"title": "Headless CMS buyer's guide and RFP template",
"zuid": "7-e2f7f5eefe-j83lkz"
},
{
"url": "/headless-cms-buyers-guide-and-rfp-template/thank-you/",
"title": "Thank you for downloading the guide.",
"zuid": "7-90dcd98794-t6f177"
},
{
"url": "/hiring/",
"title": "Hiring",
"zuid": "7-e86978-pqvpjq"
},
{
"url": "/homepagerevamp/",
"title": "HomepageRevamp",
"zuid": "7-d098aefaf6-zg55b6"
},
{
"url": "/influencer-marketing/",
"title": "Influencer Marketing",
"zuid": "7-f32b04-p20xz1"
},
{
"url": "/instagram/",
"title": "Instagram",
"zuid": "7-ccfda4-10f8fm"
},
{
"url": "/integrations/",
"title": "Integrations",
"zuid": "7-d696f8a8e5-xjfnbv"
},
{
"url": "/integrations/headless-cms-react/",
"title": "Headless CMS React Integration - Zesty.io",
"zuid": "7-9ef5ce8af1-zntw59"
},
{
"url": "/integrations/mui-nextjs/",
"title": "Launch a Next.js project with Material UI instantly",
"zuid": "7-bcc6b7acb3-xf9v5g"
},
{
"url": "/integrations/nextjs-cms/",
"title": "The Leading Headless CMS for Next.js - Zesty.io",
"zuid": "7-d48acf90e9-pchhtq"
},
{
"url": "/integrations/nextjs-team-benefits/",
"title": "Improve the Next.js experience with Zesty.io ",
"zuid": "7-b8fd9b89fb-1smh69"
},
{
"url": "/integrations/the-visual-cms-for-next-js/",
"title": "The visual CMS for Next.js",
"zuid": "7-c6efe0b595-gq0rs0"
},
{
"url": "/internationalization/",
"title": "Internationalization",
"zuid": "7-0635f0-cjbn8c"
},
{
"url": "/interview/",
"title": "Interview",
"zuid": "7-7b26ac-3qn1ml"
},
{
"url": "/iot/",
"title": "IoT",
"zuid": "7-9651c8-5wxkx8"
},
{
"url": "/join-page-content/",
"title": "Join page content",
"zuid": "7-92e7c4e2ef-8krbzn"
},
{
"url": "/landing-pages/",
"title": "Landing Pages",
"zuid": "7-8468f8-06qmvb"
},
{
"url": "/layouts-test-page-2/",
"title": "Layouts-test-page-2",
"zuid": "7-8edaaafbd1-v9v6j7"
},
{
"url": "/layouts-test-page/",
"title": "Layouts-test-page",
"zuid": "7-c6b7e986f3-2g4m1t"
},
{
"url": "/lead-generation/",
"title": "Lead Generation",
"zuid": "7-9d4e68-lw5gfc"
},
{
"url": "/legal/",
"title": "Legal",
"zuid": "7-713ad77-b7xsgs"
},
{
"url": "/legal/end-user-license-agreement/",
"title": "Zesty.io End User License Agreement",
"zuid": "7-713b244-30r3bw"
},
{
"url": "/legal/online-service-subscription-agreement/",
"title": "Online Service Subscription Agreement",
"zuid": "7-76e0fe7-q0phbn"
},
{
"url": "/legal/privacy-policy/",
"title": "Privacy Policy",
"zuid": "7-713ae23-wg19b5"
},
{
"url": "/legal/reseller-terms-and-conditions/",
"title": "RESELLER GENERAL TERMS AND CONDITIONS",
"zuid": "7-76b9e54-xqwtwn"
},
{
"url": "/login/",
"title": "Login to Zesty.io",
"zuid": "7-f49ce69ac5-fp4pc9"
},
{
"url": "/meet/",
"title": "Schedule a Meeting with Zesty.io",
"zuid": "7-eb10ac-q6v071"
},
{
"url": "/mindshare/",
"title": "Zesty.io Blog",
"zuid": "7-8f2cf4-450mhk"
},
{
"url": "/mindshare/10-areas-to-consider-when-choosing-a-new-design-system/",
"title": "Top 10 areas to consider when choosing a new design system",
"zuid": "7-b4de9b88be-7cxl5j"
},
{
"url": "/mindshare/10-innovative-digital-marketing-strategies-a-practical-guide-for-marketers/",
"title": "10 Innovative Digital Marketing Strategies: A Practical Guide for Marketers",
"zuid": "7-8a9ceee8e3-snfhjp"
},
{
"url": "/mindshare/12-digital-experience-platforms-to-consider/",
"title": "12 Digital Experience Platforms to Consider in 2022",
"zuid": "7-d2dce8b0c5-m0l8bw"
},
{
"url": "/mindshare/5-steps-to-making-google-analytics-gdpr-compliant/",
"title": "5 Steps to Making Google Analytics GDPR Compliant",
"zuid": "7-aa9a98daa0-x13n6b"
},
{
"url": "/mindshare/a-guide-for-evaluating-the-headless-cms-landscape-2023/",
"title": "A Guide For Evaluating the Headless CMS Landscape 2023",
"zuid": "7-a6dacea8a3-xqj7k2"
},
{
"url": "/mindshare/activity-log/",
"title": "Leverage Zesty's Activity Log for greater insight into your team's activity history",
"zuid": "7-a4fac3dd8e-mg6jr0"
},
{
"url": "/mindshare/announcing-the-new-schema-app-experience/",
"title": "Announcing the New Schema App Experience",
"zuid": "7-bc9f8ab4cb-1qvq6x"
},
{
"url": "/mindshare/announcing-the-new-zesty-media-app-experience/",
"title": "Announcing the New Zesty Media App Experience",
"zuid": "7-e0aed0afc4-jg2fn7"
},
{
"url": "/mindshare/august-2022-release-notes/",
"title": "Onward and upward: August 2022 Release Notes",
"zuid": "7-80c490c0c2-4n1m3h"
},
{
"url": "/mindshare/authors/",
"title": "Mindshare Authors",
"zuid": "7-c4b8ac-cpzt6j"
},
{
"url": "/mindshare/authors/andres-galindo/",
"title": "Andres Galindo",
"zuid": "7-c4d181a19a-grb0n6"
},
{
"url": "/mindshare/authors/chloe-spilotro/",
"title": "Chloe Spilotro",
"zuid": "7-0e1e8c-915wzz"
},
{
"url": "/mindshare/authors/dominic-tarantino/",
"title": "Dominic Tarantino",
"zuid": "7-808afefebb-hr0m9m"
},
{
"url": "/mindshare/authors/dustin-horning/",
"title": "Dustin Horning",
"zuid": "7-a7b318-6ns6d0"
},
{
"url": "/mindshare/authors/gerry-widmer/",
"title": "Gerry Widmer",
"zuid": "7-e40a3c-pt6qch"
},
{
"url": "/mindshare/authors/gian-espinosa/",
"title": "Gian Espinosa",
"zuid": "7-f8d78588ce-q444k3"
},
{
"url": "/mindshare/authors/gisele-blair/",
"title": "Gisele Blair",
"zuid": "7-719cf6e-llw47w"
},
{
"url": "/mindshare/authors/grant-glidewell/",
"title": "Grant Glidewell",
"zuid": "7-3060bc-kdpdnq"
},
{
"url": "/mindshare/authors/jomar-montuya/",
"title": "Jomar Montuya",
"zuid": "7-f4f4c987fb-z8htfv"
},
{
"url": "/mindshare/authors/katie-moser/",
"title": "Katie Moser",
"zuid": "7-9aadcf9f99-gdtxtg"
},
{
"url": "/mindshare/authors/kim-koga/",
"title": "Kim Koga",
"zuid": "7-f08881beb1-2zvg5k"
},
{
"url": "/mindshare/authors/nate-broughton/",
"title": "Nate Broughton",
"zuid": "7-96adc9ede2-6c7bdg"
},
{
"url": "/mindshare/authors/randy-apuzzo/",
"title": "Randy Apuzzo",
"zuid": "7-38ed98-hmvkjg"
},
{
"url": "/mindshare/authors/ronak-shah/",
"title": "Ronak Shah",
"zuid": "7-97579c-rwbnz0"
},
{
"url": "/mindshare/authors/simon-prickett/",
"title": "Simon Prickett",
"zuid": "7-c2e2f0-729n0g"
},
{
"url": "/mindshare/authors/stefanie-serpa/",
"title": "Stefanie Serpa",
"zuid": "7-c6e6e6b3f3-60k8jp"
},
{
"url": "/mindshare/authors/stuart-runyan/",
"title": "Stuart Runyan",
"zuid": "7-df5f58-z8vj6q"
},
{
"url": "/mindshare/authors/todd-sabo/",
"title": "Todd Sabo",
"zuid": "7-e8ffc0d8f6-80qqmh"
},
{
"url": "/mindshare/authors/wei-en-wong/",
"title": "Wei-En Wong",
"zuid": "7-b6ecebeffa-29vw2t"
},
{
"url": "/mindshare/authors/zoshua-colah/",
"title": "Zoshua Colah",
"zuid": "7-fcb9efd3e4-nb0c1d"
},
{
"url": "/mindshare/ccpa/",
"title": "CCPA",
"zuid": "7-c493bfbc93-09lhgh"
},
{
"url": "/mindshare/choosing-a-dxp-nontechnical-considerations/",
"title": "Choosing a DXP: Non-technical Considerations",
"zuid": "7-9ecd9abf9e-4k6fhm"
},
{
"url": "/mindshare/company-announcements/",
"title": "Company Announcements",
"zuid": "7-d6869bce84-vtggsf"
},
{
"url": "/mindshare/company-announcements/kim-koga-from-english-master-to-coding-magician/",
"title": "Kim Koga: From English Master to Coding Magician",
"zuid": "7-a8ec83acb7-q5c6vn"
},
{
"url": "/mindshare/company-announcements/log4j-exploit/",
"title": "Log4j Exploit",
"zuid": "7-aec4c3d2db-tk2xqr"
},
{
"url": "/mindshare/company-announcements/open-for-applications-the-keeping-your-future-zesty-scholarship/",
"title": "Open for Applications: The Keeping Your Future Zesty Scholarship",
"zuid": "7-aeaf98b0d4-zwmmr7"
},
{
"url": "/mindshare/company-announcements/zesty-io-named-a-high-performer-in-g2-grid-summer-2021-report/",
"title": "Zesty.io Named a High Performer in G2 Grid Summer 2021 Report",
"zuid": "7-ccf7f3d28a-s35drt"
},
{
"url": "/mindshare/content-management-in-2020--what-s-next/",
"title": "Content Management in 2020: What's Next",
"zuid": "7-ecb5adeaf3-3nslnv"
},
{
"url": "/mindshare/content-marketing/",
"title": "Content Marketing",
"zuid": "7-ef87c0-cqj8b9"
},
{
"url": "/mindshare/content-marketing/21-best-landing-page-examples-of-2018/",
"title": "21 Best Landing Page Examples of 2018 ",
"zuid": "7-e88a90-h6v977"
},
{
"url": "/mindshare/content-marketing/50-high-converting-content-ideas/",
"title": "50 High Converting Content Ideas",
"zuid": "7-a6ce96d6b2-24885b"
},
{
"url": "/mindshare/content-marketing/automated-accessibility-testing/",
"title": "Automated Accessibility Testing",
"zuid": "7-c8e4d5acbf-t626jb"
},
{
"url": "/mindshare/content-marketing/birth-of-a-frankensite/",
"title": "Birth of a Frankensite",
"zuid": "7-d2cb8590d7-h65l94"
},
{
"url": "/mindshare/content-marketing/congratulations-to-the-winners-of-the-keeping-your-future-zesty-scholarship/",
"title": "Congratulations to the Winners of the Keeping Your Future Zesty Scholarship!",
"zuid": "7-38fd30-z561mg"
},
{
"url": "/mindshare/content-marketing/content-marketing-strategy-how-to-develop-content-that-works/",
"title": "Content Marketing Strategy – How to Develop Content that Works ",
"zuid": "7-d37d0c-6s17zm"
},
{
"url": "/mindshare/content-marketing/do-not-let-your-marketing-website-become-a-frankensite/",
"title": "Do not let your Marketing Website become a Frankensite",
"zuid": "7-b9ff04-4n9tcs"
},
{
"url": "/mindshare/content-marketing/dominate-google-in-2019-site-speed-long-form-content/",
"title": "Dominate Google in 2019: Site Speed + Long Form Content",
"zuid": "7-a8cf81a2a8-98m53c"
},
{
"url": "/mindshare/content-marketing/experiences-for-mankind-wins-district-addy-award-for-sony-alpha-website-deployed-on-zesty-io/",
"title": "Experiences for Mankind Wins District Addy Award for Sony Alpha Website deployed on Zesty.io",
"zuid": "7-5a0e20-cw1l4n"
},
{
"url": "/mindshare/content-marketing/how-much-does-a-website-migration-cost/",
"title": "How Much Does a Website Migration Cost?",
"zuid": "7-f4e4b5d8ed-x73sdz"
},
{
"url": "/mindshare/content-marketing/how-to-add-an-emoji-favicon-to-your-website/",
"title": "How to add an Emoji Favicon to your Website",
"zuid": "7-e0d680dd8f-472mtb"
},
{
"url": "/mindshare/content-marketing/how-to-choose-the-best-cms-platforms-for-marketing/",
"title": "How to Choose the Best CMS Platforms for Marketing ",
"zuid": "7-6a79e8-tqlgq8"
},
{
"url": "/mindshare/content-marketing/how-to-create-a-table-of-contents-for-blog-articles/",
"title": "How to Create a Table of Contents for Blog Articles",
"zuid": "7-f897c5baaf-svlgjb"
},
{
"url": "/mindshare/content-marketing/how-to-fix-social-media-article-shares/",
"title": "How to Fix Social Media Article Shares",
"zuid": "7-c2a0b4e1d6-4jh76b"
},
{
"url": "/mindshare/content-marketing/how-to-optimize-images-for-the-web-a-step-by-step-guide/",
"title": "How to Optimize Images for the Web | A Step-by-Step Guide",
"zuid": "7-184de4-hl59kj"
},
{
"url": "/mindshare/content-marketing/how-we-redesigned-our-website-and-increased-our-seo-rankings/",
"title": "How We Redesigned Our Website and Increased Our SEO Rankings",
"zuid": "7-c6ceefb4e8-4m0qlw"
},
{
"url": "/mindshare/content-marketing/omni-channel-marketing-made-easy/",
"title": "Omni Channel Marketing Made Easy",
"zuid": "7-70a768-llk97v"
},
{
"url": "/mindshare/content-marketing/scariest-website-horror-stories-of-2019/",
"title": "Scariest Website Horror Stories of 2019",
"zuid": "7-a8e5f2de9f-phv0m0"
},
{
"url": "/mindshare/content-marketing/seo-content-writing--the-2018-rulebook/",
"title": "SEO Content Writing: The 2018 Rulebook",
"zuid": "7-c3f524-jhzk1j"
},
{
"url": "/mindshare/content-marketing/sony-alpha-adopts-zesty-io-saas-content-platform/",
"title": "Sony Alpha Adopts Zesty.io SaaS Content Platform",
"zuid": "7-9fd11c-z73hvt"
},
{
"url": "/mindshare/content-marketing/stuart-runyan-joins-the-zesty-io-team/",
"title": "Stuart Runyan joins the Zesty.io team!",
"zuid": "7-003b20-tj6scj"
},
{
"url": "/mindshare/content-marketing/the-complete-guide-to-content-modeling/",
"title": "The Complete Guide to Content Modeling",
"zuid": "7-c6fbd4-rmk5tm"
},
{
"url": "/mindshare/content-marketing/the-gdpr-compliant-website-starter-checklist/",
"title": "The GDPR Compliant Website Starter Checklist",
"zuid": "7-459ffc-0wh30f"
},
{
"url": "/mindshare/content-marketing/top-seo-tips-for-2019/",
"title": "Top SEO Tips for 2019",
"zuid": "7-788702d-xr4m1m"
},
{
"url": "/mindshare/content-marketing/what-is-a-landing-page/",
"title": "What is a Landing Page? (All Questions Answered)",
"zuid": "7-b67640-bndw81"
},
{
"url": "/mindshare/content-marketing/what-is-a-microsite-top-5-microsite-examples-of-2019-update/",
"title": "What is a Microsite? | Top 19 Microsite Examples of 2019",
"zuid": "7-4fc918-sddm4m"
},
{
"url": "/mindshare/content-marketing/what-is-content-marketing-guide-to-content-creation/",
"title": "What is Content Marketing? | Guide to Content Creation",
"zuid": "7-db4328-73stk1"
},
{
"url": "/mindshare/content-marketing/which-came-first-content-or-design/",
"title": "Which Came First: Content or Design?",
"zuid": "7-94fcfef682-0nbttn"
},
{
"url": "/mindshare/content-marketing/wordpress-zero-day-vulnerability-prevent-with-zesty-io/",
"title": "WordPress Zero Day Vulnerability: Prevent With Zesty.io",
"zuid": "7-cfecbc-2s59l7"
},
{
"url": "/mindshare/create-some-text/",
"title": "Create some text",
"zuid": "7-fccef8aff3-lrm0g0"
},
{
"url": "/mindshare/customer-stories/",
"title": "Customer Stories",
"zuid": "7-7257e20-4h0svz"
},
{
"url": "/mindshare/customer-stories/astroglide-uses-zesty-io-to-drive-engagement-and-education/",
"title": "Astroglide Uses Zesty.io to Drive Engagement and Education",
"zuid": "7-72489c9-h6tv2s"
},
{
"url": "/mindshare/customer-stories/cornershop-by-uber-selects-zesty-io-to-drive-global-expansion-effort/",
"title": "Cornershop by Uber Selects Zesty.io to Drive Global Expansion Effort",
"zuid": "7-ea86a588cd-2ncs55"
},
{
"url": "/mindshare/customer-stories/digital-insurer-singlife-selects-zesty-io-as-dxp-to-support-global-expansion/",
"title": "Digital Insurer Singlife Selects Zesty.io as DXP to Support Global Expansion",
"zuid": "7-d0f18ff7ac-fkhwsg"
},
{
"url": "/mindshare/customer-stories/enterprise-in-the-services-industry-migrates-15plus-properties-to-zesty-io-in-1-year/",
"title": "Enterprise in the Services Industry Migrates 15+ Properties to Zesty.io in 1 Year",
"zuid": "7-8cffa696a8-qf0kgg"
},
{
"url": "/mindshare/customer-stories/fintech-startup-uses-zesty-io-for-headless-architecture-to-achieve-omnichannel-content-marketing-success/",
"title": "FinTech with 5M+ Users Chooses Zesty.io for Headless Architecture to achieve Omnichannel Content Marketing Success",
"zuid": "7-73d6b83-p65j1l"
},
{
"url": "/mindshare/customer-stories/jackpocket-selects-zesty-io-to-supercharge-content-production/",
"title": "Like Winning the Lottery: Jackpocket Selects Zesty.io to Supercharge Content Production",
"zuid": "7-daf9d58d88-br1t76"
},
{
"url": "/mindshare/customer-stories/petdesk-adds-value-to-software-offering-with-websites/",
"title": "PetDesk Adds Value to Software Offering with Bundled Websites",
"zuid": "7-72491de-hstv7t"
},
{
"url": "/mindshare/customer-stories/rocket-league-launches-e-sports-site-celebrating-players-and-tournaments/",
"title": "Rocket League Launches E-Sports Site Celebrating Players and Tournaments with Zesty.io",
"zuid": "7-73ffb3e-xm959z"
},
{
"url": "/mindshare/customer-stories/rocket-league-uses-zesty-io-for-website-and-in-game-omnichannel-content-distribution/",
"title": "Rocket League Uses Zesty.io for Website and In-Game Omnichannel Content Distribution",
"zuid": "7-73d8a26-grn05q"
},
{
"url": "/mindshare/customer-stories/sony-uses-zesty-io-to-accelerate-launch-of-alpha-universe/",
"title": "Sony Uses Zesty.io to Accelerate Launch of Alpha Universe",
"zuid": "7-7247fb9-lnx4gq"
},
{
"url": "/mindshare/cypress-testing-pointer-css-media-feature/",
"title": "Cypress Testing: Pointer CSS media feature",
"zuid": "7-90d2eda6e7-25gr13"
},
{
"url": "/mindshare/developer-how-tos/",
"title": "Developer How-Tos",
"zuid": "7-dcb98f9088-gwr6w0"
},
{
"url": "/mindshare/developer-how-tos/building-a-content-feed-for-any-screen/",
"title": "Building a Content Feed for Any Screen",
"zuid": "7-8a98cbe3c5-fzqsmd"
},
{
"url": "/mindshare/developer-how-tos/building-javascript-cookies-everything-you-need-to-know/",
"title": "Building Javascript Cookies: Everything You Need To Know ",
"zuid": "7-9568bc-c8b8ql"
},
{
"url": "/mindshare/developer-how-tos/fighting-submission-bots-with-honeypot-fields/",
"title": "Fighting Submission Bots with Honeypot Fields",
"zuid": "7-78b11e9-nh3d1p"
},
{
"url": "/mindshare/developer-how-tos/how-to-build-a-blog-in-zesty-io/",
"title": "How to Build a Blog in Zesty.io",
"zuid": "7-b6f391aacb-537f05"
},
{
"url": "/mindshare/developer-how-tos/how-to-build-a-google-cloud-function-example-for-nodejs-with-yaml-secrets-cors-and-local-testing/",
"title": "How to Build a Google Cloud Function in NodeJS with YAML secrets, CORS, and local testing",
"zuid": "7-b8f2bed7d3-7pdw1z"
},
{
"url": "/mindshare/developer-how-tos/how-to-build-a-landing-page-with-bootstrap-in-minutes/",
"title": "How to Build a Landing Page with Bootstrap in Minutes",
"zuid": "7-ccb5a697df-f6rstl"
},
{
"url": "/mindshare/developer-how-tos/how-to-build-a-microsite-in-one-day/",
"title": "How to Build a Microsite in One Day",
"zuid": "7-734499e-pcwwp6"
},
{
"url": "/mindshare/developer-how-tos/how-to-personalize-content-on-site-with-salesforce/",
"title": "How to Personalize Content On Site with Salesforce",
"zuid": "7-b2f1ffd0ec-754cxw"
},
{
"url": "/mindshare/developer-how-tos/how-to-write-google-cloud-functions-with-python-3/",
"title": "How To Write Google Cloud Functions with Python 3",
"zuid": "7-01a8cc-cstr5m"
},
{
"url": "/mindshare/developer-how-tos/microservices-security-best-practices/",
"title": "7 Microservices Security Best Practices",
"zuid": "7-8a94d0a998-rsqgrs"
},
{
"url": "/mindshare/developer-how-tos/nextjs-pros-and-cons/",
"title": "Next.js Pros and Cons",
"zuid": "7-80a58abfd3-5f89vp"
},
{
"url": "/mindshare/developer-how-tos/sending-encrypted-files-with-keybase/",
"title": "Sending Encrypted Files with Keybase",
"zuid": "7-c6a9d0928d-s4hhkp"
},
{
"url": "/mindshare/developer-how-tos/the-ultimate-guide-to-building-a-voice-application/",
"title": "The Ultimate Guide to Building a Voice Application",
"zuid": "7-736cbf2-r846nf"
},
{
"url": "/mindshare/developer-how-tos/using-zesty-io-headless-cms-with-react/",
"title": "Using Zesty.io Headless CMS with React",
"zuid": "7-6b60a4-1h99v0"
},
{
"url": "/mindshare/developer-how-tos/writing-content-to-zesty-io-using-a-raspberry-pi/",
"title": "Writing Content to Zesty.io using a Raspberry Pi",
"zuid": "7-d8b6efd5fc-9qjw99"
},
{
"url": "/mindshare/developer-how-tos/writing-google-cloud-functions-in-go/",
"title": "Writing Google Cloud Functions in Go",
"zuid": "7-dceecceec6-sgx979"
},
{
"url": "/mindshare/developers-guide-to-javascript-frameworks-2023/",
"title": "Developer's Guide to the Best JavaScript Frameworks 2023",
"zuid": "7-88d2cff491-s8t200"
},
{
"url": "/mindshare/dxp-feature-list/",
"title": "DXP Feature List: What Does a Strong Digital Experience Platform Look Like?",
"zuid": "7-b2e4e496e2-j7k2lt"
},
{
"url": "/mindshare/easily-handle-url-query-parameters-using-urlsearchparams-and-react-router/",
"title": "How to use URLSearchParams and React Router to easily handle URL query parameters",
"zuid": "7-ace685e08f-693cpp"
},
{
"url": "/mindshare/firstparty-cookies-vs-thirdparty-cookies-explaining-the-cookie-trend/",
"title": "First-Party Cookies vs Third-Party Cookies: Explaining the Cookie Trend",
"zuid": "7-b4e3dfbe8e-1j1835"
},
{
"url": "/mindshare/frontend-as-a-service-who-is-it-for/",
"title": "Frontend as a Service: Who is it for?",
"zuid": "7-88efed8d8e-5lnbbn"
},
{
"url": "/mindshare/gdpr/",
"title": "GDPR",
"zuid": "7-eaf8ed9ac8-qz4x89"
},
{
"url": "/mindshare/headless/",
"title": "Headless",
"zuid": "7-a71f6c-26dxzh"
},
{
"url": "/mindshare/headless/5-myths-about-headless-cms-debunked/",
"title": "5 Myths about Headless CMS: Debunked",
"zuid": "7-88cbd1baa5-xzzfkf"
},
{
"url": "/mindshare/headless/7-benefits-of-headless-commerce/",
"title": "7 Benefits of Headless Commerce",
"zuid": "7-a68be699c9-kdvblk"
},
{
"url": "/mindshare/headless/a-dreamy-scenario-for-content/",
"title": "A Dreamy Scenario for Content",
"zuid": "7-164d88-cv7n3f"
},
{
"url": "/mindshare/headless/best-headless-cms/",
"title": "A List of The Best Headless CMS Platforms for 2021 (Updated from 2020)",
"zuid": "7-719f814-qczgd0"
},
{
"url": "/mindshare/headless/comparing-headless-cms-contentful-with-zesty-io/",
"title": "Comparing Headless CMS Contentful with Zesty.io",
"zuid": "7-73d8c25-hqf1dd"
},
{
"url": "/mindshare/headless/content-modeling-for-headless-applications/",
"title": "Content Modeling for Headless Applications with a Headless CMS",
"zuid": "7-9682fdbae7-859xq6"
},
{
"url": "/mindshare/headless/headless-cms-pricing/",
"title": "Headless CMS Pricing",
"zuid": "7-c09697c1dc-qwf29n"
},
{
"url": "/mindshare/headless/headless-cms-seo-best-practices/",
"title": "Headless CMS SEO: Everything You Need to Know - Zesty.io",
"zuid": "7-dad591dfb0-fw7352"
},
{
"url": "/mindshare/headless/headless-cms-vs-decoupled-cms--the-ultimate-guide/",
"title": "Headless CMS Vs Decoupled CMS: The Ultimate Guide",
"zuid": "7-73c2883-5bkf92"
},
{
"url": "/mindshare/headless/headless-commerce/",
"title": "Headless Commerce: The Ultimate Guide to Headless CMS in eCommerce",
"zuid": "7-aead9cbefe-glgq7l"
},
{
"url": "/mindshare/headless/hosted-platforms-not-ideal-for-multisite-setups/",
"title": "Hosted Platforms Not Ideal for Multisite Setups",
"zuid": "7-afc68c-t65jn5"
},
{
"url": "/mindshare/headless/how-headless-fits-into-the-enterprise-technology-landscape/",
"title": "State of the Union Address: How Headless Fits Into the Enterprise Technology Landscape",
"zuid": "7-bebadcc5a7-2l52sm"
},
{
"url": "/mindshare/headless/how-to-build-a-website-with-a-headless-cms/",
"title": "How to Build a Website with a Headless CMS",
"zuid": "7-f485df92c0-540tm3"
},
{
"url": "/mindshare/headless/how-to-choose-the-best-headless-cms/",
"title": "How to Choose the Best Headless CMS",
"zuid": "7-c2c0d5fe96-xn5n4q"
},
{
"url": "/mindshare/headless/how-to-try-a-headless-cms/",
"title": "How to Try a Headless CMS",
"zuid": "7-a6dca4a0b1-d3924b"
},
{
"url": "/mindshare/headless/jamstack-cons/",
"title": "Jamstack: Are You Building Websites or Liabilities?",
"zuid": "7-a4baf79fec-1w7v0r"
},
{
"url": "/mindshare/headless/jamstack-vs-webengine/",
"title": "Jamstack vs. WebEngine",
"zuid": "7-9edec2abc4-fnn146"
},
{
"url": "/mindshare/headless/netlify-pros/",
"title": "Netlify: 4 Business Considerations Before Buying",
"zuid": "7-d88dd9db81-69j61m"
},
{
"url": "/mindshare/headless/oh-the-places-content-can-go/",
"title": "Oh the Places Content can Go!",
"zuid": "7-dcc0d7a0f1-hnk31q"
},
{
"url": "/mindshare/headless/progressive-web-apps-pwa-the-easy-guide/",
"title": "Progressive Web Apps (PWA) - The Easy Guide",
"zuid": "7-4b326c-788tj2"
},
{
"url": "/mindshare/headless/the-ultimate-guide-to-vue/",
"title": "The Ultimate Guide to Vue",
"zuid": "7-dcaca1b588-kzshrm"
},
{
"url": "/mindshare/headless/top-vue-examples-2019/",
"title": "Top Vue Examples 2019",
"zuid": "7-f6cde7ceb9-zzr42l"
},
{
"url": "/mindshare/headless/vercel-cons/",
"title": "Vercel: 3 Business Considerations Before Buying",
"zuid": "7-a8b2e6aaea-qh3qb3"
},
{
"url": "/mindshare/headless/what-is-a-headless-cms/",
"title": "What Is a Headless CMS? The complete guide to headless CMS.",
"zuid": "7-8d1d28-q8194b"
},
{
"url": "/mindshare/headless/what-is-an-apifirst-cms/",
"title": "What Is an API-First CMS?",
"zuid": "7-b4a9f1a9e3-757rwx"
},
{
"url": "/mindshare/headless/what-is-jamstack/",
"title": "What is Jamstack?",
"zuid": "7-a6c2cfada8-d0pvvv"
},
{
"url": "/mindshare/headless/what-is-the-best-mobile-app-cms-/",
"title": "What is the Best Mobile App CMS?",
"zuid": "7-73c0247-0j3r9k"
},
{
"url": "/mindshare/hello-slice-team/",
"title": "Hello Slice Team! ",
"zuid": "7-84e3efa3f6-rp7wql"
},
{
"url": "/mindshare/how-to-ab-test-on-your-website-with-a-headless-cms/",
"title": "How to A/B test on your website with a headless CMS",
"zuid": "7-faece8c19a-b8fqpz"
},
{
"url": "/mindshare/how-to-choose-a-cms-for-maximum-roi/",
"title": "How to Choose a CMS For Maximum ROI [2023 Edition]",
"zuid": "7-e6eefbecd4-01mn86"
},
{
"url": "/mindshare/how-to-create-custom-components-with-zesty-layouts-nextjs-starter/",
"title": "How to create custom Next.js components with Zesty Layouts",
"zuid": "7-d0e6e198e1-b5dt34"
},
{
"url": "/mindshare/how-to-leverage-cms-for-growth-after-series-a-b-or-c/",
"title": "How to Leverage Your CMS for Growth After a Series A, B or C",
"zuid": "7-d6c0bc97dd-0p75rh"
},
{
"url": "/mindshare/how-to-personalize-content-using-first-party-cookies-and-data/",
"title": "How to Personalize Content Using First Party Cookies and Data",
"zuid": "7-b2c796fbdd-2trl13"
},
{
"url": "/mindshare/how-we-rebuilt-our-website-with-material-ui/",
"title": "How we rebuilt our website with the Material UI design system",
"zuid": "7-c2b2ce93de-lpn188"
},
{
"url": "/mindshare/improve-franchise-performance-with-headless-cms/",
"title": "How to improve franchise performance during an economic downturn with centralized headless content management",
"zuid": "7-bac38494f5-57c95f"
},
{
"url": "/mindshare/industry-news/",
"title": "Industry News",
"zuid": "7-9481aad2b5-dw3jfb"
},
{
"url": "/mindshare/industry-news/5-major-general-data-protection-regulation-breaches-that-led-to-huge-penalties/",
"title": "5 Major General Data Protection Regulation Breaches That Led to Huge Penalties ",
"zuid": "7-ecd4dcf2ec-62zh1n"
},
{
"url": "/mindshare/industry-news/ccpa-vs-gdpr-how-it-affects-your-site/",
"title": "Compare CCPA vs GDPR: How It Affects Your Site",
"zuid": "7-86e8a5b9bb-lnrxrf"
},
{
"url": "/mindshare/industry-news/cms-considerations-for-insurance-companies/",
"title": "CMS Considerations for Insurance Companies",
"zuid": "7-b4cee6b2c3-k0ddsc"
},
{
"url": "/mindshare/industry-news/does-californias-consumer-privacy-law-impact-chief-technology-officers-more-than-chief-privacy-officers/",
"title": "Does California’s Consumer Privacy Law Impact Chief Technology Officers More Than Chief Privacy Officers? ",
"zuid": "7-c2fded86c3-f5xz9b"
},
{
"url": "/mindshare/industry-news/does-the-california-consumer-privacy-act-affect-your-business/",
"title": "Does the California Consumer Privacy Act Affect Your Business? ",
"zuid": "7-fca3e185c0-l5gpq1"
},
{
"url": "/mindshare/industry-news/effective-remote-chat-strategies-for-covid-19-quarantine/",
"title": "Effective Remote Chat Strategies for COVID-19 Quarantine",
"zuid": "7-86a893b893-9h2l76"
},
{
"url": "/mindshare/industry-news/fintechs-what-to-look-for-in-a-cms/",
"title": "FinTechs: What to Look For in a CMS",
"zuid": "7-f6d9f2c8f2-2hg9s5"
},
{
"url": "/mindshare/industry-news/how-coronavirus-is-disrupting-marketing/",
"title": "How Coronavirus is Disrupting Marketing (And How to Work Through It)",
"zuid": "7-f2bbc790d3-49cpkg"
},
{
"url": "/mindshare/industry-news/how-to-request-data-deletion-under-ccpa/",
"title": "How to Request Data Deletion Under CCPA",
"zuid": "7-96aa9cb794-h1j47g"
},
{
"url": "/mindshare/industry-news/is-retargeting-ccpa-compliant/",
"title": "Is Retargeting Website Visitors Compliant with CCPA Guidelines?",
"zuid": "7-b494ecd082-m9x0b1"
},
{
"url": "/mindshare/industry-news/is-saas-compromising-your-gdpr-compliance/",
"title": "Is SaaS Compromising Your GDPR Compliance?",
"zuid": "7-c2aba296f9-bv7s6n"
},
{
"url": "/mindshare/industry-news/the-ccpa-compliance-website-checklist-you-need/",
"title": "The CCPA Compliance Website Checklist You Need",
"zuid": "7-b695a8a18a-h03jg8"
},
{
"url": "/mindshare/industry-news/us-courts-say-your-site-must-be-ada-compliant/",
"title": "US Courts Say Your Site Must Be ADA Compliant",
"zuid": "7-82a3adcdd5-6mdcq6"
},
{
"url": "/mindshare/industry-news/what-businesses-can-learn-about-digital-transformation-during-the-covid-crisis/",
"title": "What Businesses Can Learn About Digital Transformation During the COVID Crisis",
"zuid": "7-ece7b8d1f6-r8m25m"
},
{
"url": "/mindshare/industry-news/will-the-california-consumer-privacy-law-increase-lawsuits-/",
"title": "Will the California Consumer Privacy Law Increase Lawsuits?",
"zuid": "7-b487a8ebc0-3czn1n"
},
{
"url": "/mindshare/internet-of-things/",
"title": "Internet of Things",
"zuid": "7-d70b64-35xtnv"
},
{
"url": "/mindshare/internet-of-things/its-a-one-screen-world/",
"title": "It's a One Screen World",
"zuid": "7-aec5f0-jhcrn0"
},
{
"url": "/mindshare/internet-of-things/learn-recursion-from-mr--meeseeks/",
"title": "Learn Recursion from Mr. Meeseeks",
"zuid": "7-9e69b8-nhb8kr"
},
{
"url": "/mindshare/internet-of-things/summer-internship-series-at-zesty-io--post-five--finishing-up-the-internship/",
"title": "Summer Internship Series at Zesty.io, Post Five: Finishing Up the Internship",
"zuid": "7-b64c90-7gxw99"
},
{
"url": "/mindshare/internet-of-things/summer-internship-series-at-zesty-io--post-one--an-introduction-to-ronak/",
"title": "Summer Internship Series at Zesty.io, Post One: An Introduction to Ronak",
"zuid": "7-b22acc-7r8r77"
},
{
"url": "/mindshare/internet-of-things/summer-internship-series-at-zesty-io--post-two--the-build/",
"title": "Summer Internship Series at Zesty.io, Post Two: The Build",
"zuid": "7-33fd90-c0qcvq"
},
{
"url": "/mindshare/internet-of-things/summer-internship-series-at-zesty-io-post-four--it-all-connects/",
"title": "Summer Internship Series at Zesty.io, Post Four: It All Connects",
"zuid": "7-52913c-j8rd50"
},
{
"url": "/mindshare/internet-of-things/summer-internship-series-at-zesty-io-post-three-creating-the-guides/",
"title": "Summer Internship Series at Zesty.io, Post Three: Creating the Guides",
"zuid": "7-f3d5ac-ph24lg"
},
{
"url": "/mindshare/internet-of-things/what-is-a-data-flow-diagram-everything-you-need-to-know/",
"title": "What is a Data Flow Diagram: Everything You Need To Know",
"zuid": "7-fea8f0-ckv264"
},
{
"url": "/mindshare/january-2022-release-notes/",
"title": "January 2022 Release Notes",
"zuid": "7-a0cacb92ee-pz6pdb"
},
{
"url": "/mindshare/june-2022-release-notes/",
"title": "June 2022 Release Notes",
"zuid": "7-cec39b97c9-82kn02"
},
{
"url": "/mindshare/keybase/",
"title": "Keybase",
"zuid": "7-e2ccdc8cb8-q88x7m"
},
{
"url": "/mindshare/killer-content/",
"title": "Killer Content",
"zuid": "7-bf5190-bc5f54"
},
{
"url": "/mindshare/layouts/",
"title": "Layouts",
"zuid": "7-96f8f6b1f7-3mdf15"
},
{
"url": "/mindshare/lets-write-an-article/",
"title": "Let's write an article! ",
"zuid": "7-82a2def5a6-qbvrs0"
},
{
"url": "/mindshare/mach-vs-jamstack-guide-building-the-modern-tech-stack/",
"title": "MACH vs Jamstack: A Guide to Building The Modern Tech Stack",
"zuid": "7-f68f96d7aa-0mmrb2"
},
{
"url": "/mindshare/march-2022-release-notes/",
"title": "March 2022 Release Notes",
"zuid": "7-e0a0f4a083-fcdfmd"
},
{
"url": "/mindshare/marketing-technology/",
"title": "Marketing Technology",
"zuid": "7-9709c8-86s8wr"
},
{
"url": "/mindshare/marketing-technology/15-digital-content-creation-tools-dominating-marketing/",
"title": "15 Digital Content Creation Tools Dominating Marketing",
"zuid": "7-9c7a2c-79l032"
},
{
"url": "/mindshare/marketing-technology/3-enterprise-cms-trends-analyzing-the-cms-market-2022/",
"title": "3 Enterprise CMS Trends: Analyzing the CMS Market [2022]",
"zuid": "7-ecf0e897bd-p4g241"
},
{
"url": "/mindshare/marketing-technology/5-technical-mistakes-that-are-derailing-your-marketing-campaign/",
"title": "5 Technical Mistakes that are Derailing your Marketing Campaign",
"zuid": "7-253338-dns1mb"
},
{
"url": "/mindshare/marketing-technology/9-best-ecommerce-platforms-of-2019/",
"title": "9 Best Ecommerce Platforms of 2019",
"zuid": "7-d4aaca9593-8k5ksg"
},
{
"url": "/mindshare/marketing-technology/9-website-migration-mistakes-and-how-to-avoid-them/",
"title": "9 Website Migration Mistakes (And How to Avoid Them)",
"zuid": "7-a0b9d2eddc-tfpjgl"
},
{
"url": "/mindshare/marketing-technology/a-b-testing-what-it-is-and-how-to-get-started/",
"title": "A/B Testing: What It Is And How To Get Started",
"zuid": "7-bbb8ac-mn1lf0"
},
{
"url": "/mindshare/marketing-technology/afraid-of-the-cloud/",
"title": "Afraid of the Cloud?",
"zuid": "7-74e85c-nxgkmm"
},
{
"url": "/mindshare/marketing-technology/agency-teams-in-zesty-io/",
"title": "Agency Teams in Zesty.io",
"zuid": "7-44e8e0-nj5p6z"
},
{
"url": "/mindshare/marketing-technology/building-drupal-multi-sites--pros-and-cons-list/",
"title": "Building Drupal Multi-sites: Pros & Cons List",
"zuid": "7-a74bec-xm8r8l"
},
{
"url": "/mindshare/marketing-technology/choosing-cms-merger-acquisition/",
"title": "What to Consider When Choosing a CMS After a Merger or Acquisition",
"zuid": "7-b2a6fc88a9-1s6jkg"
},
{
"url": "/mindshare/marketing-technology/cloud-based-cms/",
"title": "Why Are Enterprises Moving to Cloud-based CMS?",
"zuid": "7-aecfe68389-rzpvw8"
},
{
"url": "/mindshare/marketing-technology/coding-in-zesty-io-locally-with-the-atom-editor/",
"title": "Coding in Zesty.io Locally with the Atom Editor",
"zuid": "7-dc9ed3d1f2-dfdxgp"
},
{
"url": "/mindshare/marketing-technology/connected-data-the-evolution-of-the-business-website/",
"title": "Connected Data: The Evolution of the Business Website",
"zuid": "7-3e1ed0-4s15q1"
},
{
"url": "/mindshare/marketing-technology/considerations-when-migrating-out-of-ibm-in-2022/",
"title": "Considerations When Migrating Out of IBM In 2022",
"zuid": "7-8cb1eacaf1-rvztk7"
},
{
"url": "/mindshare/marketing-technology/delaying-your-cms-migration--you-may-be-killing-your-brand/",
"title": "Delaying Your CMS Migration? You May Be Killing Your Brand",
"zuid": "7-1b6960-sppdls"
},
{
"url": "/mindshare/marketing-technology/drupal-8-migration-there-has-to-be-another-way/",
"title": "Drupal 8 Migration: There Has To Be Another Way ",
"zuid": "7-7c0a34-51rcfk"
},
{
"url": "/mindshare/marketing-technology/drupal-security-reviews--drupal-security-vulnerabilities-compared-and-explained/",
"title": "Drupal Security Reviews: Drupal Security Vulnerabilities Compared & Explained",
"zuid": "7-bd02e8-wwdnzg"
},
{
"url": "/mindshare/marketing-technology/drupal-site-hacked-follow-these-8-steps/",
"title": "Drupal Site Hacked? Follow These 8 Steps",
"zuid": "7-6ae478-l2hk0p"
},
{
"url": "/mindshare/marketing-technology/dynamic-vs-static-websites/",
"title": "Dynamic vs. Static Websites: What's the Diff?",
"zuid": "7-defea49fd8-9vbvdm"
},
{
"url": "/mindshare/marketing-technology/enterprise-governance-in-zesty-io/",
"title": "Enterprise Governance in Zesty.io",
"zuid": "7-7be124-w14k5r"
},
{
"url": "/mindshare/marketing-technology/gaming-cms-checklist--how-to-find-the-best-cms-for-a-gaming-website/",
"title": "Gaming CMS Checklist: How To Find The Best CMS For A Gaming Website",
"zuid": "7-2a3128-jhf657"
},
{
"url": "/mindshare/marketing-technology/google-cloud-publishes-customer-case-study-on-zesty-io/",
"title": "Google Cloud Publishes Customer Case Study on Zesty.io",
"zuid": "7-736b121-chflm2"
},
{
"url": "/mindshare/marketing-technology/heres-why-drupal-8-is-already-outdated/",
"title": "Here’s Why Drupal 8 Is Already Outdated",
"zuid": "7-8920a4-ffcx61"
},
{
"url": "/mindshare/marketing-technology/how-to-add-google-analytics-to-your-website/",
"title": "How to Add Google Analytics to Your Website",
"zuid": "7-88e48fc1a0-2chcd6"
},
{
"url": "/mindshare/marketing-technology/how-to-break-up-with-drupal--the-5-step-replatforming-guide/",
"title": "How to Break Up With Drupal: The 5 Step Replatforming Guide",
"zuid": "7-884ef0-dsx18p"
},
{
"url": "/mindshare/marketing-technology/how-to-build-teams-in-zesty-io/",
"title": "How to Build Teams in Zesty.io",
"zuid": "7-dcd00c-60x1ld"
},
{
"url": "/mindshare/marketing-technology/how-to-bulk-translate-content-easily-using-google-sheets/",
"title": "How to Bulk Translate Content Easily Using Google Sheets",
"zuid": "7-ec8ce1d68a-psgbrt"
},
{
"url": "/mindshare/marketing-technology/how-to-choose-the-best-cms-platform-for-marketing/",
"title": "How to Choose the Best CMS Platform for Marketing",
"zuid": "7-86fdb2ddd9-c1kwcq"
},
{
"url": "/mindshare/marketing-technology/how-to-get-maximum-value-from-a-cms-demo/",
"title": "How to Get Maximum Value from a CMS Demo",
"zuid": "7-a0cc9ee09f-svkgv5"
},
{
"url": "/mindshare/marketing-technology/how-to-hard-refresh/",
"title": "How to Hard Refresh",
"zuid": "7-d0d697d0a5-3ccprp"
},
{
"url": "/mindshare/marketing-technology/how-to-lazy-load/",
"title": "How to Lazy Load",
"zuid": "7-9cdae499a9-780tw1"
},
{
"url": "/mindshare/marketing-technology/how-to-move-away-from-wordpress-in-2022/",
"title": "How to Move Away from WordPress in 2022",
"zuid": "7-cabcd3d0ed-wwwpwh"
},
{
"url": "/mindshare/marketing-technology/how-to-scope-a-website-migration/",
"title": "How to Scope a Website Migration",
"zuid": "7-a4cff3bea8-k9wvnq"
},
{
"url": "/mindshare/marketing-technology/iaas-vs-saas-vs-paas-everything-you-need-to-know/",
"title": "IaaS vs SaaS vs PaaS: Everything You Need to Know",
"zuid": "7-1c6f54-d0pzr6"
},
{
"url": "/mindshare/marketing-technology/instant-insight-with-gcp-and-stackdriver/",
"title": "Instant Insight with GCP & Stackdriver",
"zuid": "7-2c2314-r8pq48"
},
{
"url": "/mindshare/marketing-technology/its-time-google-is-enforcing-https/",
"title": "It's Time: Google is Enforcing HTTPS",
"zuid": "7-cd2638-wgqm0f"
},
{
"url": "/mindshare/marketing-technology/make-search-engines-not-index-a-page/",
"title": "Make Search Engines NOT Index a Page",
"zuid": "7-f4e3bfadc3-725lnl"
},
{
"url": "/mindshare/marketing-technology/making-decisions-in-the-new-accounts-ui-built-in-react-redux/",
"title": "Making Decisions in the new Accounts UI Built in React/Redux",
"zuid": "7-dd72d0-sq2ffl"
},
{
"url": "/mindshare/marketing-technology/manager-ui-and-instances-api-release-log-jan-31-2019/",
"title": "Manager UI and Instances API Release Log Jan 31 2019",
"zuid": "7-96fd9e8dcb-4m6vqd"
},
{
"url": "/mindshare/marketing-technology/marketing-technology-landscape-the-state-of-martech-in-2018/",
"title": "Marketing Technology Landscape: The State of MarTech In 2018",
"zuid": "7-1c0d2c-bmn32h"
},
{
"url": "/mindshare/marketing-technology/modern-business-websites-act-as-grand-central-stations/",
"title": "Modern Business Websites act as Grand Central Stations",
"zuid": "7-71b0e8-5gxfzs"
},
{
"url": "/mindshare/marketing-technology/more-flexible-301-redirects/",
"title": "More Flexible 301 Redirects",
"zuid": "7-ff00b0-qj6l4v"
},
{
"url": "/mindshare/marketing-technology/open-source-cms-security/",
"title": "Open Source CMS Security Risks",
"zuid": "7-8ed4beaefc-vrpwgv"
},
{
"url": "/mindshare/marketing-technology/open-source-multisite-a-nightmare-for-both-marketers-and-technologists/",
"title": "Open Source Multisite - A Nightmare for both Marketers and Technologists",
"zuid": "7-28c810-hc3r9x"
},
{
"url": "/mindshare/marketing-technology/psa-developers-how-you-might-be-unintentionally-sabotaging-your-marketing-team/",
"title": "PSA Developers: How You Might Be Unintentionally Sabotaging Your Marketing Team",
"zuid": "7-d989b0-nmz3jv"
},
{
"url": "/mindshare/marketing-technology/publishing-my-first-enterprise-react-project-the-takeaway/",
"title": "Publishing My First Enterprise React Project — The Takeaway",
"zuid": "7-397e48-d2s35l"
},
{
"url": "/mindshare/marketing-technology/revealing-the-true-cost-of-drupal/",
"title": "Revealing the True Cost of Drupal",
"zuid": "7-357dc4-1j0ltf"
},
{
"url": "/mindshare/marketing-technology/sdvg-names-zesty-io-2018-cool-company-/",
"title": "SDVG Names Zesty.io 2018 Cool Company!",
"zuid": "7-ad060c-7b26dg"
},
{
"url": "/mindshare/marketing-technology/switching-to-google-cloud--interview-with-zesty-io-devops-leader-chris-hiestand/",
"title": "Switching to Google Cloud: Interview with Zesty.io DevOps leader Chris Hiestand",
"zuid": "7-b7c9d4-mgmr17"
},
{
"url": "/mindshare/marketing-technology/testing-zesty-io-s-templating-engine-using--zesty-io-/",
"title": "Testing Zesty.io’s Templating Engine using… Zesty.io!",
"zuid": "7-76e3dbc-4nzcsk"
},
{
"url": "/mindshare/marketing-technology/the-complete-guide-to-launching-a-website/",
"title": "The Complete Guide to Launching a Website",
"zuid": "7-fe9ca19b9a-8328ds"
},
{
"url": "/mindshare/marketing-technology/the-emergence-of-software-services-is-changing-traditional-business-operations/",
"title": "The Emergence of Software Services is Changing Traditional Business Operations",
"zuid": "7-54e3b8-93sbj7"
},
{
"url": "/mindshare/marketing-technology/the-ultimate-guide-to-transitioning-from-monolith-software-systems-to-modern-website-platforms-in-2020--part-2/",
"title": "The Ultimate Guide to Transitioning from Monolith Software Systems to Modern Website Platforms in 2020: Part 2",
"zuid": "7-8ec893ff99-5tbtjt"
},
{
"url": "/mindshare/marketing-technology/the-ultimate-guide-to-transitioning-from-monolith-software-systems-to-modern-website-platforms-in-2020-part-1/",
"title": "The Ultimate Guide to Transitioning from Monolith Software Systems to Modern Website Platforms in 2020: Part 1",
"zuid": "7-84e892d4c6-l74gb0"
},
{
"url": "/mindshare/marketing-technology/theres-nothing-mach-about-sitecore/",
"title": "There's Nothing MACH About Sitecore",
"zuid": "7-dca6dca5b0-xxk107"
},
{
"url": "/mindshare/marketing-technology/using-environment-variables-with-google-cloud-functions/",
"title": "Using Environment Variables with Google Cloud Functions",
"zuid": "7-aa07a8-7856qp"
},
{
"url": "/mindshare/marketing-technology/wcms-vs-cms-compared-and-explained/",
"title": "WCMS vs CMS | Compared and Explained",
"zuid": "7-eb1a7c-fts3sq"
},
{
"url": "/mindshare/marketing-technology/website-speed-optimization-10-methods-to-increase-page-load-times/",
"title": "Website Speed Optimization: 10 Methods to Improve Page Load Times",
"zuid": "7-013164-2zrzbs"
},
{
"url": "/mindshare/marketing-technology/what-exactly-is-saas/",
"title": "What is SaaS?",
"zuid": "7-f2b910-7tm8vj"
},
{
"url": "/mindshare/marketing-technology/what-is-a-composable-dxp/",
"title": "What is a Composable DXP?",
"zuid": "7-b2d3f4889c-p5q3nh"
},
{
"url": "/mindshare/marketing-technology/what-is-a-content-management-system-cms-the-complete-guide/",
"title": "What is a Content Management System (CMS) | The Complete Guide",
"zuid": "7-74b1fc-7v0nwl"
},
{
"url": "/mindshare/marketing-technology/what-is-a-digital-experience-platform/",
"title": "What Is a Digital Experience Platform?",
"zuid": "7-caade496fc-fszs5b"
},
{
"url": "/mindshare/marketing-technology/what-is-drupal--is-drupal-8-right-for-my-business-/",
"title": "What is Drupal? Is Drupal 8 Right for My Business?",
"zuid": "7-8f58ac-r6pl4v"
},
{
"url": "/mindshare/marketing-technology/what-is-enterprise-content-management-fully-explained/",
"title": "What is Enterprise Content Management | Fully Explained",
"zuid": "7-e6b808-hlmr8c"
},
{
"url": "/mindshare/marketing-technology/what-is-mach-architecture/",
"title": "What is MACH Architecture?",
"zuid": "7-94f3f3f2fc-pqtkhj"
},
{
"url": "/mindshare/marketing-technology/what-is-owasp-security/",
"title": "What is OWASP Security? ",
"zuid": "7-c2b299c2c8-8fpkfn"
},
{
"url": "/mindshare/marketing-technology/what-is-wcms/",
"title": "What is WCMS?",
"zuid": "7-7f4054-bs319x"
},
{
"url": "/mindshare/marketing-technology/what-is-wysiwyg-what-you-see-is-what-you-get/",
"title": "What is WYSIWYG? | What You See is What You Get",
"zuid": "7-e1289c-69gx9s"
},
{
"url": "/mindshare/marketing-technology/what-is-zesty-io-web-engine/",
"title": "Beyond SaaS: What is Zesty.io Web Engine?",
"zuid": "7-c0d0ceebc8-5d11r5"
},
{
"url": "/mindshare/marketing-technology/when-does-it-make-sense-to-automate-seo-/",
"title": "When Does It Make Sense to Automate SEO?",
"zuid": "7-2e845c-8v0qjq"
},
{
"url": "/mindshare/marketing-technology/why-move-away-from-oracle-in-2022/",
"title": "Why Move Away from Oracle in 2022",
"zuid": "7-e28bbae8b7-55stpc"
},
{
"url": "/mindshare/marketing-technology/you-can-now-write-google-cloud-functions-with-node-js-8/",
"title": "You Can Now Write Google Cloud Functions with Node.js 8",
"zuid": "7-e56b80-8xftng"
},
{
"url": "/mindshare/marketing-technology/zesty-io-announces-new-accounts-ui/",
"title": "Zesty.io Announces New Accounts UI",
"zuid": "7-aa6258-j5v7dj"
},
{
"url": "/mindshare/marketing-technology/zesty-io-automatic-xml-sitemap-generation/",
"title": "Zesty.io: Automatic XML Sitemap Generation",
"zuid": "7-34f0e0-6l1q5w"
},
{
"url": "/mindshare/marketing-technology/zesty-io-launches-new-interface-and-instance-api/",
"title": "Zesty.io Launches New Interface and Instance API",
"zuid": "7-78ef830-055wx3"
},
{
"url": "/mindshare/marketing-technology/zesty-io-powers-headless-presentations-through-salesforce-commerce-cloud-integration/",
"title": "Zesty.io Powers Headless Presentations through Salesforce Commerce Cloud Integration",
"zuid": "7-77600d7-vdvwzj"
},
{
"url": "/mindshare/marketing-technology/zesty-io-q1-features-and-updates-preview/",
"title": "Zesty.io Q1 Features and Updates Preview",
"zuid": "7-76f9fda-bjmj5h"
},
{
"url": "/mindshare/marketing-technology/zestyio-2019-whats-to-come/",
"title": "Zesty.io 2019: What's to Come",
"zuid": "7-76cc489-8906q2"
},
{
"url": "/mindshare/marketing-trends/",
"title": "Marketing Trends",
"zuid": "7-689854-pw3gp6"
},
{
"url": "/mindshare/marketing-trends/10-tips-for-picking-the-right-agency-partner-for-your-next-project/",
"title": "10 Tips for Picking the Right Agency Partner for Your Next Project",
"zuid": "7-cca6d5bdbf-bj203d"
},
{
"url": "/mindshare/marketing-trends/40-examples-of-404-pages/",
"title": "40 Examples of 404 Pages",
"zuid": "7-f8978de996-x6gsg7"
},
{
"url": "/mindshare/marketing-trends/40-marketing-agency-partner-programs-dominating-2018/",
"title": "40 Marketing Agency Partner Programs Dominating 2018",
"zuid": "7-983f0c-mgc870"
},
{
"url": "/mindshare/marketing-trends/5-google-innovations-and-their-impact-on-marketing/",
"title": "5 Google Innovations Announced at I/O 2018 and their Impact on Marketing",
"zuid": "7-cde7b0-cn4nsm"
},
{
"url": "/mindshare/marketing-trends/5-it-predictions-enterprise-marketers-need-to-heed/",
"title": "5 IT Predictions Enterprise Marketers Need to Heed",
"zuid": "7-5f92b8-70nqx2"
},
{
"url": "/mindshare/marketing-trends/5-steps-to-making-google-analytics-gdpr-compliant/",
"title": "5 Steps to Making Google Analytics GDPR Compliant",
"zuid": "7-dcb7aaa8f6-42d0b3"
},
{
"url": "/mindshare/marketing-trends/5-traits-of-a-high-converting-landing-page/",
"title": "5 Traits of a High Converting Landing Page ",
"zuid": "7-038020-3nckwl"
},
{
"url": "/mindshare/marketing-trends/best-landing-page-examples-of-2018/",
"title": "Best Landing Page Examples of 2018",
"zuid": "7-632674-vdb2vh"
},
{
"url": "/mindshare/marketing-trends/cms-migration-101--everything-you-need-to-know/",
"title": "CMS Migration 101: Everything You Need to Know",
"zuid": "7-73c358a-wbs5c0"
},
{
"url": "/mindshare/marketing-trends/considerations-when-migrating-out-of-legacy-cloud-suites-adobe-ibm-oracle/",
"title": "Considerations When Migrating Out Of Legacy Cloud Suites (Adobe, IBM, Oracle)",
"zuid": "7-fae7a0b493-q09th9"
},
{
"url": "/mindshare/marketing-trends/drupal-7-to-drupal-8-upgrade--time-to-switch-to-saas-/",
"title": "Drupal 7 to Drupal 8 Upgrade: Time to Switch to SaaS?",
"zuid": "7-b8ed2c-p7th9b"
},
{
"url": "/mindshare/marketing-trends/face-the-facts-marketing-needs-marketing-technologists/",
"title": "Face the Facts: Marketing Needs Marketing Technologists",
"zuid": "7-5d5ed8-jg2s9j"
},
{
"url": "/mindshare/marketing-trends/google-makes-the-move-to-mobile-first-indexing/",
"title": "Google Makes the Move to Mobile First Indexing",
"zuid": "7-c2c787df98-4tzfm1"
},
{
"url": "/mindshare/marketing-trends/how-saas-is-changing-the-enterprise-technology-landscape/",
"title": "How SaaS is changing the Enterprise Technology Landscape",
"zuid": "7-c9f354-k4wlmh"
},
{
"url": "/mindshare/marketing-trends/how-to-choose-a-cms-for-your-multilingual-website-beginners-guide/",
"title": "How to Choose a CMS for Your Multilingual Website - Beginner's Guide ",
"zuid": "7-382074-81kqr6"
},
{
"url": "/mindshare/marketing-trends/how-to-get-funding-for-a-snazzy-website-upgrade/",
"title": "How to Get Funding for a Snazzy Website Upgrade",
"zuid": "7-2bb2f4-v4g8hs"
},
{
"url": "/mindshare/marketing-trends/ignore-influencer-marketing-at-your-own-risk/",
"title": "Ignore Influencer Marketing at Your Own Risk ",
"zuid": "7-0ccac8-x727bj"
},
{
"url": "/mindshare/marketing-trends/instagram-tv-and-what-it-means-for-marketing/",
"title": "Instagram TV and What it Means for Marketing ",
"zuid": "7-5dd064-5hxfqs"
},
{
"url": "/mindshare/marketing-trends/jamstack-pros-and-cons-for-enterprise/",
"title": "Jamstack Pros and Cons for Enterprise",
"zuid": "7-be99a892a3-fgjtnw"
},
{
"url": "/mindshare/marketing-trends/landing-page-best-practices-most-effective-tips/",
"title": "Landing Page Best Practices | Most Effective Tips",
"zuid": "7-ce821c-k3j8z9"
},
{
"url": "/mindshare/marketing-trends/marketing-trends-shaping-2017/",
"title": "Marketing Trends Shaping 2017",
"zuid": "7-511a44-t410r6"
},
{
"url": "/mindshare/marketing-trends/multisite-management-mastering-the-art-of-customer-experience-consistency/",
"title": "Multisite Management: Mastering the Art of Customer Experience Consistency",
"zuid": "7-65aa50-krwd63"
},
{
"url": "/mindshare/marketing-trends/replatforming-your-cms--an-updated-guide/",
"title": "Replatforming Your CMS: An Updated Guide",
"zuid": "7-73c2e95-kqkbbm"
},
{
"url": "/mindshare/marketing-trends/saas-cms-the-mid-market-brands-key-to-keeping-up-with-customer-needs/",
"title": "SaaS CMS: The Mid-Market Brand's Key to Keeping Up With Customer Needs",
"zuid": "7-c73824-n2jqd7"
},
{
"url": "/mindshare/marketing-trends/the-pushback-on-amp/",
"title": "The Pushback on AMP",
"zuid": "7-6ff99c-wdrd3c"
},
{
"url": "/mindshare/marketing-trends/the-pushback-on-amp/microcapturing-data--the-intersection-of-user-experience-and-data-collection/",
"title": "Microcapturing Data: The Intersection of User Experience and Data Collection",
"zuid": "7-8a99f1afbc-k6p67h"
},
{
"url": "/mindshare/marketing-trends/top-5-saas-reseller-and-affiliate-programs/",
"title": "Top 5 SaaS Reseller & Affiliate Programs",
"zuid": "7-b03cd8-wv3w35"
},
{
"url": "/mindshare/marketing-trends/top-web-design-trends-for-2019/",
"title": "Top Web Design Trends for 2019",
"zuid": "7-c8b7c09af5-lbfb5g"
},
{
"url": "/mindshare/marketing-trends/website-personalization-enterprise-strategy/",
"title": "Website Personalization: Strategy Guide for Enterprise",
"zuid": "7-b88fb7f9cc-qqdg17"
},
{
"url": "/mindshare/marketing-trends/what-is-enterprise-marketing-step-by-step-guide-for-marketers/",
"title": "What is Enterprise Marketing? | Step-by-Step Guide for Marketers ",
"zuid": "7-f21258-v6j1n0"
},
{
"url": "/mindshare/moving-your-community-from-slack-to-discord/",
"title": "Moving Your Community From Slack to Discord",
"zuid": "7-90abe8e6fe-01wpkz"
},
{
"url": "/mindshare/nestjs-vs-nextjs/",
"title": "Nest.js vs Next.js",
"zuid": "7-acfdecfcd8-td64cz"
},
{
"url": "/mindshare/nextjs-for-seo/",
"title": "Next.js for SEO",
"zuid": "7-ea93bda2a0-nq8h98"
},
{
"url": "/mindshare/nextjs-vs-gatsby/",
"title": "Next.js vs. Gatsby",
"zuid": "7-e2f799ced1-mt1x6z"
},
{
"url": "/mindshare/nextjs-vs-react/",
"title": "Next.js vs React",
"zuid": "7-d8cf95fc96-10g7r3"
},
{
"url": "/mindshare/nuxtjs-vs-nextjs/",
"title": "Nuxt.js vs Next.js: What’s the Difference?",
"zuid": "7-92f7be8b8c-lf9jkm"
},
{
"url": "/mindshare/oyd/",
"title": "OYD",
"zuid": "7-a49ec5c9a3-48phtj"
},
{
"url": "/mindshare/parsley-december-2022-update/",
"title": "Parsley December 2022 Update",
"zuid": "7-f4c4b1d794-vlh9zp"
},
{
"url": "/mindshare/product-announcements/",
"title": "Product Announcements",
"zuid": "7-ce95e5c596-blp6h8"
},
{
"url": "/mindshare/product-announcements/2018-a-year-in-review/",
"title": "2018: A Year in Review",
"zuid": "7-76f91b4-br8dz0"
},
{
"url": "/mindshare/product-announcements/2020--a-year-in-review/",
"title": "2020: A Year in Review",
"zuid": "7-bef6cca7cf-hfr4s7"
},
{
"url": "/mindshare/product-announcements/2021-a-year-in-review/",
"title": "2021: A Year In Review",
"zuid": "7-b0d29ec298-5k711x"
},
{
"url": "/mindshare/product-announcements/april-2020-release-notes/",
"title": "April 2020 Release Notes",
"zuid": "7-c280e088bd-3sk4z5"
},
{
"url": "/mindshare/product-announcements/april-2021-release-notes/",
"title": "April 2021 Release Notes",
"zuid": "7-909eb1c2be-k9099s"
},
{
"url": "/mindshare/product-announcements/atom-editor-plugin-update--folder-structures/",
"title": "ATOM Editor Plugin Update: Folder Structures",
"zuid": "7-86a4a19296-fwbfwt"
},
{
"url": "/mindshare/product-announcements/august-2020-release-notes/",
"title": "August 2020 Release Notes",
"zuid": "7-98f8fba7c4-njplvn"
},
{
"url": "/mindshare/product-announcements/august-2021-release-notes/",
"title": "August 2021 Release Notes",
"zuid": "7-9aceabbca2-s8hv8z"
},
{
"url": "/mindshare/product-announcements/automatic-media-optimization-upgrade/",
"title": "Automatic Media Optimization Upgrade",
"zuid": "7-d0ebd6afa7-9lg5t0"
},
{
"url": "/mindshare/product-announcements/changing-origin-headers-cache-control-and-pragma/",
"title": "Changing Origin Headers; Cache-Control and Pragma",
"zuid": "7-9e89838ea1-49cwg2"
},
{
"url": "/mindshare/product-announcements/content-manager-dashboard-rebuild-and-release/",
"title": "Content Manager Dashboard Rebuild and Release",
"zuid": "7-9cb5a387cf-8ht28s"
},
{
"url": "/mindshare/product-announcements/custom-head-tags/",
"title": "Custom Head Tags",
"zuid": "7-8cc7cfb58a-zsjf23"
},
{
"url": "/mindshare/product-announcements/customize-your-admin-experience/",
"title": "Customize Your Admin Experience",
"zuid": "7-80e3d38385-wb3dsp"
},
{
"url": "/mindshare/product-announcements/february-2020-release-notes/",
"title": "February 2020 Release Notes",
"zuid": "7-e082e3bba0-lr2zq8"
},
{
"url": "/mindshare/product-announcements/february-2021-release-notes/",
"title": "February 2021 Release Notes",
"zuid": "7-fcdbcfc493-rwxvmb"
},
{
"url": "/mindshare/product-announcements/february-2022-release-notes/",
"title": "February 2022 Release Notes",
"zuid": "7-94a7f0edb4-8s3v9q"
},
{
"url": "/mindshare/product-announcements/introducing-home-an-all-in-one-view-of-your-zesty-instance/",
"title": "Introducing Home: An All-In-One View of your Zesty Instance",
"zuid": "7-c6aea49ec3-1069nb"
},
{
"url": "/mindshare/product-announcements/introducing-the-new-schema-experience/",
"title": "Introducing The New Schema Experience",
"zuid": "7-e8f5f2a8d0-l51fsf"
},
{
"url": "/mindshare/product-announcements/introducing-zesty-io-webengine-explorer/",
"title": "Introducing Zesty.io's WebEngine Explorer",
"zuid": "7-b0e985d0da-4q6bhq"
},
{
"url": "/mindshare/product-announcements/january-2020-release-notes/",
"title": "January 2020 Release Notes",
"zuid": "7-8cc2ec92ef-qxh662"
},
{
"url": "/mindshare/product-announcements/january-2021-release-notes/",
"title": "January 2021 Release Notes",
"zuid": "7-f4c9b7ab84-8f5gn1"
},
{
"url": "/mindshare/product-announcements/july-2020-release-notes/",
"title": "July 2020 Release Notes",
"zuid": "7-bec0e2f5db-mhsc40"
},
{
"url": "/mindshare/product-announcements/july-2021-release-notes/",
"title": "July 2021 Release Notes",
"zuid": "7-aeffb0b4d0-p57xjp"
},
{
"url": "/mindshare/product-announcements/july-5th-platform-release-notes/",
"title": "July 5th Release Notes",
"zuid": "7-e4a5c2a2a1-3nrl46"
},
{
"url": "/mindshare/product-announcements/june-2021-release-notes/",
"title": "June 2021 Release Notes",
"zuid": "7-92acfae594-tvgcn3"
},
{
"url": "/mindshare/product-announcements/june-release-notes/",
"title": "June Release Notes",
"zuid": "7-e2acc3e2c9-tkprnq"
},
{
"url": "/mindshare/product-announcements/logo-update-and-brand-history/",
"title": "Logo Update and Brand History",
"zuid": "7-b4f2a984ff-2467ds"
},
{
"url": "/mindshare/product-announcements/manager-ui-change-log-january-11th-2019/",
"title": "Manager UI Release Notes Change Log January 11th, 2019",
"zuid": "7-86fee1fcff-m0cbkh"
},
{
"url": "/mindshare/product-announcements/manager-ui-release-notes-2020/",
"title": "Manager UI Release Notes",
"zuid": "7-a8f7d8e185-hsj3z6"
},
{
"url": "/mindshare/product-announcements/march-2020-release-notes/",
"title": "March 2020 Release Notes",
"zuid": "7-e8cfe9888a-gt9147"
},
{
"url": "/mindshare/product-announcements/march-2021-release-notes/",
"title": "March 2021 Release Notes",
"zuid": "7-90d280d5fb-w94mfc"
},
{
"url": "/mindshare/product-announcements/may-release-notes/",
"title": "May Release Notes",
"zuid": "7-b493efcf84-fwg1vr"
},
{
"url": "/mindshare/product-announcements/media-proxy-url/",
"title": "Media Proxy URL",
"zuid": "7-ace2c39998-mtgrsm"
},
{
"url": "/mindshare/product-announcements/media-redesign-and-release/",
"title": "Media Redesign and Release",
"zuid": "7-c4bfc1c3a6-wt1b85"
},
{
"url": "/mindshare/product-announcements/new-feature-release-content-item-locking/",
"title": "New Feature Release: Content Item Locking",
"zuid": "7-b2f5bbddb1-9zq4v8"
},
{
"url": "/mindshare/product-announcements/new-feature-release-content-version-interface/",
"title": "New Feature Release: Content Version Interface",
"zuid": "7-cac2839ad8-wmwbx1"
},
{
"url": "/mindshare/product-announcements/new-feature-release-custom-head-tags/",
"title": "New Feature Release: Custom Head Tags",
"zuid": "7-86fa9cd798-0mffhz"
},
{
"url": "/mindshare/product-announcements/november-2020-release-notes/",
"title": "November 2020 Release Notes",
"zuid": "7-94f99fe4b8-0wh2sn"
},
{
"url": "/mindshare/product-announcements/october-2019-product-release-notes/",
"title": "October 2019 Product Release Notes",
"zuid": "7-8480b7c786-rw8r1h"
},
{
"url": "/mindshare/product-announcements/october-2020-release-notes/",
"title": "October 2020 Release Notes",
"zuid": "7-d6d1c6fecc-x4zt14"
},
{
"url": "/mindshare/product-announcements/october-2nd-2019-product-release-notes/",
"title": "October 2nd 2019 Product Release Notes",
"zuid": "7-acdd9caec3-7hfbvs"
},
{
"url": "/mindshare/product-announcements/october-release-notes/",
"title": "October Release Notes",
"zuid": "7-ded8afb399-l397hv"
},
{
"url": "/mindshare/product-announcements/parsley-autolayout/",
"title": "Parsley AutoLayout",
"zuid": "7-a4c4c1debf-6lz8vp"
},
{
"url": "/mindshare/product-announcements/redesigned-timezone-publishing/",
"title": "Redesigned Timezone Publishing",
"zuid": "7-4137ec-5wpt4m"
},
{
"url": "/mindshare/product-announcements/release-notes-august-2019/",
"title": "Release Notes August 2019",
"zuid": "7-caa09eb7bd-zqnwl5"
},
{
"url": "/mindshare/product-announcements/sectigo-addtrust-root-expiration-effects-and-resolution/",
"title": "Sectigo AddTrust Root Expiration - Effects and Resolution ",
"zuid": "7-bcbefbc4f6-wd2lvc"
},
{
"url": "/mindshare/product-announcements/seo-redesign-launch/",
"title": "SEO Redesign Launch",
"zuid": "7-84c2f0e189-888bqr"
},
{
"url": "/mindshare/product-announcements/september-2019-release-notes/",
"title": "September 2019 Release Notes",
"zuid": "7-f2c284d9ee-jnpcs3"
},
{
"url": "/mindshare/product-announcements/september-2020-release-notes/",
"title": "September 2020 Release Notes",
"zuid": "7-f4ffa2e9fb-x9hmks"
},
{
"url": "/mindshare/product-announcements/september-2021-release-notes/",
"title": "September 2021 Release Notes",
"zuid": "7-ee8cffffb5-4mrz77"
},
{
"url": "/mindshare/product-announcements/the-zesty-io-instance-manager-open-beta/",
"title": "The Zesty.io Instance Manager Open Beta",
"zuid": "7-fac2e893d7-2n0r6w"
},
{
"url": "/mindshare/product-announcements/the-zesty-io-user-interface-journey/",
"title": "The Zesty.io User Interface Journey",
"zuid": "7-e2f5f6b9cb-0vv5j4"
},
{
"url": "/mindshare/product-announcements/webengine-release-parsley-error-outputs/",
"title": "WebEngine Release: Parsley Error Outputs",
"zuid": "7-8cafc9d6d4-m8ct76"
},
{
"url": "/mindshare/product-announcements/what-is-webengine/",
"title": "What is WebEngine?",
"zuid": "7-eef182c5cc-5c395g"
},
{
"url": "/mindshare/product-announcements/why-we-changed-our-origin-cache-control-and-pragma-response-headers/",
"title": "Why we changed our origin Cache-Control and Pragma response headers",
"zuid": "7-becd8f8497-mv4vzk"
},
{
"url": "/mindshare/product-announcements/wildcard-redirects/",
"title": "Wildcard Redirects",
"zuid": "7-f6c6c7d8be-6hpqkd"
},
{
"url": "/mindshare/product-announcements/zesty-io-announces-launch-of-new-account-ui/",
"title": "Zesty.io Announces Launch of New Account UI",
"zuid": "7-90bbaee7b4-zzmxsc"
},
{
"url": "/mindshare/product-announcements/zesty-io-cms-joins-the-chatgpt-ai-revolution-with-an-ai-content-assistant/",
"title": "Zesty.io CMS joins the ChatGPT AI Revolution with an AI Content Assistant",
"zuid": "7-a0fafcdda0-ltnj9f"
},
{
"url": "/mindshare/product-announcements/zesty-io-instance-manager-general-availability/",
"title": "Zesty.io Instance Manager General Availability",
"zuid": "7-f8ecc7ed8a-kknzg6"
},
{
"url": "/mindshare/product-announcements/zesty-io-releases-new-duo-mode-feature-for-content-authors/",
"title": "Zesty.io Releases New Duo Mode Feature for Content Authors",
"zuid": "7-908792c18b-nhj5jv"
},
{
"url": "/mindshare/product-announcements/zesty-io-releases-new-seo-tools-content-insights/",
"title": "Zesty.io Releases New Content Insights SEO Tools",
"zuid": "7-de9cb7a7fc-zsccsh"
},
{
"url": "/mindshare/product-announcements/zesty-io-releases-new-webengine-headless-hybrid-and-traditional-modes/",
"title": "Zesty.io Releases New WebEngine Headless, Hybrid, and Traditional Modes",
"zuid": "7-dc948f80e2-09x889"
},
{
"url": "/mindshare/product-announcements/zesty-io-web-ide/",
"title": "Zesty.io Web IDE",
"zuid": "7-908bebc4ff-9msl0m"
},
{
"url": "/mindshare/product-announcements/zestyio-announces-new-teams-feature/",
"title": "Zesty.io Announces New Teams Feature",
"zuid": "7-144104-6z6p2t"
},
{
"url": "/mindshare/pure-headless-is-an-overcorrection/",
"title": "Pure Headless is an overcorrection. Here’s why.",
"zuid": "7-aec0d0c099-v8w11j"
},
{
"url": "/mindshare/release-notes/",
"title": "Release Notes",
"zuid": "7-c291f8e5b3-s1xxw3"
},
{
"url": "/mindshare/release-notes/november-2019-release-notes/",
"title": "November 2019 Release Notes",
"zuid": "7-9a86ddc4eb-ph6qjw"
},
{
"url": "/mindshare/release-notes/november-22-release-notes/",
"title": "November 2022 Release Notes",
"zuid": "7-d8eca3ff98-gvc5q5"
},
{
"url": "/mindshare/remix-vs--next-js/",
"title": "Remix vs. Next.js",
"zuid": "7-f0a2a78aa5-0x7cbb"
},
{
"url": "/mindshare/september-2022-release-notes/",
"title": "September 2022 Release Notes",
"zuid": "7-e6b4b7cf94-17spn0"
},
{
"url": "/mindshare/sitecore-dxp-proof-monoliths-are-dead/",
"title": "Sitecore DXP: Proof Monoliths are Dead",
"zuid": "7-8e93ebc988-55pfvt"
},
{
"url": "/mindshare/smart-costcutting-it-s-time-to-reexamine-your-martech-stack/",
"title": "Smart Cost-Cutting: It’s Time to Re-examine Your MarTech Stack",
"zuid": "7-bed5baa8c4-zt52mt"
},
{
"url": "/mindshare/social-media/",
"title": "Social Media",
"zuid": "7-21c834-b6cvsj"
},
{
"url": "/mindshare/social-media/content-marketers-beware-the-shadowban/",
"title": "Content Marketers - Beware the #SHADOWBAN",
"zuid": "7-f5eccc-tcx81l"
},
{
"url": "/mindshare/social-media/enterprise-cms-with-native-yet-powerful-social-media-management/",
"title": "Enterprise CMS With Native Yet Powerful Social Media Management",
"zuid": "7-1155b8-6j4kml"
},
{
"url": "/mindshare/social-media/how-to-resize-your-video-for-instagram-tv---igtv-sizing-guide/",
"title": "How to Resize Your Video For Instagram TV | IGTV Sizing Guide",
"zuid": "7-7354fec-90sdpc"
},
{
"url": "/mindshare/social-media/social-curator-facebook-feeds/",
"title": "Social Curator Facebook Feeds",
"zuid": "7-e75230-cv1qth"
},
{
"url": "/mindshare/social-media/social-media-primer-reddit/",
"title": "Social Media Primer: Reddit",
"zuid": "7-0aedd0-0vr1bk"
},
{
"url": "/mindshare/the-importance-of-https-and-ssl/",
"title": "The Importance of HTTPS and SSL",
"zuid": "7-0e77fc-73zcz0"
},
{
"url": "/mindshare/upcoming-change-to-supported-tls-ciphers/",
"title": "Upcoming change to supported TLS ciphers",
"zuid": "7-e4cdb8fb9c-j5xp1m"
},
{
"url": "/mindshare/wattpad-case-study/",
"title": "Wattpad launches new creators website & generates 63% increase in pageviews in one month",
"zuid": "7-9097bfd28d-gq0hw1"
},
{
"url": "/mindshare/what-are-microservices/",
"title": "What are Microservices?",
"zuid": "7-8d7908-4lcmkg"
},
{
"url": "/mindshare/what-is-a-headless-cms-wysiwyg/",
"title": "What Is a Headless CMS WYSIWYG?",
"zuid": "7-92d6adf1d0-knzk2w"
},
{
"url": "/mindshare/what-is-next-js/",
"title": "What is Next.js? ",
"zuid": "7-f6dcb29de4-11r4q2"
},
{
"url": "/mindshare/what-is-structured-content-/",
"title": "What is Structured Content?",
"zuid": "7-f88ddc8593-f2gvgw"
},
{
"url": "/mindshare/what-is-website-personalization/",
"title": "What is website personalization?",
"zuid": "7-c6d6ad9cd7-bv75xj"
},
{
"url": "/mindshare/writing-actionable-specs-for-engineering-teams/",
"title": "Writing Actionable Specs for Engineering Teams",
"zuid": "7-a48edcd5da-s3fq19"
},
{
"url": "/mindshare/zesty-io-announces-release-of-marketplace/",
"title": "Zesty.io Announces Release of Marketplace for Customers to Integrate Their Preferred Technology Tools with the Zesty CMS",
"zuid": "7-dad2ef9bb4-kbf1gl"
},
{
"url": "/mindshare/zesty-io-content-designer/",
"title": "Zesty.io Content Designer",
"zuid": "7-cecfd1bcf3-174vnx"
},
{
"url": "/mindshare/zesty-io-marketplace-a-deep-dive/",
"title": "Zesty.io Marketplace: A Deep Dive",
"zuid": "7-c293aabdc8-7mxgfs"
},
{
"url": "/mindshare/zesty-io-private-cloud-with-akamai/",
"title": "Zesty.io Private Cloud with Akamai",
"zuid": "7-92baa58bf2-j3cpnj"
},
{
"url": "/mindshare/zesty-io-releases-free-live-editor-chrome-extension-for-contextual-live-editing/",
"title": "Zesty.io releases free Live Editor Chrome extension for contextual live editing",
"zuid": "7-ecd792999e-h0rdv7"
},
{
"url": "/mindshare/zesty-io-the-best-cms-for-seo-/",
"title": "Zesty.io: The Best CMS for SEO?",
"zuid": "7-c2f1f2c5d8-kcjhmw"
},
{
"url": "/mindshare/zesty-releases-metrics-api-dashboard/",
"title": "Zesty.io releases metrics API dashboard to provide clients with transparent view into their request data",
"zuid": "7-c2e9c882c1-v4jjcp"
},
{
"url": "/mindshare/zesty-single-sign-on-everything-you-need-to-know/",
"title": "Zesty single sign-on: everything you need to know",
"zuid": "7-feae9c95d0-k7sbf7"
},
{
"url": "/mobile/",
"title": "Mobile",
"zuid": "7-579640-gzp9sx"
},
{
"url": "/multisite-management/",
"title": "Multisite Management",
"zuid": "7-4c6cfc-38kdwc"
},
{
"url": "/news/",
"title": "Zesty.io News",
"zuid": "7-c88da9ebf3-t2gks4"
},
{
"url": "/news/zesty-io-expands-partner-network-to-australia-announces-first-partnership-with-ping-works/",
"title": "Zesty.io Expands Partner Network to Australia, Announces First Partnership with PING Works ",
"zuid": "7-f6b3ec9fbd-0h33k6"
},
{
"url": "/open-source/",
"title": "Open Source",
"zuid": "7-96cf24-wttv68"
},
{
"url": "/optimization/",
"title": "Optimization",
"zuid": "7-a06174-0m88fw"
},
{
"url": "/parsley-features-page/",
"title": "Parsley Features Page",
"zuid": "7-9ac7bfc2ba-r5g7sw"
},
{
"url": "/partner-program/",
"title": "Partner Program",
"zuid": "7-e17be0-wh20mg"
},
{
"url": "/platform/",
"title": "Platform",
"zuid": "7-7135c13-8fqlrh"
},
{
"url": "/platform/cdn-hosting/",
"title": "CDN Hosting",
"zuid": "7-d8eef8ab8e-6jc40w"
},
{
"url": "/platform/digital-asset-management/",
"title": "Digital Asset Management",
"zuid": "7-c0dcdbd1bf-d69tgb"
},
{
"url": "/platform/overview/",
"title": "Overview",
"zuid": "7-d0a88ca18e-m5v2jl"
},
{
"url": "/platform/security-faq/",
"title": "Security FAQ",
"zuid": "7-71708ff-qq035d"
},
{
"url": "/ppc/",
"title": "PPC",
"zuid": "7-8a9eb8a5b9-vxkm10"
},
{
"url": "/ppc/content-management-system-demo/",
"title": "Scale faster with Zesty.io’s content management system ",
"zuid": "7-9af88ba4bd-3bll03"
},
{
"url": "/ppc/content-management-system/",
"title": "Scale faster with Zesty’s content management system",
"zuid": "7-aaabb8d7fc-9s29d9"
},
{
"url": "/ppc/demo-video/",
"title": "Zesty Demo Video",
"zuid": "7-809fa4d0f8-5vcv3s"
},
{
"url": "/ppc/digital-experience-platform-demo/",
"title": "Zesty.io | Create engaging digital experiences at scale",
"zuid": "7-f8d2b2fb82-vgg2t4"
},
{
"url": "/ppc/digital-experience-platform/",
"title": "Zesty.io Digital Experience Platform | Create digital experiences at scale",
"zuid": "7-eedcf982cb-8d3sl8"
},
{
"url": "/ppc/discover-a-better-drupal-alternative/",
"title": "Discover a better Drupal alternative",
"zuid": "7-a0f0a6fcc3-rd4hlf"
},
{
"url": "/ppc/easiest-cms-to-do-business-with/",
"title": "#1 easiest CMS to do business with",
"zuid": "7-e09d91f4f4-v75f2h"
},
{
"url": "/ppc/enterprise-content-management/",
"title": "Enterprise content management",
"zuid": "7-8adb83be90-jrtpk4"
},
{
"url": "/ppc/explore/",
"title": "Scale digital experiences with Zesty.io",
"zuid": "7-aae99fa1b8-z528tr"
},
{
"url": "/ppc/headless-cms-demo/",
"title": "Scale faster with Zesty’s headless CMS",
"zuid": "7-e8bf91abc6-7lph10"
},
{
"url": "/ppc/headless-cms/",
"title": "Scale faster with Zesty.io’s headless CMS",
"zuid": "7-a6cfa4b084-137vdt"
},
{
"url": "/ppc/scale-your-franchise-with-better-website-management/",
"title": "Scale your franchise with better website management",
"zuid": "7-96cb97b68c-q0j87j"
},
{
"url": "/ppc/score-big-with-better-content-management/",
"title": "Score big with better content management",
"zuid": "7-80c2f3ead2-11505n"
},
{
"url": "/ppc/thank-you/",
"title": "Thank you for requesting a demo with the Zesty.io team",
"zuid": "7-9cbec1fe83-ckkhqn"
},
{
"url": "/press-release/",
"title": "Press Release",
"zuid": "7-881b94-7b938g"
},
{
"url": "/pricing/",
"title": "Headless CMS Pricing | Zesty.io",
"zuid": "7-643930-brn4lg"
},
{
"url": "/pricing/enterprise-pricing/",
"title": "Enterprise Pricing",
"zuid": "7-c6ad93ea9a-hjqmhg"
},
{
"url": "/pwa/",
"title": "PWA",
"zuid": "7-33fb74-qnh8qx"
},
{
"url": "/quiz-how-should-you-build-your-website-or-mobile-app/",
"title": "Quiz: How should you build your website or mobile app?",
"zuid": "7-f0d0bcd5d7-l7hzqq"
},
{
"url": "/react/",
"title": "React",
"zuid": "7-4951e4-c22q8h"
},
{
"url": "/reddit/",
"title": "Reddit",
"zuid": "7-3fd210-4vxlbq"
},
{
"url": "/roadmap/",
"title": "roadmap",
"zuid": "7-e888f083a0-b49wrm"
},
{
"url": "/roi-calculator/",
"title": "ROI calculator",
"zuid": "7-e8ebbba88f-pzq2p5"
},
{
"url": "/saas/",
"title": "SaaS",
"zuid": "7-43e388-v7t85x"
},
{
"url": "/scale-to-new-heights-lp/",
"title": "Scale to new heights LP",
"zuid": "7-ea95b084a7-kq7lpl"
},
{
"url": "/scholarship-1/",
"title": "Scholarship",
"zuid": "7-0b89a4-tz7371"
},
{
"url": "/scholarship/",
"title": "Keeping Your Future Zesty Scholarship",
"zuid": "7-d09bfdfc9a-bzp435"
},
{
"url": "/security/",
"title": "Security",
"zuid": "7-f6ce90-0vpsn0"
},
{
"url": "/seo/",
"title": "SEO",
"zuid": "7-1cf314-p81wrh"
},
{
"url": "/shadowban/",
"title": "Shadowban",
"zuid": "7-e3eeb0-bspv1p"
},
{
"url": "/social-media-marketing/",
"title": "Social Media Marketing",
"zuid": "7-faee30-hzhgrm"
},
{
"url": "/solutions-save/",
"title": "Solutions",
"zuid": "7-716f465-rd4s74"
},
{
"url": "/solutions-save/digital-experience-platform/",
"title": "Digital Experience Platform",
"zuid": "7-eaffa590c0-6tklj1"
},
{
"url": "/solutions-save/digital-experience-platform/dxp-ecommerce/",
"title": "DXP ecommerce",
"zuid": "7-b6faf58984-grf87p"
},
{
"url": "/solutions-save/hybrid-cms/",
"title": "Hybrid CMS",
"zuid": "7-aefcc68ae8-ns67kj"
},
{
"url": "/solutions/",
"title": "Digital Experience Solutions - Zesty.io",
"zuid": "7-f4a3a4eaac-67zjcb"
},
{
"url": "/solutions/accelerating-launches/",
"title": "Accelerating Launches",
"zuid": "7-7170b9f-vvz8sd"
},
{
"url": "/solutions/digital-experience-platform/",
"title": "Digital Experience Platform - DXP - Zesty.io",
"zuid": "7-c69ac888e9-4lb4b7"
},
{
"url": "/solutions/digital-experience-platform/commerce/",
"title": "DXP for Commerce",
"zuid": "7-a0d3d8e7a0-dml0nt"
},
{
"url": "/solutions/digital-experience-platform/composable-dxp/",
"title": "Composable DXP | Zesty.io",
"zuid": "7-dcecf5c0bb-xg5qk1"
},
{
"url": "/solutions/digital-experience-platform/dxp-benefits/",
"title": "Benefits of a Digital Experience Platform – Zesty.io",
"zuid": "7-98bcbe8cc2-399skb"
},
{
"url": "/solutions/digital-experience-platform/dxp-enterprise/",
"title": "DXP Enterprise",
"zuid": "7-aaa092efdb-c0gvr3"
},
{
"url": "/solutions/digital-governance/",
"title": "Digital Governance",
"zuid": "7-717100c-3ljq9n"
},
{
"url": "/solutions/digital-transformation/",
"title": "Digital Transformation ",
"zuid": "7-7171019-87jnxd"
},
{
"url": "/solutions/elastic-scalability/",
"title": "Elastic Scalability",
"zuid": "7-7170f7d-j7jgqd"
},
{
"url": "/solutions/globalization/",
"title": "Globalization",
"zuid": "7-717102b-krmqxg"
},
{
"url": "/solutions/headless-cms/",
"title": "Headless CMS - Zesty.io",
"zuid": "7-fefc9fa3cb-xbbj5g"
},
{
"url": "/solutions/headless-cms/blogs-editorial/",
"title": "Headless CMS for Blogs - Scale Your Blog with Zesty.io",
"zuid": "7-aabbf3eba8-92mh08"
},
{
"url": "/solutions/headless-cms/commerce/",
"title": "Headless CMS for eCommerce | Zesty.io",
"zuid": "7-a2c7caf480-1bpc9z"
},
{
"url": "/solutions/headless-cms/digital-asset-management/",
"title": "Headless DAM - Zesty.io",
"zuid": "7-ccd4e7c2cc-dnw6qf"
},
{
"url": "/solutions/headless-cms/enterprise-headless-cms/",
"title": "Enterprise headless CMS optimized for success",
"zuid": "7-ccb1b589e9-77tfc2"
},
{
"url": "/solutions/headless-cms/headless-cms-benefits/",
"title": "10 Benefits of a Headless CMS - Zesty.io",
"zuid": "7-c0afcac8a4-66cskk"
},
{
"url": "/solutions/headless-cms/headless-mobile/",
"title": "Headless Mobile",
"zuid": "7-9af4a780a5-sgnqzr"
},
{
"url": "/solutions/hybrid-cms/",
"title": "Hybrid CMS: The Hybrid Headless Content Management System",
"zuid": "7-82e7c0c187-zrbplf"
},
{
"url": "/solutions/multisite-management/",
"title": "Multisite Management",
"zuid": "7-71867ae-jsv3l9"
},
{
"url": "/solutions/omnichannel/",
"title": "Omnichannel",
"zuid": "7-718693d-55ldvk"
},
{
"url": "/support/",
"title": "Success Plans - Zesty.io Support",
"zuid": "7-7356c05-f3h3pq"
},
{
"url": "/use-case/",
"title": "Use case",
"zuid": "7-c4e1b0f8f2-nl8x57"
},
{
"url": "/use-case/business-leaders/",
"title": "Zesty.io for business leaders",
"zuid": "7-a283a6eea4-m7fwtl"
},
{
"url": "/use-case/digital-publishing-cms/",
"title": "Headless CMS for digital publishing companies",
"zuid": "7-d2d9d882d3-nqp2cb"
},
{
"url": "/use-case/finance-fintech-cms/",
"title": "Headless CMS for finance and fintech companies",
"zuid": "7-b6b693e6a3-c64sfm"
},
{
"url": "/use-case/for-developers/",
"title": "Headless CMS for developers",
"zuid": "7-e89bc1d5b8-7m2qsh"
},
{
"url": "/use-case/franchises/",
"title": "Zesty.io for franchises",
"zuid": "7-b880e9f1bd-2vm69d"
},
{
"url": "/use-case/gaming-cms/",
"title": "Headless CMS for gaming companies",
"zuid": "7-dca3f4afc3-67d595"
},
{
"url": "/use-case/insurance-cms/",
"title": "Zesty.io for insurance companies",
"zuid": "7-98aadd84dc-k7rtr3"
},
{
"url": "/use-case/marketers/",
"title": "Zesty.io for marketers",
"zuid": "7-869daedba9-mz87mt"
},
{
"url": "/use-case/saas-cms/",
"title": "Headless CMS for SaaS companies",
"zuid": "7-ac95a6e8f8-4z3p5z"
},
{
"url": "/use-case/sports-companies/",
"title": "Zesty.io for sports companies",
"zuid": "7-f284988d9f-zc7t66"
},
{
"url": "/use-case/white-label-cms-for-saas/",
"title": "White label CMS for SaaS companies",
"zuid": "7-dcd3b3a9a4-nfg4sr"
},
{
"url": "/use-case/zesty-for-sports/",
"title": "Zesty for sports",
"zuid": "7-9eda9f88ea-krghfv"
},
{
"url": "/video/",
"title": "Video",
"zuid": "7-44f8a0-ckm877"
},
{
"url": "/wcms/",
"title": "WCMS",
"zuid": "7-5b4190-t1vppg"
},
{
"url": "/web-strategy/",
"title": "Web Strategy",
"zuid": "7-7d002c-gcp1xt"
},
{
"url": "/website-personalization-strategy-guide-for-enterprise/",
"title": "Website personalization: strategy guide for enterprise",
"zuid": "7-a2b0c6dcc0-q35g9h"
},
{
"url": "/website-personalization-strategy-guide-for-enterprise/thank-you/",
"title": "Thank you for requesting the website personalization guide.",
"zuid": "7-acfef7d4f3-hzb9rf"
},
{
"url": "/website/",
"title": "Website",
"zuid": "7-606e1c-1c0x8q"
},
{
"url": "/what-does-a-modern-digital-experience-team-look-like-/",
"title": "What does a modern digital experience team look like?",
"zuid": "7-c8a883f7cc-x9fgg8"
},
{
"url": "/what-does-a-modern-digital-experience-team-look-like-/thank-you/",
"title": "Thank you for downloading the digital experience team whitepaper",
"zuid": "7-b0dce6adb5-j830km"
},
{
"url": "/whitepaper-13-key-features-headless-cms/",
"title": "Whitepaper: 13 key features you need in your headless CMS",
"zuid": "7-ea95c394e3-nlrbkg"
},
{
"url": "/whitepaper-13-key-features-headless-cms/thank-you/",
"title": "Thank you for requesting the headless CMS 13 features guide.",
"zuid": "7-dae6b0bbea-9qpcrd"
},
{
"url": "/whitepaper-scale/",
"title": "Whitepaper: Scale your business in the face of uncertainty",
"zuid": "7-86ccb4f7d4-jxd3d2"
},
{
"url": "/whitepaper-scale/thank-you/",
"title": "Thank you for requesting the scale guide.",
"zuid": "7-e6c1def2c1-vmm8hx"
},
{
"url": "/why-zesty/",
"title": "Why Zesty.io headless CMS?",
"zuid": "7-82efec8dc6-qrgszg"
},
{
"url": "/workflow/",
"title": "Workflow",
"zuid": "7-629fe8-1jpg7j"
},
{
"url": "/zesty-for-franchises/",
"title": "Zesty for franchises",
"zuid": "7-cef0d784fb-twlcwn"
},
{
"url": "/zesty.io/",
"title": "Zesty.io",
"zuid": "7-cfaca8-11t9kd"
}
],
"navigationCustom": [
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "1",
"url": "/about/",
"title": "About Zesty",
"zuid": "7-8ed2b6a189-w85cqt",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "1",
"url": "/mindshare/",
"title": "Blog",
"zuid": "7-b0b499debc-plbv3q",
"children": []
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "1",
"url": "/why-zesty/",
"title": "Why Zesty.io?",
"zuid": "7-b8999bb3bd-pfvzt7",
"children": []
},
{
"external": false,
"parentZUID": null,
"sort": "1",
"url": "#",
"title": "Products",
"zuid": "7-d4dfcad2b7-b2z47h",
"children": [
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "1",
"url": "/why-zesty/",
"title": "Why Zesty.io?",
"zuid": "7-b8999bb3bd-pfvzt7",
"children": []
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "2",
"url": "/solutions/headless-cms/",
"title": "Headless CMS",
"zuid": "7-e095bbe1a3-jln706",
"children": []
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "3",
"url": "/solutions/hybrid-cms/",
"title": "Hybrid CMS",
"zuid": "7-f0bbf4b083-v2pnsn",
"children": []
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "5",
"url": "/quiz-how-should-you-build-your-website-or-mobile-app/",
"title": "Which product is right for you?",
"zuid": "7-d08ef5afe8-0xk1fd",
"children": []
}
]
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "1",
"url": "/use-case/for-developers/",
"title": "Zesty for Developers",
"zuid": "7-faabf1a490-0w5h2c",
"children": []
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "2",
"url": "/developer-resources/",
"title": "Developer Resources",
"zuid": "7-96febce8d9-6mvpng",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "2",
"url": "/news/",
"title": "News",
"zuid": "7-cebcabcb86-7rw23c",
"children": []
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "2",
"url": "/solutions/headless-cms/",
"title": "Headless CMS",
"zuid": "7-e095bbe1a3-jln706",
"children": []
},
{
"external": true,
"parentZUID": null,
"sort": "2",
"url": "https://www.zesty.io/marketplace/",
"title": "Marketplace",
"zuid": "7-eedec2d9ac-p8cw5d",
"children": []
},
{
"external": true,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "3",
"url": "mailto:support@zesty.io",
"title": "Support",
"zuid": "7-8aeb85f5f1-sg06mj",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "3",
"url": "/agency-partners/partner-program-benefits/",
"title": "Agency Partners",
"zuid": "7-a093ae8df2-p3c6sw",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "3",
"url": "/roadmap/",
"title": "Product Roadmap",
"zuid": "7-a6c5dd8aca-pmzlw3",
"children": []
},
{
"external": false,
"parentZUID": null,
"sort": "3",
"url": "/pricing/",
"title": "Pricing",
"zuid": "7-b29beecdb5-phwmzg",
"children": []
},
{
"external": true,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "3",
"url": "https://zesty.org/",
"title": "Platform Documentation",
"zuid": "7-d698bcf6b2-65kll0",
"children": []
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "3",
"url": "/solutions/hybrid-cms/",
"title": "Hybrid CMS",
"zuid": "7-f0bbf4b083-v2pnsn",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "3",
"url": "/mindshare/customer-stories/",
"title": "Customer Stories",
"zuid": "7-fc95938bee-dp9h9c",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "4",
"url": "/contact/",
"title": "Contact",
"zuid": "7-90f4fef699-2llp91",
"children": []
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "4",
"url": "/integrations/nextjs-cms/",
"title": "Next.js Integration",
"zuid": "7-9cfb8ecdb1-lp7cps",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "4",
"url": "/content-resources/",
"title": "eBooks and Resources",
"zuid": "7-f291c9bd94-l62v6q",
"children": []
},
{
"external": false,
"parentZUID": null,
"sort": "4",
"url": "#",
"title": "Developers",
"zuid": "7-f8c5d1c2b4-cqbpq3",
"children": [
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "1",
"url": "/use-case/for-developers/",
"title": "Zesty for Developers",
"zuid": "7-faabf1a490-0w5h2c",
"children": []
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "2",
"url": "/developer-resources/",
"title": "Developer Resources",
"zuid": "7-96febce8d9-6mvpng",
"children": []
},
{
"external": true,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "3",
"url": "https://zesty.org/",
"title": "Platform Documentation",
"zuid": "7-d698bcf6b2-65kll0",
"children": []
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "4",
"url": "/integrations/nextjs-cms/",
"title": "Next.js Integration",
"zuid": "7-9cfb8ecdb1-lp7cps",
"children": []
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "5",
"url": "/mindshare/product-announcements/",
"title": "Product Updates",
"zuid": "7-d6e1deadc6-5knc4w",
"children": []
}
]
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "5",
"url": "/demos/video/",
"title": "Demo video",
"zuid": "7-a6f1bf81d3-fr853b",
"children": []
},
{
"external": false,
"parentZUID": null,
"sort": "5",
"url": "#",
"title": "Learn",
"zuid": "7-bca0ada1df-1k1b7g",
"children": [
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "1",
"url": "/mindshare/",
"title": "Blog",
"zuid": "7-b0b499debc-plbv3q",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "2",
"url": "/news/",
"title": "News",
"zuid": "7-cebcabcb86-7rw23c",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "3",
"url": "/mindshare/customer-stories/",
"title": "Customer Stories",
"zuid": "7-fc95938bee-dp9h9c",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "4",
"url": "/content-resources/",
"title": "eBooks and Resources",
"zuid": "7-f291c9bd94-l62v6q",
"children": []
},
{
"external": false,
"parentZUID": "7-bca0ada1df-1k1b7g",
"sort": "5",
"url": "/demos/video/",
"title": "Demo video",
"zuid": "7-a6f1bf81d3-fr853b",
"children": []
}
]
},
{
"external": false,
"parentZUID": "7-d4dfcad2b7-b2z47h",
"sort": "5",
"url": "/quiz-how-should-you-build-your-website-or-mobile-app/",
"title": "Which product is right for you?",
"zuid": "7-d08ef5afe8-0xk1fd",
"children": []
},
{
"external": false,
"parentZUID": "7-f8c5d1c2b4-cqbpq3",
"sort": "5",
"url": "/mindshare/product-announcements/",
"title": "Product Updates",
"zuid": "7-d6e1deadc6-5knc4w",
"children": []
},
{
"external": false,
"parentZUID": null,
"sort": "6",
"url": "#",
"title": "More",
"zuid": "7-929485f68b-b9jsgc",
"children": [
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "1",
"url": "/about/",
"title": "About Zesty",
"zuid": "7-8ed2b6a189-w85cqt",
"children": []
},
{
"external": true,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "3",
"url": "mailto:support@zesty.io",
"title": "Support",
"zuid": "7-8aeb85f5f1-sg06mj",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "3",
"url": "/agency-partners/partner-program-benefits/",
"title": "Agency Partners",
"zuid": "7-a093ae8df2-p3c6sw",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "3",
"url": "/roadmap/",
"title": "Product Roadmap",
"zuid": "7-a6c5dd8aca-pmzlw3",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "4",
"url": "/contact/",
"title": "Contact",
"zuid": "7-90f4fef699-2llp91",
"children": []
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "6",
"url": "/about/brand/",
"title": "Brand",
"zuid": "7-da9fc9bbe8-tctz30",
"children": []
}
]
},
{
"external": false,
"parentZUID": "7-929485f68b-b9jsgc",
"sort": "6",
"url": "/about/brand/",
"title": "Brand",
"zuid": "7-da9fc9bbe8-tctz30",
"children": []
}
],
"flyoutNavigation": [
{
"nav_title": "Products",
"link": null,
"sort_order": "1",
"sub_nav_items": null,
"callout_image_1": null,
"callout_1_label": null,
"callout_1_link": null,
"callout_2_image": null,
"callout_2_label": null,
"callout_2_link": null,
"_column_1_title": null,
"column_1_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 3,
"data": [
{
"nav_item_name": "Why Zesty",
"page_link": {
"type": "relationship",
"model": "why_zesty",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/why-zesty/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2431-xwdk5q",
"url": "https://kfg6bckb.media.zestyio.com/Why-Zesty-nav.png"
}
]
},
"sort_order": "1",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-aae9dfafb5-n8q10d",
"createdAt": "2022-11-24 14:54:31",
"updatedAt": "2022-11-24 14:54:31",
"listed": "1",
"version": "7",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Find Your Product",
"page_link": {
"type": "relationship",
"model": "quiz_landing_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/quiz-how-should-you-build-your-website-or-mobile-app/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2530-gk2klf",
"url": "https://kfg6bckb.media.zestyio.com/Find-your-product-nav.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-baeeab98a2-6vckmf",
"createdAt": "2022-12-01 23:22:23",
"updatedAt": "2022-12-01 23:22:23",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Enterprise CMS",
"page_link": {
"type": "relationship",
"model": "headless_cms_enterprise",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/solutions/headless-cms/enterprise-headless-cms/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2ddc-zn7ffb",
"url": "https://kfg6bckb.media.zestyio.com/Enterprise-nav.png"
}
]
},
"sort_order": "4",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-e898fbeaff-hvkpbd",
"createdAt": "2022-12-01 23:22:38",
"updatedAt": "2022-12-01 23:22:37",
"listed": "1",
"version": "5",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_2_title": null,
"column_2_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 3,
"data": [
{
"nav_item_name": "SEO",
"page_link": {
"type": "relationship",
"model": "headless_seo",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/features/seo/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf25c7-3zj24h",
"url": "https://kfg6bckb.media.zestyio.com/Features-SEO-nav.png"
}
]
},
"sort_order": "1",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-ce85e1e8f5-47bxwc",
"createdAt": "2022-12-01 23:22:54",
"updatedAt": "2022-12-01 23:22:53",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Digital Asset Management",
"page_link": {
"type": "relationship",
"model": "headless_dam",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/solutions/headless-cms/digital-asset-management/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2600-rp4rgl",
"url": "https://kfg6bckb.media.zestyio.com/digital-asset-nav.png"
}
]
},
"sort_order": "2",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-a0a9a2a9be-93gm97",
"createdAt": "2022-12-01 23:21:45",
"updatedAt": "2022-12-01 23:21:45",
"listed": "1",
"version": "5",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Multi-language",
"page_link": {
"type": "relationship",
"model": "headless_cms_multi_lang",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/features/multi-language/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2629-h2cndd",
"url": "https://kfg6bckb.media.zestyio.com/multi-language-nav.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-d0bdf18bce-h5d21q",
"createdAt": "2022-12-01 23:21:54",
"updatedAt": "2022-12-01 23:21:54",
"listed": "1",
"version": "6",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_3_title": null,
"column_3_items_if_needed": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 4,
"data": [
{
"nav_item_name": "Mobile Applications",
"page_link": {
"type": "relationship",
"model": "headless_mobile",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/solutions/headless-cms/headless-mobile/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2aef-mhktx5",
"url": "https://kfg6bckb.media.zestyio.com/mobile-nav.png"
}
]
},
"sort_order": "2",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-c28fc798e1-vkqd6n",
"createdAt": "2022-12-01 23:23:44",
"updatedAt": "2022-12-01 23:23:43",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Omnichannel",
"page_link": {
"type": "relationship",
"model": "simple_page",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/solutions/omnichannel/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2bc5-m9zq6d",
"url": "https://kfg6bckb.media.zestyio.com/Omnichannel-nav.png"
}
]
},
"sort_order": "4",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-f49fde9da6-72k45p",
"createdAt": "2022-12-01 23:24:03",
"updatedAt": "2022-12-01 23:24:03",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Multi-site",
"page_link": {
"type": "relationship",
"model": "headless_multi_site",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/features/multi-site-management/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2a9e-0pfrqc",
"url": "https://kfg6bckb.media.zestyio.com/multi-site-nav.png"
}
]
},
"sort_order": "5",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-d48ce6e4dd-7mmh3p",
"createdAt": "2022-12-01 23:24:12",
"updatedAt": "2022-12-01 23:24:11",
"listed": "1",
"version": "8",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "eCommerce",
"page_link": {
"type": "relationship",
"model": "headless_ecommerce",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/solutions/headless-cms/commerce/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2be6-qm0t94",
"url": "https://kfg6bckb.media.zestyio.com/ecomm-nav.png"
}
]
},
"sort_order": "6",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-aef098f9b9-f7654n",
"createdAt": "2022-12-01 23:24:20",
"updatedAt": "2022-12-01 23:24:19",
"listed": "1",
"version": "6",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"callout_3_image": null,
"callout_3_title": null,
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": null,
"callout_4_link": null,
"callout_4_internal_link": null,
"callout_3_internal_link": null,
"callout_1_external_link_if_needed": null,
"flyout_cta": null,
"flyout_cta_title": null,
"column_one_title": "Product Overview",
"column_two_title": "Key Features",
"column_three_title": "Build with Zesty",
"callout_image_2": null,
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-e0e3c58d89-h1rdgk",
"createdAt": "2023-01-12 10:22:27",
"updatedAt": "2023-01-12 10:22:26",
"listed": "1",
"version": "15",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
},
{
"nav_title": "Use Cases",
"link": null,
"sort_order": "2",
"sub_nav_items": null,
"callout_image_1": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e3ba574-2j4xq9",
"url": "https://kfg6bckb.media.zestyio.com/Rocket-League-Esports-Thumbnail.png"
}
]
},
"callout_1_label": "Rocket League Case Study",
"callout_1_link": {
"type": "relationship",
"model": "articles",
"totalItems": 1,
"data": [
{
"hero_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-72474d9-7by2b",
"url": "https://kfg6bckb.media.zestyio.com/rocket-league-background.jpg"
}
]
},
"screenshot": null,
"quote": null,
"youtube_id": null,
"interviewee_headshot": null,
"article": "<p>Several years ago, Psyonix, the creators of <a href=\"https://www.rocketleague.com/\">Rocket League</a>, set out to find a content management system that could help them create a site for their players to consume content related to the professional side of Rocket League.</p>\n<p>Their goals were to create an active community, reduce development time and increase agility while producing consistent content.</p>\n<p>The team selected Zesty.io as their content management system and scored right out of the gate.</p>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Rocket-league-homepage.png\" data-id=\"3-ebcdfc2-3kq2ld\" title=\"Rocket League Homepage\" alt=\"Rocket League Homepage\" /></p>\n<p>While considering Zesty.io, the Psyonix team looked at other companies' successes on the platform. One that stood out was <a href=\"https://www.zesty.io/mindshare/customer-stories/sony-uses-zesty-io-to-accelerate-launch-of-alpha-universe/\" target=\"_blank\" rel=\"noopener\">Sony's Alpha Universe</a>, a site used to engage Sony's Alpha photographer community. Psyonix thought they could also showcase their highly active, tight-knit community of Rocket League Esports teams and players.</p>\n<h2>Goal 1: Leverage influencer marketing to support millions of players and fans</h2>\n<p>With over 40 million unique players and 1.1 million players a day <a href=\"https://en.wikipedia.org/wiki/Rocket_League\" target=\"_blank\" rel=\"noopener\">on average</a>, the team at Rocket League is fostering and growing a vast community. They have been able to harness the power of influencer marketing and highlight individuals within their community to exponentially grow.</p>\n<p>They needed a CMS solution that would:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Get their new site off the ground quickly</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Be able to scale with their users</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Maintain brand standards</p>\n</li>\n</ul>\n<p>With everything able to be managed within one platform at scale, without extra plugins or development work, Zesty.io became the obvious choice.</p>\n<p>\"Community polls, audio players, and other cool widgets and CMS plugins can be customized with Zesty.io, whereas there was not as much flexibility to brand certain elements like that using previous systems. Many of those would have to be outside plugins that didn’t really gel with our brand style.\"</p>\n<p><em>- <strong>Kyle Lemmon</strong>, Marketing Manager at Psyonix</em></p>\n<h2>Goal 2: Grow the professional side</h2>\n<p>As Rocket League continues to grow, they innovate new ideas, leveraging Zesty.io as their content hub. They are able to produce content consistently, maintaining excitement around their product.</p>\n<p>\"Our community loves new content and hearing about new updates for the game, and in turn, we enjoy finding new ways to improve on the concept of Rocket League while keeping the core gameplay concept intact. Depending on the in-game content, we’re able to create and deliver additional promotional content to the community on the site and beyond,\" says Lemmon.</p>\n<p>As the community grows, the marketing team continues to <a href=\"https://en.wikipedia.org/wiki/Rocket_League\" target=\"_blank\" rel=\"noopener\">grow and support tournaments</a> with payouts of hundreds of thousands of dollars and televised on networks such as Twitch and Turner Broadcasting.</p>\n<p>The Esports website is the hub for the professional energy surrounding Rocket League.</p>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Rocket-League-on-multiple-devices.png\" data-id=\"3-ebce7a3-st096n\" title=\"Rocket-League-on-multiple-devices\" alt=\"Rocket-League-on-multiple-devices\" /></p>\n<h2>How Rocket League uses Zesty.io: managing relational content</h2>\n<p>The content throughout the Rocket League website is highly relational: players are related to teams, teams to tournaments, tournaments to outcomes, and everything in between. This complexity can get out of hand if not managed properly.</p>\n<p>With Zesty.io's highly intuitive platform, community managers are able to update content once and see those changes updated wherever that relational content appears on the site, ensuring the most up-to-date data in a world where statistics are changing by the moment. Time is saved and content consistency is maintained.</p>\n<p>\"We publish blogs on the site almost every weekday and landing pages at least once per quarter. That is easier since switching to Zesty.io since even content creators on our team (that can’t code) can implement changes on the site and publish new content without the assistance of an outside team,\" says Lemmon.</p>\n<p>Talk about a score.</p>\n<p><a href=\"/join/?UTM_source=article&UTM_campaign=gaming\"><img src=\"https://kfg6bckb.media.zestyio.com/Start-now.png\" data-id=\"3-e7b1262-7t96nt\" title=\"Start-now.png\" alt=\"Start-now.png\" /></a></p>",
"title": "Rocket League Leverages Zesty.io for E-Sports Site Celebrating Players and Tournaments",
"description": "The influencer marketing site highlighting teams isn't just celebrated among the community, but also a win for Psyonix technology and marketing teams.",
"author": {
"type": "relationship",
"model": "authors",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"date": "2022-10-31",
"tags": {
"type": "relationship",
"model": "tags",
"totalItems": 3,
"data": [
{
"message": "max hydration depth hit"
},
{
"message": "max hydration depth hit"
},
{
"message": "max hydration depth hit"
}
]
},
"interviewee_name": null,
"thumbnail_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e3ba574-2j4xq9",
"url": "https://kfg6bckb.media.zestyio.com/Rocket-League-Esports-Thumbnail.png"
}
]
},
"category": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"related_articles": null,
"meta": {
"type": "item",
"model_name": "articles",
"model_alternate_name": "Article",
"zuid": "7-73ffb3e-xm959z",
"createdAt": "2022-11-01 19:54:36",
"updatedAt": "2022-11-01 19:54:35",
"listed": "1",
"version": "60",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-45a908-qfw88c",
"name": "articles",
"label": "Articles",
"resourceURI": "https://www.zesty.io/-/instant/6-45a908-qfw88c.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/customer-stories/rocket-league-launches-e-sports-site-celebrating-players-and-tournaments/",
"uri": "/mindshare/customer-stories/rocket-league-launches-e-sports-site-celebrating-players-and-tournaments/",
"fragment": "rocket-league-launches-e-sports-site-celebrating-players-and-tournaments",
"canonical_tag_mode": "0",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-11-01 19:54:35",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "Rocket League Launches E-Sports Site Celebrating Players and Tournaments with Zesty.io",
"seo_meta_title": "Rocket League Launches E-Sports Site Celebrating Players and Tournaments with Zesty.io",
"seo_meta_description": "The influencer marketing site highlighting teams isn't just celebrated among the community, but also a win for Psyonix technology and marketing teams.",
"seo_meta_keywords": null
},
"layout": {
"html": "<div class=\"pvlRoot\">\n\t<div style=\"display:flex\">\n\t\t<div style=\"flex:2\" class=\"pvlColumn\">\n\t\t\t<h1 class=\"pvlHeader\">Rocket League Leverages Zesty.io for E-Sports Site Celebrating Players and Tournaments</h1>\n\t\t</div>\n\t\t<div style=\"flex:4\" class=\"pvlColumn\">\n\t\t\t<img src=\"https://kfg6bckb.media.zestyio.com/rocket-league-background.jpg\" alt=\"@\" width=\"100%\" />\n\t\t</div>\n\t</div>\n\t<div class=\"pvlRichtext\"><p>Several years ago, Psyonix, the creators of <a href=\"https://www.rocketleague.com/\">Rocket League</a>, set out to find a content management system that could help them create a site for their players to consume content related to the professional side of Rocket League.</p>\n<p>Their goals were to create an active community, reduce development time and increase agility while producing consistent content.</p>\n<p>The team selected Zesty.io as their content management system and scored right out of the gate.</p>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Rocket-league-homepage.png\" data-id=\"3-ebcdfc2-3kq2ld\" title=\"Rocket League Homepage\" alt=\"Rocket League Homepage\" /></p>\n<p>While considering Zesty.io, the Psyonix team looked at other companies' successes on the platform. One that stood out was <a href=\"https://www.zesty.io/mindshare/customer-stories/sony-uses-zesty-io-to-accelerate-launch-of-alpha-universe/\" target=\"_blank\" rel=\"noopener\">Sony's Alpha Universe</a>, a site used to engage Sony's Alpha photographer community. Psyonix thought they could also showcase their highly active, tight-knit community of Rocket League Esports teams and players.</p>\n<h2>Goal 1: Leverage influencer marketing to support millions of players and fans</h2>\n<p>With over 40 million unique players and 1.1 million players a day <a href=\"https://en.wikipedia.org/wiki/Rocket_League\" target=\"_blank\" rel=\"noopener\">on average</a>, the team at Rocket League is fostering and growing a vast community. They have been able to harness the power of influencer marketing and highlight individuals within their community to exponentially grow.</p>\n<p>They needed a CMS solution that would:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Get their new site off the ground quickly</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Be able to scale with their users</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Maintain brand standards</p>\n</li>\n</ul>\n<p>With everything able to be managed within one platform at scale, without extra plugins or development work, Zesty.io became the obvious choice.</p>\n<p>\"Community polls, audio players, and other cool widgets and CMS plugins can be customized with Zesty.io, whereas there was not as much flexibility to brand certain elements like that using previous systems. Many of those would have to be outside plugins that didn’t really gel with our brand style.\"</p>\n<p><em>- <strong>Kyle Lemmon</strong>, Marketing Manager at Psyonix</em></p>\n<h2>Goal 2: Grow the professional side</h2>\n<p>As Rocket League continues to grow, they innovate new ideas, leveraging Zesty.io as their content hub. They are able to produce content consistently, maintaining excitement around their product.</p>\n<p>\"Our community loves new content and hearing about new updates for the game, and in turn, we enjoy finding new ways to improve on the concept of Rocket League while keeping the core gameplay concept intact. Depending on the in-game content, we’re able to create and deliver additional promotional content to the community on the site and beyond,\" says Lemmon.</p>\n<p>As the community grows, the marketing team continues to <a href=\"https://en.wikipedia.org/wiki/Rocket_League\" target=\"_blank\" rel=\"noopener\">grow and support tournaments</a> with payouts of hundreds of thousands of dollars and televised on networks such as Twitch and Turner Broadcasting.</p>\n<p>The Esports website is the hub for the professional energy surrounding Rocket League.</p>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Rocket-League-on-multiple-devices.png\" data-id=\"3-ebce7a3-st096n\" title=\"Rocket-League-on-multiple-devices\" alt=\"Rocket-League-on-multiple-devices\" /></p>\n<h2>How Rocket League uses Zesty.io: managing relational content</h2>\n<p>The content throughout the Rocket League website is highly relational: players are related to teams, teams to tournaments, tournaments to outcomes, and everything in between. This complexity can get out of hand if not managed properly.</p>\n<p>With Zesty.io's highly intuitive platform, community managers are able to update content once and see those changes updated wherever that relational content appears on the site, ensuring the most up-to-date data in a world where statistics are changing by the moment. Time is saved and content consistency is maintained.</p>\n<p>\"We publish blogs on the site almost every weekday and landing pages at least once per quarter. That is easier since switching to Zesty.io since even content creators on our team (that can’t code) can implement changes on the site and publish new content without the assistance of an outside team,\" says Lemmon.</p>\n<p>Talk about a score.</p>\n<p><a href=\"/join/?UTM_source=article&UTM_campaign=gaming\"><img src=\"https://kfg6bckb.media.zestyio.com/Start-now.png\" data-id=\"3-e7b1262-7t96nt\" title=\"Start-now.png\" alt=\"Start-now.png\" /></a></p></div>\n</div>\n",
"json": null
}
}
}
]
},
"callout_2_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e3ba0b7-9hgsk0",
"url": "https://kfg6bckb.media.zestyio.com/Cornershop-OpenGraph-and-Thumbnail.png"
}
]
},
"callout_2_label": "Cornershop by Uber Case Study",
"callout_2_link": {
"type": "relationship",
"model": "articles",
"totalItems": 1,
"data": [
{
"hero_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-d8f4944-qm8z4n",
"url": "https://kfg6bckb.media.zestyio.com/cornershop-by-uber-header-2.jpeg"
}
]
},
"screenshot": null,
"quote": null,
"youtube_id": null,
"interviewee_headshot": null,
"article": "<h2 dir=\"ltr\">Customer Profile</h2>\n<p dir=\"ltr\">Cornershop—founded in 2015 and headquartered in Chile— is one of the leading on-demand grocery delivery services in Latin America with operations across Mexico, Chile, Peru, Costa Rica, and more. The company’s recent acquisition by Uber prompted a need for global expansion and scalability. They aim to aggressively expand same-day grocery delivery services across the globe through the Uber platform.</p>\n<h2 dir=\"ltr\">The Problem</h2>\n<p dir=\"ltr\">Cornershop had a custom tech stack. That meant they had to undergo considerable heavy maintenance on the app and websites. Also, using a custom website meant they had to handle scalability, SEO, and availability issues. They needed a CMS with advanced SEO capabilities, high uptime that could match Uber’s SLA, multi-language support, multi-site management for several multi-lang blogs, and that required minimal hands-on involvement in maintaining the sites.</p>\n<p dir=\"ltr\">The company had several images on their custom site since their content strategy revolved around recipes. They needed automated web page conversion for images and automated CSS and JavaScript optimization. One other essential requirement was support for schema.org for automated schema tagging for screen readers and accessibility purposes. </p>\n<h2 dir=\"ltr\">The Challenge</h2>\n<p dir=\"ltr\">Before migrating to Zesty.io, the company initially tried dotCMS, but suffered from limited multi-language support. The company had to fill in all new languages if a content item was published, which led to a lot of missing assets and pages. This approach also adversely affected SEO capabilities. They needed a solution that separately handles different language records in the database rather than tying everything to one single record and publishing it once.</p>\n<h2 dir=\"ltr\">The Solution</h2>\n<p dir=\"ltr\">To facilitate the company’s growth and relieve developers of site maintenance and allow them to focus on building, the company chose Zesty.io as the perfect CMS solution. The migration process included moving everything from their custom site to Zesty.io while empowering their team to reorganize and redesign the content on their blog. With the implementation of Zesty.io, the company was equipped with native hosting and deployment features, advanced multi-language support and SEO features, multi-site management, automated schema tag support, and high-availability uptime of 99.999%. </p>\n<h3 dir=\"ltr\">Languages Supported</h3>\n<table style=\"width: 99.9685%; height: 143.872px;\">\n<tbody>\n<tr style=\"height: 108.316px;\">\n<td style=\"width: 11.8914%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/united-states.png\" data-id=\"3-d8f4b49-rv1mw4\" title=\"united-states.png\" alt=\"united-states.png\" width=\"58\" height=\"58\" /></td>\n<td style=\"width: 12.9603%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/united-states.png\" data-id=\"3-d8f4b49-rv1mw4\" title=\"united-states.png\" alt=\"united-states.png\" width=\"59\" height=\"58\" /></td>\n<td style=\"width: 13.2944%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/canada.png\" data-id=\"3-d8f4b49-mhtqz9\" title=\"canada.png\" alt=\"canada.png\" width=\"63\" height=\"61\" /></td>\n<td style=\"width: 11.2234%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/canada.png\" data-id=\"3-d8f4b49-mhtqz9\" title=\"canada.png\" alt=\"canada.png\" width=\"57\" height=\"58\" /></td>\n<td style=\"width: 11.7578%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/mexico.png\" data-id=\"3-d8f4b7f-f0ng1h\" title=\"mexico.png\" alt=\"mexico.png\" width=\"66\" height=\"66\" /></td>\n<td style=\"width: 9.48643%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/colombia.png\" data-id=\"3-d8f4bc8-f1x67h\" title=\"colombia.png\" alt=\"colombia.png\" width=\"58\" height=\"58\" /></td>\n<td style=\"width: 8.55115%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/chile.png\" data-id=\"3-d8f4bef-1xdfv9\" title=\"chile.png\" alt=\"chile.png\" width=\"58\" height=\"58\" /></td>\n<td style=\"width: 6.94781%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/peru.png\" data-id=\"3-d8f4c0d-n2z4bt\" title=\"peru.png\" alt=\"peru.png\" width=\"59\" height=\"60\" /></td>\n<td style=\"width: 7.88309%; text-align: center;\"><img src=\"https://kfg6bckb.media.zestyio.com/brazil.png\" data-id=\"3-d8f4c40-dj2dwm\" title=\"brazil.png\" alt=\"brazil.png\" width=\"62\" height=\"62\" /></td>\n<td style=\"width: 6.01253%; text-align: center;\"><img src=\"https://kfg6bckb.media.zestyio.com/costa-rica.png\" data-id=\"3-d8f4c3f-lf3lc1\" title=\"costa-rica.png\" alt=\"costa-rica.png\" width=\"62\" height=\"62\" /></td>\n</tr>\n<tr style=\"height: 35.5556px;\">\n<td style=\"width: 11.8914%; text-align: center; height: 35.5556px;\">\n<p>English,</p>\n<p>US</p>\n</td>\n<td style=\"width: 12.9603%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>US</p>\n</td>\n<td style=\"width: 13.2944%; text-align: center; height: 35.5556px;\">\n<p>French,</p>\n<p>CA</p>\n</td>\n<td style=\"width: 11.2234%; text-align: center; height: 35.5556px;\">\n<p>English,</p>\n<p>CA</p>\n</td>\n<td style=\"width: 11.7578%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>MX</p>\n</td>\n<td style=\"width: 9.48643%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>CO</p>\n</td>\n<td style=\"width: 8.55115%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>CL</p>\n</td>\n<td style=\"width: 6.94781%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>PE</p>\n</td>\n<td style=\"width: 7.88309%; text-align: center;\">\n<p>Portuguese,</p>\n<p>BL</p>\n</td>\n<td style=\"width: 6.01253%; text-align: center;\">\n<p>Spanish,</p>\n<p>CR</p>\n</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"ltr\">The Results</h2>\n<p dir=\"ltr\">The process from migration to launch took only 60 days. With the company no longer limited and burdened by their tech stack, they could focus on driving their expansion and scalability efforts. Now they can deliver content in multiple languages to different regions worldwide and enable SEO features accordingly.</p>\n<p dir=\"ltr\">The company’s Head of SEO had this to say about the successful implementation of Zesty.io, </p>\n<blockquote>\n<p dir=\"ltr\">“Congratulations Team Zesty! It is the first time that a CMS does not limit me in everything I want to do. I have achieved everything I have set out to do so far. Great product 👍”.</p>\n</blockquote>\n<p dir=\"ltr\">To further strengthen their presence, the company plans to continue expanding with Zesty.io for their mobile apps too.</p>",
"title": "Cornershop by Uber Selects Zesty.io to Drive Global Expansion Effort",
"description": "After Uber acquired Cornershop, the plan to fuel worldwide expansion required a solution that offers multi-language support, SEO, and scalability.",
"author": {
"type": "relationship",
"model": "authors",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"date": "2022-03-01",
"tags": {
"type": "relationship",
"model": "tags",
"totalItems": 2,
"data": [
{
"message": "max hydration depth hit"
},
{
"message": "max hydration depth hit"
}
]
},
"interviewee_name": null,
"thumbnail_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e3ba0b7-9hgsk0",
"url": "https://kfg6bckb.media.zestyio.com/Cornershop-OpenGraph-and-Thumbnail.png"
}
]
},
"category": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"related_articles": null,
"meta": {
"type": "item",
"model_name": "articles",
"model_alternate_name": "Article",
"zuid": "7-ea86a588cd-2ncs55",
"createdAt": "2022-07-26 18:13:19",
"updatedAt": "2022-07-26 18:13:18",
"listed": "1",
"version": "12",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-45a908-qfw88c",
"name": "articles",
"label": "Articles",
"resourceURI": "https://www.zesty.io/-/instant/6-45a908-qfw88c.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/customer-stories/cornershop-by-uber-selects-zesty-io-to-drive-global-expansion-effort/",
"uri": "/mindshare/customer-stories/cornershop-by-uber-selects-zesty-io-to-drive-global-expansion-effort/",
"fragment": "cornershop-by-uber-selects-zesty-io-to-drive-global-expansion-effort",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-07-26 18:13:18",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "Cornershop by Uber Selects Zesty.io to Drive Global Expansion Effort",
"seo_meta_title": "Cornershop by Uber Selects Zesty.io to Drive Global Expansion Effort",
"seo_meta_description": "After Uber acquired Cornershop, the plan to fuel worldwide expansion required a solution that offers multi-language support, SEO, and scalability: Zesty.io.",
"seo_meta_keywords": null
},
"layout": {
"html": "<div class=\"pvlRoot\">\n\t<div style=\"display:flex\">\n\t\t<div style=\"flex:2\" class=\"pvlColumn\">\n\t\t\t<h1 class=\"pvlHeader\">Cornershop by Uber Selects Zesty.io to Drive Global Expansion Effort</h1>\n\t\t</div>\n\t\t<div style=\"flex:4\" class=\"pvlColumn\">\n\t\t\t<img src=\"https://kfg6bckb.media.zestyio.com/cornershop-by-uber-header-2.jpeg\" alt=\"@\" width=\"100%\" />\n\t\t</div>\n\t</div>\n\t<div class=\"pvlRichtext\"><h2 dir=\"ltr\">Customer Profile</h2>\n<p dir=\"ltr\">Cornershop—founded in 2015 and headquartered in Chile— is one of the leading on-demand grocery delivery services in Latin America with operations across Mexico, Chile, Peru, Costa Rica, and more. The company’s recent acquisition by Uber prompted a need for global expansion and scalability. They aim to aggressively expand same-day grocery delivery services across the globe through the Uber platform.</p>\n<h2 dir=\"ltr\">The Problem</h2>\n<p dir=\"ltr\">Cornershop had a custom tech stack. That meant they had to undergo considerable heavy maintenance on the app and websites. Also, using a custom website meant they had to handle scalability, SEO, and availability issues. They needed a CMS with advanced SEO capabilities, high uptime that could match Uber’s SLA, multi-language support, multi-site management for several multi-lang blogs, and that required minimal hands-on involvement in maintaining the sites.</p>\n<p dir=\"ltr\">The company had several images on their custom site since their content strategy revolved around recipes. They needed automated web page conversion for images and automated CSS and JavaScript optimization. One other essential requirement was support for schema.org for automated schema tagging for screen readers and accessibility purposes. </p>\n<h2 dir=\"ltr\">The Challenge</h2>\n<p dir=\"ltr\">Before migrating to Zesty.io, the company initially tried dotCMS, but suffered from limited multi-language support. The company had to fill in all new languages if a content item was published, which led to a lot of missing assets and pages. This approach also adversely affected SEO capabilities. They needed a solution that separately handles different language records in the database rather than tying everything to one single record and publishing it once.</p>\n<h2 dir=\"ltr\">The Solution</h2>\n<p dir=\"ltr\">To facilitate the company’s growth and relieve developers of site maintenance and allow them to focus on building, the company chose Zesty.io as the perfect CMS solution. The migration process included moving everything from their custom site to Zesty.io while empowering their team to reorganize and redesign the content on their blog. With the implementation of Zesty.io, the company was equipped with native hosting and deployment features, advanced multi-language support and SEO features, multi-site management, automated schema tag support, and high-availability uptime of 99.999%. </p>\n<h3 dir=\"ltr\">Languages Supported</h3>\n<table style=\"width: 99.9685%; height: 143.872px;\">\n<tbody>\n<tr style=\"height: 108.316px;\">\n<td style=\"width: 11.8914%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/united-states.png\" data-id=\"3-d8f4b49-rv1mw4\" title=\"united-states.png\" alt=\"united-states.png\" width=\"58\" height=\"58\" /></td>\n<td style=\"width: 12.9603%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/united-states.png\" data-id=\"3-d8f4b49-rv1mw4\" title=\"united-states.png\" alt=\"united-states.png\" width=\"59\" height=\"58\" /></td>\n<td style=\"width: 13.2944%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/canada.png\" data-id=\"3-d8f4b49-mhtqz9\" title=\"canada.png\" alt=\"canada.png\" width=\"63\" height=\"61\" /></td>\n<td style=\"width: 11.2234%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/canada.png\" data-id=\"3-d8f4b49-mhtqz9\" title=\"canada.png\" alt=\"canada.png\" width=\"57\" height=\"58\" /></td>\n<td style=\"width: 11.7578%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/mexico.png\" data-id=\"3-d8f4b7f-f0ng1h\" title=\"mexico.png\" alt=\"mexico.png\" width=\"66\" height=\"66\" /></td>\n<td style=\"width: 9.48643%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/colombia.png\" data-id=\"3-d8f4bc8-f1x67h\" title=\"colombia.png\" alt=\"colombia.png\" width=\"58\" height=\"58\" /></td>\n<td style=\"width: 8.55115%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/chile.png\" data-id=\"3-d8f4bef-1xdfv9\" title=\"chile.png\" alt=\"chile.png\" width=\"58\" height=\"58\" /></td>\n<td style=\"width: 6.94781%; text-align: center; height: 108.316px;\"><img src=\"https://kfg6bckb.media.zestyio.com/peru.png\" data-id=\"3-d8f4c0d-n2z4bt\" title=\"peru.png\" alt=\"peru.png\" width=\"59\" height=\"60\" /></td>\n<td style=\"width: 7.88309%; text-align: center;\"><img src=\"https://kfg6bckb.media.zestyio.com/brazil.png\" data-id=\"3-d8f4c40-dj2dwm\" title=\"brazil.png\" alt=\"brazil.png\" width=\"62\" height=\"62\" /></td>\n<td style=\"width: 6.01253%; text-align: center;\"><img src=\"https://kfg6bckb.media.zestyio.com/costa-rica.png\" data-id=\"3-d8f4c3f-lf3lc1\" title=\"costa-rica.png\" alt=\"costa-rica.png\" width=\"62\" height=\"62\" /></td>\n</tr>\n<tr style=\"height: 35.5556px;\">\n<td style=\"width: 11.8914%; text-align: center; height: 35.5556px;\">\n<p>English,</p>\n<p>US</p>\n</td>\n<td style=\"width: 12.9603%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>US</p>\n</td>\n<td style=\"width: 13.2944%; text-align: center; height: 35.5556px;\">\n<p>French,</p>\n<p>CA</p>\n</td>\n<td style=\"width: 11.2234%; text-align: center; height: 35.5556px;\">\n<p>English,</p>\n<p>CA</p>\n</td>\n<td style=\"width: 11.7578%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>MX</p>\n</td>\n<td style=\"width: 9.48643%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>CO</p>\n</td>\n<td style=\"width: 8.55115%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>CL</p>\n</td>\n<td style=\"width: 6.94781%; text-align: center; height: 35.5556px;\">\n<p>Spanish,</p>\n<p>PE</p>\n</td>\n<td style=\"width: 7.88309%; text-align: center;\">\n<p>Portuguese,</p>\n<p>BL</p>\n</td>\n<td style=\"width: 6.01253%; text-align: center;\">\n<p>Spanish,</p>\n<p>CR</p>\n</td>\n</tr>\n</tbody>\n</table>\n<h2 dir=\"ltr\">The Results</h2>\n<p dir=\"ltr\">The process from migration to launch took only 60 days. With the company no longer limited and burdened by their tech stack, they could focus on driving their expansion and scalability efforts. Now they can deliver content in multiple languages to different regions worldwide and enable SEO features accordingly.</p>\n<p dir=\"ltr\">The company’s Head of SEO had this to say about the successful implementation of Zesty.io, </p>\n<blockquote>\n<p dir=\"ltr\">“Congratulations Team Zesty! It is the first time that a CMS does not limit me in everything I want to do. I have achieved everything I have set out to do so far. Great product 👍”.</p>\n</blockquote>\n<p dir=\"ltr\">To further strengthen their presence, the company plans to continue expanding with Zesty.io for their mobile apps too.</p></div>\n</div>\n",
"json": null
}
}
}
]
},
"_column_1_title": "7-f49680e5fe-f0p097",
"column_1_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 6,
"data": [
{
"nav_item_name": "Finance",
"page_link": {
"type": "relationship",
"model": "for_personas_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/finance-fintech-cms/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2847-1l00k1",
"url": "https://kfg6bckb.media.zestyio.com/Finance-nav.png"
}
]
},
"sort_order": "2",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-c6d6f9bbf5-1j8cqj",
"createdAt": "2022-12-01 23:28:24",
"updatedAt": "2022-12-01 23:28:23",
"listed": "1",
"version": "7",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Gaming",
"page_link": {
"type": "relationship",
"model": "for_personas_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/gaming-cms/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf289a-gqqnsn",
"url": "https://kfg6bckb.media.zestyio.com/Gaming-nav.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-849fc092d8-xz82w3",
"createdAt": "2022-12-01 23:28:36",
"updatedAt": "2022-12-01 23:28:35",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Insurance",
"page_link": {
"type": "relationship",
"model": "for_industry_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/insurance-cms/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf286d-wpl4n5",
"url": "https://kfg6bckb.media.zestyio.com/Insurance.png"
}
]
},
"sort_order": "4",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-dac8b0dcf2-pz9vcl",
"createdAt": "2022-12-01 23:28:13",
"updatedAt": "2022-12-01 23:28:12",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Digital publishing",
"page_link": {
"type": "relationship",
"model": "for_personas_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/digital-publishing-cms/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf28c7-swl8lv",
"url": "https://kfg6bckb.media.zestyio.com/Publishing-nav.png"
}
]
},
"sort_order": "5",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-d6bfccdcff-fftk1x",
"createdAt": "2022-12-01 23:28:51",
"updatedAt": "2022-12-01 23:28:51",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"meta": {
"type": "item",
"model_name": null,
"model_alternate_name": "",
"zuid": null,
"createdAt": null,
"updatedAt": null,
"listed": null,
"version": null,
"locale": [],
"model": {
"type": "model",
"zuid": null,
"name": null,
"label": null,
"resourceURI": "https://www.zesty.io/-/instant/.json"
}
}
},
{
"nav_item_name": "Franchises",
"page_link": {
"type": "relationship",
"model": "for_personas_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/franchises/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2922-vd2xhr",
"url": "https://kfg6bckb.media.zestyio.com/franchise-nav.png"
}
]
},
"sort_order": "6",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-f6c8afd4c1-rw2w74",
"createdAt": "2022-11-29 14:17:51",
"updatedAt": "2022-11-29 14:17:51",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_2_title": "7-f8c88fc1c3-b64fth",
"column_2_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 3,
"data": [
{
"nav_item_name": "Developers",
"page_link": {
"type": "relationship",
"model": "for_developers",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/for-developers/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf29d8-j04d5c",
"url": "https://kfg6bckb.media.zestyio.com/devs-nav.png"
}
]
},
"sort_order": "1",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-e8d6add8e3-czz8dv",
"createdAt": "2022-11-29 14:18:03",
"updatedAt": "2022-11-29 14:18:03",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Marketers",
"page_link": {
"type": "relationship",
"model": "for_personas_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/marketers/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2a07-948zfv",
"url": "https://kfg6bckb.media.zestyio.com/Marketers-nav.png"
}
]
},
"sort_order": "2",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-86e0a286d7-3mj2ns",
"createdAt": "2022-11-29 14:18:13",
"updatedAt": "2022-11-29 14:18:13",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Business leaders",
"page_link": {
"type": "relationship",
"model": "for_personas_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/use-case/business-leaders/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2a25-sb7ntx",
"url": "https://kfg6bckb.media.zestyio.com/bus-leaders-nav.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-98a9bd9ffa-7tpnfc",
"createdAt": "2022-11-29 14:18:23",
"updatedAt": "2022-11-29 14:18:22",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_3_title": "7-d6888d9aa9-v7w4zn",
"column_3_items_if_needed": null,
"callout_3_image": null,
"callout_3_title": null,
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": null,
"callout_4_link": null,
"callout_4_internal_link": null,
"callout_3_internal_link": null,
"callout_1_external_link_if_needed": null,
"flyout_cta": "https://www.zesty.io/mindshare/customer-stories/",
"flyout_cta_title": "See all customer stories",
"column_one_title": "By Industry",
"column_two_title": "By role",
"column_three_title": "Customer Stories",
"callout_image_2": null,
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-dcf0dfe0fb-87slx9",
"createdAt": "2022-11-21 17:30:10",
"updatedAt": "2022-11-21 17:30:09",
"listed": "1",
"version": "6",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
},
{
"nav_title": "Integrations",
"link": null,
"sort_order": "3",
"sub_nav_items": null,
"callout_image_1": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e4373ba-xqlcc1",
"url": "https://kfg6bckb.media.zestyio.com/Marketplace.png"
}
]
},
"callout_1_label": "Access the marketplace",
"callout_1_link": null,
"callout_2_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ea2c403-hlclrf",
"url": "https://kfg6bckb.media.zestyio.com/Media-app-announcement.png"
}
]
},
"callout_2_label": "See the latest product updates",
"callout_2_link": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"category_raw": null,
"category": "Product Announcements",
"sort_order": "8",
"description": "The latest product updates from the Zesty.io team.",
"cta_button": null,
"cta_href": null,
"header_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-d81dfeb-l8x2ft",
"url": "https://kfg6bckb.media.zestyio.com/IMG_3712.JPG"
}
]
},
"meta": {
"type": "item",
"model_name": "category",
"model_alternate_name": "Category",
"zuid": "7-ce95e5c596-blp6h8",
"createdAt": "2022-03-18 22:37:57",
"updatedAt": "2022-03-18 22:37:56",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-2ab5d0-tmzw9s",
"name": "category",
"label": "Category",
"resourceURI": "https://www.zesty.io/-/instant/6-2ab5d0-tmzw9s.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/product-announcements/",
"uri": "/mindshare/product-announcements/",
"fragment": "product-announcements",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-03-18 22:37:56",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "Product Announcements",
"seo_meta_title": "Product Announcements",
"seo_meta_description": "",
"seo_meta_keywords": null
}
}
}
]
},
"_column_1_title": null,
"column_1_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 4,
"data": [
{
"nav_item_name": "Next.js",
"page_link": {
"type": "relationship",
"model": "integrations_individual_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/integrations/nextjs-cms/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ef7383c-hwz49s",
"url": "https://kfg6bckb.media.zestyio.com/nextjs-icon-dark-background.png"
}
]
},
"sort_order": "1",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-d0bfa5eca1-9cpwwz",
"createdAt": "2022-12-16 01:13:50",
"updatedAt": "2022-12-16 01:13:49",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "React",
"page_link": {
"type": "relationship",
"model": "integrations_individual_pages",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/integrations/headless-cms-react/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2d4c-7cbchm",
"url": "https://kfg6bckb.media.zestyio.com/React-nav.png"
}
]
},
"sort_order": "2",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-b4fcc88782-lzlzdx",
"createdAt": "2022-11-29 14:19:41",
"updatedAt": "2022-11-29 14:19:40",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "GraphQL",
"page_link": null,
"external_link_if_needed": "https://www.zesty.io/marketplace/extensions/graphql/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ee14fb3-cdb8zt",
"url": "https://kfg6bckb.media.zestyio.com/GraphQL.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-daebddb2b6-q4fzbp",
"createdAt": "2022-11-29 10:24:00",
"updatedAt": "2022-11-29 10:23:59",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Material UI",
"page_link": null,
"external_link_if_needed": "https://www.zesty.io/marketplace/extensions/mui/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ee14fd5-94g00w",
"url": "https://kfg6bckb.media.zestyio.com/material-ui.png"
}
]
},
"sort_order": "6",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-e4dedce3df-3s5kfn",
"createdAt": "2022-11-29 10:24:31",
"updatedAt": "2022-11-29 10:24:31",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_2_title": null,
"column_2_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 3,
"data": [
{
"nav_item_name": "Node.js",
"page_link": null,
"external_link_if_needed": "https://www.zesty.io/marketplace/extensions/nodejs/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ee15023-w643x8",
"url": "https://kfg6bckb.media.zestyio.com/nodejs.H137RIQws.png"
}
]
},
"sort_order": "4",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-ae93cbffe5-9p1z47",
"createdAt": "2022-11-29 10:25:46",
"updatedAt": "2022-11-29 10:25:45",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "jQuery",
"page_link": null,
"external_link_if_needed": "https://www.zesty.io/marketplace/modules/jquery/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ee15044-21fgfv",
"url": "https://kfg6bckb.media.zestyio.com/jquery.rkTSRLmwo.png"
}
]
},
"sort_order": "5",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-88f4c2d3d1-mv29qd",
"createdAt": "2022-11-29 10:26:17",
"updatedAt": "2022-11-29 10:26:16",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Templates",
"page_link": null,
"external_link_if_needed": "https://www.zesty.io/marketplace/templates/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ee1506f-49fjgv",
"url": "https://kfg6bckb.media.zestyio.com/template.png"
}
]
},
"sort_order": "7",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-bcd9bcf590-4p6dqs",
"createdAt": "2022-11-29 10:27:01",
"updatedAt": "2022-11-29 10:27:01",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_3_title": null,
"column_3_items_if_needed": null,
"callout_3_image": null,
"callout_3_title": null,
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": null,
"callout_4_link": null,
"callout_4_internal_link": null,
"callout_3_internal_link": null,
"callout_1_external_link_if_needed": "https://www.zesty.io/marketplace/",
"flyout_cta": "https://www.zesty.io/roadmap/",
"flyout_cta_title": "Product Roadmap",
"column_one_title": "Integrations",
"column_two_title": "",
"column_three_title": "Product Insights",
"callout_image_2": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ea2c403-hlclrf",
"url": "https://kfg6bckb.media.zestyio.com/Media-app-announcement.png"
}
]
},
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-b2cca5adb1-t7vdkh",
"createdAt": "2023-01-10 19:07:18",
"updatedAt": "2023-01-10 19:07:18",
"listed": "1",
"version": "7",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
},
{
"nav_title": "Learn",
"link": null,
"sort_order": "3",
"sub_nav_items": null,
"callout_image_1": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ece3f3c-kwc2dp",
"url": "https://kfg6bckb.media.zestyio.com/Guide-to-js-landscape.png"
}
]
},
"callout_1_label": "Developer's guide to the best Javascript frameworks",
"callout_1_link": {
"type": "relationship",
"model": "articles",
"totalItems": 1,
"data": [
{
"hero_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ece3f3c-kwc2dp",
"url": "https://kfg6bckb.media.zestyio.com/Guide-to-js-landscape.png"
}
]
},
"screenshot": null,
"quote": null,
"youtube_id": null,
"interviewee_headshot": null,
"article": "<p dir=\"ltr\">Building frontend experiences today can be an arduous task, particularly for developers who need to be more versed in the ins and outs of JavaScript.</p>\n<p dir=\"ltr\">JavaScript is the most popular programming language around when it comes to modern web development and building frontend experiences. But with the assortment of frameworks, it can get a bit overwhelming.</p>\n<p dir=\"ltr\">Should you choose a tried-and-tested framework like Angular? Or opt for a more modern technology like Svelte? Just how many frameworks are there?</p>\n<p dir=\"ltr\">With this guide, we’ve removed that confusion for you, and we’ll offer the ultimate guide on the JavaScript framework landscape for 2023.</p>\n<h2 dir=\"ltr\">What you need to know about JavaScript</h2>\n<p dir=\"ltr\">JavaScript is the programming language of the modern web. It is critical for creating interactivity and building an engaging and enjoyable user experience. The language works in the browser and is not only used for building websites but also for other web and mobile applications. </p>\n<p dir=\"ltr\">Created in 1995 by Brendan Eich as part of Netscape, JavaScript is often confused with Java. However, JavaScript is its own language and can be considered the standard for frontend development. If you think of the fillable contact forms, animations, and image slideshows you come across on the internet, all of this is made using JavaScript. </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Vanilla JavaScript:</strong> Vanilla JavaScript is the plain version of JavaScript that doesn’t include additional libraries or frameworks. Created as a joke and popularized by Eric Wastl, it’s a reminder that JavaScript alone can be used to do several things. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Libraries:</strong> JavaScript libraries are sets of code that can be used to solve a specific problem. They include functions and objects that can be used to perform tasks. Code is flexible so that functions can be reused and repurposed rather than forcing developers to build everything from scratch each time. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Frameworks:</strong> A JavaScript framework is a tightly structured set of code. Think of it like a blueprint that must be followed. Frameworks allow you to be more efficient when working since they provide a neat structure to be followed and often provide ready-made solutions to specific problems. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\">Why is JavaScript so popular?</h3>\n<p dir=\"ltr\">The popularity of JavaScript can’t be understated as it is used as the client-side language for <a href=\"https://w3techs.com/technologies/details/cp-javascript\">98% of websites</a>, according to W3Techs. So why is JavaScript so popular?</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy to Set Up:</strong> Unlike other programming languages, JavaScript’s developer environment can be found simply by opening the browser. This makes it easy for anyone to start learning JavaScript and is why it’s popular among all experience levels. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Assortment of Libraries & Frameworks:</strong> JavaScript offers several different libraries and frameworks which can be helpful in various use cases. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Large Community:</strong> JavaScript has a vast community of users, making it easier to locate talent and find support if necessary compared to other languages. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Omni-platform:</strong> Every device uses JavaScript, from desktops and laptops to tablets, digital kiosks, and IoT devices. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Evolving Digital Experiences: </strong>As more customer demands change regarding digital experiences, companies must focus on new and emerging channels. </p>\n</li>\n</ul>\n<p dir=\"ltr\">Moreover, many organizations are also focusing on innovative approaches such as MACH architecture for building their technology ecosystems. The language at the heart of these frontend experiences is JavaScript, so the popularity can’t be expected to slow down anytime soon. </p>\n<p dir=\"ltr\">Now that we’ve explained what you need to know about JavaScript let’s dive into the frameworks.</p>\n<h2 dir=\"ltr\">Top JavaScript frameworks: key things to know</h2>\n<p>The ten frameworks we’ve highlighted have been chosen based on some of the most commonly used frameworks in <a href=\"https://survey.stackoverflow.co/2022/#most-popular-technologies-webframe\">Stack Overflow’s Developer Survey 2022</a>. Here’s a rundown of some of the key things you need to know.</p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 100.038%; height: 235.104px;\">\n<tbody>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Framework</strong></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>% of Developers Surveyed</strong></p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Best Use Case</strong></p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Biggest Pro</strong></p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Biggest Con</strong></p>\n</td>\n</tr>\n<tr style=\"height: 39.5486px;\">\n<td style=\"width: 11.8816%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_335344380344941668467844110\">Node.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">47.12%</p>\n</td>\n<td style=\"width: 34.0951%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Server-side applications</p>\n</td>\n<td style=\"width: 16.9184%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Scalability</p>\n</td>\n<td style=\"width: 17.6933%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Unstable APIs</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_583274552349991668467852559\">React</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">42.62%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Social media apps (e.g. Facebook)</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Scalability</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Short development cycles</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_519939232355961668467858204\">jQuery</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">28.57%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">WordPress themes</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Easy learning curve</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Debugging challenges</p>\n</td>\n</tr>\n<tr>\n<td style=\"width: 11.8816%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_566157726361221668467870826\">Express</a></p>\n</td>\n<td style=\"width: 19.3722%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">22.99%</p>\n</td>\n<td style=\"width: 34.0951%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">RESTful APIs</p>\n</td>\n<td style=\"width: 16.9184%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Customizability</p>\n</td>\n<td style=\"width: 17.6933%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Callbacks</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_826755481366441668467877341\">Angular</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">20.39%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Real-time data applications (e.g. weather app)</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">MVC architecture</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Complexity</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_64681093376261668467885069\">Vue.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">18.82%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Single-page applications</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Tiny size</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Not ideal for large projects</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_282755291381541668467890580\">Next.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">13.52%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Large complex websites (e.g. eCommerce websites)</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Easy configuration</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Routing</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_781768579387871668467896179\">Svelte</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">4.58%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Complex visualizations</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">No virtual DOM</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">No-cross platform use</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_515054938393191668467903223\">Nuxt.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">3.83%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Server-side rendered applications</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Automatic code splitting</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Fewer resources</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_373330741398801668467909921\">Gatsby</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">3.46%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Jamstack sites</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Page loading times</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Build time</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p></p>\n<h2 dir=\"ltr\">Deep dive into the top Javascript frameworks</h2>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/nextjs.S1QbfNzZo.png\" data-id=\"3-e8023fb-gg33pv\" title=\"nextjs.S1QbfNzZo.png\" alt=\"nextjs.S1QbfNzZo.png\" /></p>\n<h3 dir=\"ltr\" id=\"h_282755291381541668467890580\">Next.js</h3>\n<p dir=\"ltr\">Website: <a href=\"https://nextjs.org/\">https://nextjs.org/</a> </p>\n<p dir=\"ltr\">Latest Release & Version: <a href=\"https://nextjs.org/blog/next-13\">Next.js 13</a> Shipped October 2022. </p>\n<h4 dir=\"ltr\">What is it?</h4>\n<p dir=\"ltr\">Next.js is an open-source web development framework based on React. Developers use Next.js for building fast and typically static pages and content. However, it can also be used with dynamic content and data. </p>\n<p dir=\"ltr\">There are three types of rendering available with Next.js: server-side rendering, client-side rendering, and static site generation. It also offers automatic code splitting, which can help to improve performance and make sites more responsive.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Next.js’ key features include server-side rendering, static site generation, static routing, and centralized development. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Large Complex Websites:</strong> Next.js is perfect for applications that require speed and swift response times, even as the design and UI elements become complex over time. For example, eCommerce sites where the customer experience is impacted by speed.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Landing Pages:</strong> Next.js works well for pre-rendered landing pages.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>SEO:</strong> Next.js is an excellent solution for large websites that require SEO-optimized content. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\"><a href=\"https://zesty.org/tools/next.js-integration\"><img src=\"https://kfg6bckb.media.zestyio.com/Nextjs-docs.png\" data-id=\"3-e7b23eb-cgjcvt\" title=\"Nextjs-docs.png\" alt=\"Nextjs-docs.png\" /></a></h4>\n<h4 dir=\"ltr\">Next.js Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Speed:</strong> Next.js offers unmatched page pre-rendering speed. This enables any changes made to a website to be visible in real-time.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy to Configure and Code:</strong> Next.js was built to simplify the deployment of React applications. It involves no-config web development with an easy-to-manage project flow. Consequently, making it an excellent framework for beginners to start their development journey and build complex applications using less code.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Image Optimization:</strong> Next.js allows developers to scale images smoothly according to changing viewports.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Next.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Routing:</strong> The routing system in Next.js is based on a filing system that only supports predefined static routing. Additional tools are required to incorporate dynamic routing in a Next.js application.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Restrictive:</strong> Next.js lacks flexibility for customizing its development features. It can feel a bit restrictive for developers.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Community Size:</strong> Next.js is newer than other long-established JavaScript frameworks. As a result, the community isn’t as vast as other frameworks, such as React or Vue. </p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/react.png\" data-id=\"3-e8024af-nwhtms\" title=\"react.png\" alt=\"react.png\" /></p>\n<h3 dir=\"ltr\" id=\"h_583274552349991668467852559\">React.js</h3>\n<p dir=\"ltr\">Website: <a href=\"https://reactjs.org/\">https://reactjs.org/</a> </p>\n<p dir=\"ltr\">Latest Release & Version: <a href=\"https://github.com/facebook/react/blob/main/CHANGELOG.md#1820-june-14-2022\">Version 18.2 </a>was released in June 2022. </p>\n<h4 dir=\"ltr\">What is it?</h4>\n<p dir=\"ltr\">React is a JavaScript library used to build user interfaces and can cater to small or large websites alike. Developed by Meta (formerly Facebook) in 2011, React has been used as an open-source software since 2013. </p>\n<p dir=\"ltr\">React follows a modular approach to building user interfaces by breaking complex UI elements into HTML components.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">React’s key features include its reusable components, declarative and extensible code, dynamic routing, and client-side rendering.</p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Social Media Apps:</strong> Platforms such as Facebook and WhatsApp that require code to be compatible with both web and mobile app environments are one of the primary use cases of React. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>News & email:</strong> React is used by Yahoo since it’s perfect for large platforms that require dealing with real-time data.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Single-Page Applications:</strong> Platforms that require dynamic re-writing of web pages, including single-page applications like Airbnb, are also ideal use cases for React.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">React.js Pros </h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Reusability:</strong> The components in React simplify web development for everyone. Whether you want to use a small part of React or create a React app, these reusable components can be fixed anywhere and rendered whenever required.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Scalability:</strong> React was built to scale with web applications. React seamlessly adapts and extends to scale as much as required from small to big websites. For added features, React can easily be integrated with other frameworks to build a complete application. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy Coding: </strong>Most web developers are already familiar with JavaScript, as it is the most used language in web development. This familiarity brings ease and flexibility in coding with React.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">React.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>View Layer:</strong> On its own, React is meant for building just the user interface of an application. To reach its full potential, developers must integrate React with state container platforms.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Short Development Cycles:</strong> React is a constantly growing framework that goes through short development cycles to keep up with the development environment. The constant modifications require developers to relearn certain concepts regularly, which can be challenging.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Outdated Documentation:</strong> Another con of React’s short development cycles is that the documentation also falls behind in incorporating the rapid changes in its development environment.</p>\n</li>\n</ul>\n<p><em>Read more: <a href=\"/mindshare/nextjs-vs-react/\">Compare React.js to Next.js</a></em></p>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/vue-js.png\" data-id=\"3-ece3ae5-3q24dl\" title=\"vue-js.png\" alt=\"vue-js.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_64681093376261668467885069\">Vue</h3>\n<p dir=\"ltr\">Website: <a href=\"https://vuejs.org/\">https://vuejs.org/</a> </p>\n<p dir=\"ltr\">Latest Release & Version: <a href=\"https://vuejs.org/about/releases.html\">v3.2.41</a> released August 2021.</p>\n<h4 dir=\"ltr\">What is Vue?</h4>\n<p dir=\"ltr\">Vue.js is a JavaScript framework that Evan You created in 2014. A progressive framework, Vue.js is used to build user interfaces and SPAs and is incrementally adoptable from its core. Depending on the use case, it can also be used as a framework or a library. </p>\n<p dir=\"ltr\">Unlike other frameworks that have massive backing from the likes of Facebook and Google, Vue has grown in popularity through a vibrant community and has wide adoption on GitHub. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of the key features of Vue.js that make it popular include support for ES5-compliant browsers, a core library that focuses only on the viewer, and a fast virtual DOM.</p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">Some of the best examples of what you can build using Vue.js include navigation menus and order forms. Vue.js is also used on websites including Netflix, Grammarly, and GitLab. </p>\n<h4 dir=\"ltr\">Vue.js Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Tiny Size:</strong> Vue.js is a featherweight framework that can be quickly installed and won’t negatively affect the UX or SEO.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Virtual DOM Rendering:</strong> Vue.js uses a virtual DOM to maintain its speed. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Code Readability:</strong> Vue.js components are stored in separate files as a single file, making code easier to read, maintain and fix. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Vue.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Not Ideal For Large Projects:</strong> Despite the strong community backing, Vue still needs to catch up to other frameworks regarding sizeable financial support. As a result, Vue.js isn’t often used for larger projects. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Fewer Resources: </strong>Again, the lack of financial support for Vue (compared to frameworks like React and Angular) means that there are fewer resources, like plugins, that can be used to extend the framework. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Angular.png\" data-id=\"3-ece3ae7-d0fn11\" title=\"Angular.png\" alt=\"Angular.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_826755481366441668467877341\">Angular</h3>\n<p dir=\"ltr\">Website: <a href=\"https://angularjs.org/\">https://angularjs.org/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: Google ended support for Angular ended in January 2022 </p>\n<h4 dir=\"ltr\">What is Angular?</h4>\n<p dir=\"ltr\">Angular was developed by Google and released in 2010. It is an open-source JavaScript framework that can be used to create web applications. Angular leverages declarative templates, end-to-end tooling, dependency injection, and more to make building web applications much easier. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Angular’s key features include support for 2-way data binding, quick and easy declaration of static documents, built-in testability, and support for dependency injection. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">The most popular use cases for Angular include building eCommerce applications, real-time data applications (weather updates), and content portal applications. </p>\n<h4 dir=\"ltr\">Angular Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>MVC Architecture:</strong> Web apps are divided into Model (data), View (the UI layer), and Controller (business logic). Development of each layer can be done in parallel, and the code is easier to understand and maintain. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Dependency Injection:</strong> Angular includes built-in rules for defining how code interacts and behaves under certain circumstances rather than creating those dependencies inside components. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Reusability:</strong> Developers can reuse components across different parts of a web application. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Angular Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Divided Community:</strong> Angular remains one of the more popular JavaScript frameworks, but its community is often divided on the capabilities of newer framework versions. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Complexity:</strong> Angular isn’t the easiest framework to use and is known to be verbose and complex, with a steep learning curve. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Nuxtjs.png\" data-id=\"3-e8023c7-mkq6q6\" title=\"Nuxtjs.png\" alt=\"Nuxtjs.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_515054938393191668467903223\">Nuxt</h3>\n<p dir=\"ltr\">Website: <a href=\"https://nuxtjs.org/\">https://nuxtjs.org/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://nuxtjs.org/releases\">Version v2.15.8</a> was released on August 11, 2021. </p>\n<h4 dir=\"ltr\">What is Nuxt?</h4>\n<p dir=\"ltr\">Nuxt.js is an open-source JavaScript framework for building web applications. Inspired by Next.js, it is based on vue.js, node.js, Babel.js, and webpack. For Vue developers, Nuxt.js enables simple, quick, and organized web development. </p>\n<p dir=\"ltr\">Nuxt.js include highly effective functionality for web application development and static site generation. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Nuxt.js’ key features include: </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Data Fetching:</strong> Nuxt.js allows you to fetch content from any source in Vue components, making them SSR-ready. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Zero Configuration:</strong> Start projects in seconds with zero configuration.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Components Auto-Import:</strong> It features immediate import of any component/directory with smart-code splitting.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>SEO Optimization:</strong> Nuxt.js includes meta tag management, enabling quicker content time for great indexing.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">Nuxt.js is ideal for building SPAs and use cases that require server-side rendering or static site generation. </p>\n<h4 dir=\"ltr\">Nuxt Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Enables deployment of fast and SEO-friendly full-stack Vue apps</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Simple to use with a gradual learning curve</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Provides versatility between SSR and SSG</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Features automatic code splitting, solid directory layout and conventions, and effective teamwork</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Nuxt Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Fewer resources and less extensive documentation due to a smaller community</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Lack of some useful plugins and components, including Calendar, Google maps, etc.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Sometimes high traffic may burden your server</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Only specific HOOKs enable Interaction with the DOM and query</p>\n</li>\n</ul>\n<p><br /><em>Read more: <a href=\"/mindshare/nuxtjs-vs-nextjs/\">Compare Next.js to Nuxt.js</a></em></p>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/svelte.png\" data-id=\"3-ece3b22-rg2sdw\" title=\"svelte logo\" alt=\"svelte logo\" /></h3>\n<h3 dir=\"ltr\" id=\"h_781768579387871668467896179\">Svelte</h3>\n<p dir=\"ltr\">Website: <a href=\"https://svelte.dev/\">https://svelte.dev/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://github.com/sveltejs/svelte/releases/tag/v3.52.0\">v3.52.0</a> released October 2022. </p>\n<h4 dir=\"ltr\">What is Svelte?</h4>\n<p dir=\"ltr\">Svelte is an open-source JavaScript framework similar to other frameworks such as React and Vue. While it enables developers to build interactive web applications just as they would with other frameworks, Svelte also offers a unique developer experience. </p>\n<p dir=\"ltr\">While other frameworks do most of the work in the browser, Svelte works while the app is being built and compiles to Vanilla JavaScript which in turn reduces the overhead and improves readability. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Svelte’s key features include fewer code requirements allowing for greater efficiency and no virtual DOM. </p>\n<h4 dir=\"ltr\">Use Cases</h4>\n<p dir=\"ltr\">Svelte is useful for building small components of a user interface. Some of the primary use cases include web applications for low-power devices, interactive pages and complex visualizations. </p>\n<h4 dir=\"ltr\">Svelte Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Usability:</strong> Svelte includes an easier syntax for developers since code can be written into a .html or .svelte file without using “this” in code blocks. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Reduced Overhead:</strong> Code is compiled into Vanilla JavaScript. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>No Virtual DOM:</strong> Declarative and state-driven code isn’t required with Svelte, removing the need for a virtual DOM. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Svelte Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>No-Cross Platform Use:</strong> Svelte requires you to re-write code if you want to use it for both a web and mobile application.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Youthfulness:</strong> Svelte is a newer JavaScript framework, meaning that there aren’t many development tools or a solid community to draw support from. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/express-js.png\" data-id=\"3-ece3ba7-zx65xg\" title=\"express logo\" alt=\"express logo\" /></h3>\n<h3 dir=\"ltr\" id=\"h_566157726361221668467870826\">Express</h3>\n<p dir=\"ltr\">Website: <a href=\"https://expressjs.com/\">https://expressjs.com/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://github.com/expressjs/express/releases/tag/4.18.2\">4.18.2</a> was released in October 2022. </p>\n<h4 dir=\"ltr\">What is Express?</h4>\n<p dir=\"ltr\">Express.js is a flexible and minimalistic Node.js framework used for backend development. It was originally released as a free, open-source framework in 2010 under an MIT license. Express.js was made for building web applications and APIs and is the standard framework for Node.js.</p>\n<p dir=\"ltr\">Express allows developers to save time and resources rather than build a backend from scratch using Node.js.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Express.js’ key features include faster server-side development, an advanced routing mechanism, and templating engines. </p>\n<h4 dir=\"ltr\">Use Cases</h4>\n<p dir=\"ltr\">Express.js is primarily used for building RESTful APIs. </p>\n<h4 dir=\"ltr\">Express Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Ease of Learning:</strong> Developers with experience using other JavaScript frameworks, particularly Node.js, will find Express.js easy to learn. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Customizability:</strong> Express.js can be customized to fit user needs. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Express Cons</h4>\n<p dir=\"ltr\">Callback problems and client request issues due to the middleware are some of the main cons of Express.js.</p>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/nodejs.ryk2KrxLi.png\" data-id=\"3-ece3ba7-s519bk\" title=\"node.js logo\" alt=\"node.js logo\" /></p>\n<h3 dir=\"ltr\" id=\"h_335344380344941668467844110\">Node.js</h3>\n<p dir=\"ltr\">Website: <a href=\"https://nodejs.org/en/\">https://nodejs.org/en/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version:<a href=\"https://github.com/nodejs/release#release-schedule\"> v19.x</a> released October 2022</p>\n<h4 dir=\"ltr\">What is Node.js?</h4>\n<p dir=\"ltr\">Node.js is a server-side JavaScript runtime that runs on Chrome’s V8 JavaScript engine. Node.js executes JavaScript code outside of the browser and helps developers build fast, scalable, and reliable server-side applications. Developers can use Node.js to convert JavaScript code into machine code.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some key features of Node.js include fast code executive, a single-threaded model, quick data streaming, and minimum buffering. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">The primary use cases for Node.js include building server-side applications, browser-based games, and real-time web applications. Companies like GoDaddy, LinkedIn, and IBM leverage Node.js for various use cases.</p>\n<h4 dir=\"ltr\">Node.js Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Scalability: </strong>Node.js is highly scalable and can manage multiple requests simultaneously, prioritizing them without slowing down.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Vibrant Community: </strong>As the primary backend development framework for JavaScript, Node.js features a large and engaged community of developers.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Node.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Nested Callback Issue: </strong>Running multiple queued tasks in the background can lead to nested callbacks that make code difficult to understand. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Unstable API:</strong> Node.js APIs aren’t stable, which can cause issues when migrating data. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Gatsby.png\" data-id=\"3-e8ffd02-kr7bgs\" title=\"Gatsby.png\" alt=\"Gatsby.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_373330741398801668467909921\">Gatsby</h3>\n<p dir=\"ltr\">Website: <a href=\"https://www.gatsbyjs.com/\">https://www.gatsbyjs.com/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://www.npmjs.com/package/gatsby/v/4.7.2\">Version 4.7.2</a> was released in February 2022.</p>\n<h4 dir=\"ltr\">What is Gatsby?</h4>\n<p dir=\"ltr\">Gatsby is an open-source frontend framework originally viewed as simply a Static Site Generator. However, the framework has now evolved to include server-side rendering. Both approaches include pre-rendering functionality, which adds to the user experience by providing faster loading times.</p>\n<p dir=\"ltr\">Gatsby’s design approach is meant to keep the native code as lightweight as possible. It includes a vast ecosystem of plugins and templates to compensate for any feature loss. These templates and plugins provide developers with an easy starting point for their development journey and additional capabilities for their applications. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of the key features Gatsby offers include the pre-rendering of pages to reduce server requirements, a vast open-source plugin ecosystem, and high performance. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">Gatsby has several use cases, including B2B SaaS websites and eCommerce applications. It is a frequently used static site generator and beneficial for progressive web applications and building Jamstack sites. </p>\n<h4 dir=\"ltr\">Gatsby Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>SEO:</strong> Gatsby provides SEO-efficient performance and speed.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Page Loading:</strong> Gatsby loads websites quickly, meaning that companies can reduce bounce rates.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Gatsby Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Build Time:</strong> Due to static loading Gatsby can take a long time to update, notably if a web application features tons of content. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Fewer Developers:</strong> While Gatsby is famous as a static site generator, it isn’t necessarily a go-to framework for developers since it can sometimes be complicated to use. </p>\n</li>\n</ul>\n<p><em>Read more: <a href=\"/mindshare/nextjs-vs-gatsby/\">Next.js vs Gatsby</a></em></p>\n<p><em><img src=\"https://kfg6bckb.media.zestyio.com/jquery.png\" data-id=\"3-ece3a86-ppq404\" title=\"jQuery logo\" alt=\"jQuery logo\" /></em></p>\n<h3 dir=\"ltr\" id=\"h_519939232355961668467858204\">jQuery</h3>\n<p dir=\"ltr\">Website: <a href=\"https://jquery.com/\">https://jquery.com/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://jquery.com/download/\">Version 3.6.1</a> was released in August 2022. </p>\n<h4 dir=\"ltr\">What is jQuery?</h4>\n<p dir=\"ltr\">jQuery is an older JavaScript framework and library created in 2006 by John Resign. The free, open-source software is licensed by MIT and is lightweight and feature-rich. jQuery enables simpler HTML document manipulation, traversal, and event handling. </p>\n<p dir=\"ltr\">Many sites rely on jQuery as it is easy to use with a minimalist API with a syntax similar to CSS, making it easy to learn. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of jQuery’s key features include HTML/DOM manipulation, HTML event methods, and CSS manipulation. It also contains several plugins for numerous tasks. </p>\n<h4 dir=\"ltr\">Use Cases</h4>\n<p dir=\"ltr\">Some of the most popular use cases for jQuery include building Ajax-based applications and as a key component in WordPress themes. </p>\n<h4 dir=\"ltr\">jQuery Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy to Learn:</strong> jQuery follows a clean and simple syntax, making its code easy to read, understand, and learn. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Popularity:</strong> jQuery is one of the most popular frameworks, used by <a href=\"https://w3techs.com/technologies/details/js-jquery\">over 70% of websites</a>.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Extensibility: </strong>The vast ecosystem of plugins available for jQuery means that it can be easily extended to improve application functionality. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">jQuery Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Not Great for Complex Projects:</strong> jQuery offers easy DOM manipulation, but this can backfire when building complex projects as the features can seem limited. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Debugging Issues:</strong> Adding more plugins and features also increases the number of dependencies in applications built using jQuery. This can present various debugging issues that take more work to resolve. </p>\n</li>\n</ul>\n<h2 dir=\"ltr\">Honorable Mentions</h2>\n<p dir=\"ltr\">While outside the Top 10 JavaScript frameworks found in Stack Overflow’s survey, these other five frameworks continue to grow in popularity, and developers should take note of them.</p>\n<h3 dir=\"ltr\">Nest</h3>\n<p dir=\"ltr\"><a href=\"https://nestjs.com/\">Nest.js</a> is a Node framework primarily for developing server-side applications. Released in 2017 as an open-source web development platform, Nest.js framework is built using Typescript and offers a component-based architecture inspired by Angular. Some characteristics of applications built using Nest.js include high scalability and testability.</p>\n<p dir=\"ltr\"><a href=\"/mindshare/nestjs-vs-nextjs/\"><em>Compare Next.js to Next.js.</em></a></p>\n<h3 dir=\"ltr\">TypeScript</h3>\n<p dir=\"ltr\">TypeScript isn’t a JavaScript framework per se but rather an object-oriented, compiled programming language that builds on JavaScript. Known as a superset of JavaScript, TypeScript provides tooling at any scale and is often referred to as JavaScript with more features. The open-source language and framework include backing from Microsoft, which should explain its growing popularity. </p>\n<h3 dir=\"ltr\">Bootstrap</h3>\n<p dir=\"ltr\">Bootstrap is an open-source framework for frontend development that enables developers to build fast and mobile responsive websites. Originally released in 2011, Bootstrap gives developers increased flexibility and saves them time, particularly when writing CSS code. </p>\n<h3 dir=\"ltr\">Backbone</h3>\n<p dir=\"ltr\">Backbone.js is a lightweight JavaScript framework based on the model view presenter (MVP) architecture. Backbone essentially separates concerns which enable a better structured and maintained application. Created in 2010, Backbone includes a RESTful JSON interface that is beneficial for building client-side web applications.</p>\n<h3 dir=\"ltr\">Remix</h3>\n<p dir=\"ltr\">Remix is a full-stack JavaScript framework for web development. It was created by the React-router team in 2020 and open-sourced in 2021. This latest addition to the React-based tools provides an edge native framework for building modern, fast, and robust developer and user experiences.</p>\n<p dir=\"ltr\"><a href=\"/mindshare/remix-vs--next-js/\"><em>Compare Next.js to Remix.</em></a></p>\n<h2 dir=\"ltr\">Zesty.io: The Ultimate JavaScript CMS</h2>\n<p dir=\"ltr\">We’ve only listed a handful of JavaScript frameworks, but the ecosystem is enormous, and new updates are being released regularly. Regardless of the JavaScript framework, having a robust CMS that can help you get the most out of the front-end experience is crucial. </p>\n<p dir=\"ltr\">Zesty.io is a flexible <a href=\"https://www.zesty.io/solutions/headless-cms/\">headless CMS</a> that integrates with any JavaScript framework. With Zesty.io, everything is handled in the backend while you have total control over where and how your content is deployed. Zesty.io also includes an easy-to-use schema for content modeling, automated SEO, and faster page loading times.</p>\n<p dir=\"ltr\">While being a headless CMS and framework agnostic enables Zesty.io to handle any JavaScript framework, we are firm advocates of Next.js and allow you to get more out of Next.js than any other headless CMS. With our Next.js integration, you can automatically resolve Next.js pages using minimal configuration, change content schemas how you need without worrying about changing code, and so much more. </p>\n<p dir=\"ltr\">Also, unlike other headless CMSs that don’t cater to content authors, Zesty.io offers hybrid functionality to give them a similar content authoring experience to the one they might have known from a traditional CMS. </p>\n<p>Now you can build the perfect digital experiences for your audience with a flexible-API headless CMS. Take a look at our <a href=\"https://www.zesty.io/integrations/nextjs-cms/\">Next.js integration to learn more</a>. </p>\n<p><a href=\"/integrations/nextjs-cms/?UTM_source=organic&UTM_medium=article&UTM_campaign=jsguide\"><img src=\"https://kfg6bckb.media.zestyio.com/NEXTJS-EXPERIENCE.png\" data-id=\"3-e8017ab-b44lhf\" title=\"40.png\" alt=\"40.png\" /></a></p>",
"title": "A Developer's Guide to the JavaScript Framework Landscape 2023",
"description": "Understand the pros and cons of the top 10 javascript frameworks, plus their best use cases",
"author": {
"type": "relationship",
"model": "authors",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"date": "2022-11-14",
"tags": {
"type": "relationship",
"model": "tags",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"interviewee_name": null,
"thumbnail_image": null,
"category": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"related_articles": null,
"meta": {
"type": "item",
"model_name": "articles",
"model_alternate_name": "Article",
"zuid": "7-88d2cff491-s8t200",
"createdAt": "2022-11-14 23:25:38",
"updatedAt": "2022-11-14 23:25:38",
"listed": "1",
"version": "29",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-45a908-qfw88c",
"name": "articles",
"label": "Articles",
"resourceURI": "https://www.zesty.io/-/instant/6-45a908-qfw88c.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/developers-guide-to-javascript-frameworks-2023/",
"uri": "/mindshare/developers-guide-to-javascript-frameworks-2023/",
"fragment": "developers-guide-to-javascript-frameworks-2023",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-11-14 23:25:38",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "A Developer's Guide to the JavaScript Frameworks 2023",
"seo_meta_title": "Developer's Guide to the Best JavaScript Frameworks 2023",
"seo_meta_description": "The top frontend Javascript frameworks to use in 2023, including an in-depth look at their pros, cons, and best use cases. Includes React, Next js, and Node js.",
"seo_meta_keywords": null
},
"layout": {
"html": "<div class=\"pvlRoot\">\n\t<div style=\"display:flex\">\n\t\t<div style=\"flex:2\" class=\"pvlColumn\">\n\t\t\t<h1 class=\"pvlHeader\">A Developer's Guide to the JavaScript Framework Landscape 2023</h1>\n\t\t</div>\n\t\t<div style=\"flex:4\" class=\"pvlColumn\">\n\t\t\t<img src=\"https://kfg6bckb.media.zestyio.com/Guide-to-js-landscape.png\" alt=\"@\" width=\"100%\" />\n\t\t</div>\n\t</div>\n\t<div class=\"pvlRichtext\"><p dir=\"ltr\">Building frontend experiences today can be an arduous task, particularly for developers who need to be more versed in the ins and outs of JavaScript.</p>\n<p dir=\"ltr\">JavaScript is the most popular programming language around when it comes to modern web development and building frontend experiences. But with the assortment of frameworks, it can get a bit overwhelming.</p>\n<p dir=\"ltr\">Should you choose a tried-and-tested framework like Angular? Or opt for a more modern technology like Svelte? Just how many frameworks are there?</p>\n<p dir=\"ltr\">With this guide, we’ve removed that confusion for you, and we’ll offer the ultimate guide on the JavaScript framework landscape for 2023.</p>\n<h2 dir=\"ltr\">What you need to know about JavaScript</h2>\n<p dir=\"ltr\">JavaScript is the programming language of the modern web. It is critical for creating interactivity and building an engaging and enjoyable user experience. The language works in the browser and is not only used for building websites but also for other web and mobile applications. </p>\n<p dir=\"ltr\">Created in 1995 by Brendan Eich as part of Netscape, JavaScript is often confused with Java. However, JavaScript is its own language and can be considered the standard for frontend development. If you think of the fillable contact forms, animations, and image slideshows you come across on the internet, all of this is made using JavaScript. </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Vanilla JavaScript:</strong> Vanilla JavaScript is the plain version of JavaScript that doesn’t include additional libraries or frameworks. Created as a joke and popularized by Eric Wastl, it’s a reminder that JavaScript alone can be used to do several things. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Libraries:</strong> JavaScript libraries are sets of code that can be used to solve a specific problem. They include functions and objects that can be used to perform tasks. Code is flexible so that functions can be reused and repurposed rather than forcing developers to build everything from scratch each time. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Frameworks:</strong> A JavaScript framework is a tightly structured set of code. Think of it like a blueprint that must be followed. Frameworks allow you to be more efficient when working since they provide a neat structure to be followed and often provide ready-made solutions to specific problems. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\">Why is JavaScript so popular?</h3>\n<p dir=\"ltr\">The popularity of JavaScript can’t be understated as it is used as the client-side language for <a href=\"https://w3techs.com/technologies/details/cp-javascript\">98% of websites</a>, according to W3Techs. So why is JavaScript so popular?</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy to Set Up:</strong> Unlike other programming languages, JavaScript’s developer environment can be found simply by opening the browser. This makes it easy for anyone to start learning JavaScript and is why it’s popular among all experience levels. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Assortment of Libraries & Frameworks:</strong> JavaScript offers several different libraries and frameworks which can be helpful in various use cases. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Large Community:</strong> JavaScript has a vast community of users, making it easier to locate talent and find support if necessary compared to other languages. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Omni-platform:</strong> Every device uses JavaScript, from desktops and laptops to tablets, digital kiosks, and IoT devices. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Evolving Digital Experiences: </strong>As more customer demands change regarding digital experiences, companies must focus on new and emerging channels. </p>\n</li>\n</ul>\n<p dir=\"ltr\">Moreover, many organizations are also focusing on innovative approaches such as MACH architecture for building their technology ecosystems. The language at the heart of these frontend experiences is JavaScript, so the popularity can’t be expected to slow down anytime soon. </p>\n<p dir=\"ltr\">Now that we’ve explained what you need to know about JavaScript let’s dive into the frameworks.</p>\n<h2 dir=\"ltr\">Top JavaScript frameworks: key things to know</h2>\n<p>The ten frameworks we’ve highlighted have been chosen based on some of the most commonly used frameworks in <a href=\"https://survey.stackoverflow.co/2022/#most-popular-technologies-webframe\">Stack Overflow’s Developer Survey 2022</a>. Here’s a rundown of some of the key things you need to know.</p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 100.038%; height: 235.104px;\">\n<tbody>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Framework</strong></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>% of Developers Surveyed</strong></p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Best Use Case</strong></p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Biggest Pro</strong></p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Biggest Con</strong></p>\n</td>\n</tr>\n<tr style=\"height: 39.5486px;\">\n<td style=\"width: 11.8816%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_335344380344941668467844110\">Node.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">47.12%</p>\n</td>\n<td style=\"width: 34.0951%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Server-side applications</p>\n</td>\n<td style=\"width: 16.9184%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Scalability</p>\n</td>\n<td style=\"width: 17.6933%; height: 39.5486px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Unstable APIs</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_583274552349991668467852559\">React</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">42.62%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Social media apps (e.g. Facebook)</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Scalability</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Short development cycles</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_519939232355961668467858204\">jQuery</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">28.57%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">WordPress themes</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Easy learning curve</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Debugging challenges</p>\n</td>\n</tr>\n<tr>\n<td style=\"width: 11.8816%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_566157726361221668467870826\">Express</a></p>\n</td>\n<td style=\"width: 19.3722%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">22.99%</p>\n</td>\n<td style=\"width: 34.0951%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">RESTful APIs</p>\n</td>\n<td style=\"width: 16.9184%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Customizability</p>\n</td>\n<td style=\"width: 17.6933%; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Callbacks</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_826755481366441668467877341\">Angular</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">20.39%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Real-time data applications (e.g. weather app)</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">MVC architecture</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Complexity</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_64681093376261668467885069\">Vue.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">18.82%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Single-page applications</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Tiny size</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Not ideal for large projects</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_282755291381541668467890580\">Next.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">13.52%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Large complex websites (e.g. eCommerce websites)</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Easy configuration</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Routing</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_781768579387871668467896179\">Svelte</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">4.58%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Complex visualizations</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">No virtual DOM</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">No-cross platform use</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_515054938393191668467903223\">Nuxt.js</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">3.83%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Server-side rendered applications</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Automatic code splitting</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Fewer resources</p>\n</td>\n</tr>\n<tr style=\"height: 17.7778px;\">\n<td style=\"width: 11.8816%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"#h_373330741398801668467909921\">Gatsby</a></p>\n</td>\n<td style=\"width: 19.3722%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">3.46%</p>\n</td>\n<td style=\"width: 34.0951%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Jamstack sites</p>\n</td>\n<td style=\"width: 16.9184%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Page loading times</p>\n</td>\n<td style=\"width: 17.6933%; height: 17.7778px; text-align: center;\">\n<p dir=\"ltr\" role=\"presentation\">Build time</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p></p>\n<h2 dir=\"ltr\">Deep dive into the top Javascript frameworks</h2>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/nextjs.S1QbfNzZo.png\" data-id=\"3-e8023fb-gg33pv\" title=\"nextjs.S1QbfNzZo.png\" alt=\"nextjs.S1QbfNzZo.png\" /></p>\n<h3 dir=\"ltr\" id=\"h_282755291381541668467890580\">Next.js</h3>\n<p dir=\"ltr\">Website: <a href=\"https://nextjs.org/\">https://nextjs.org/</a> </p>\n<p dir=\"ltr\">Latest Release & Version: <a href=\"https://nextjs.org/blog/next-13\">Next.js 13</a> Shipped October 2022. </p>\n<h4 dir=\"ltr\">What is it?</h4>\n<p dir=\"ltr\">Next.js is an open-source web development framework based on React. Developers use Next.js for building fast and typically static pages and content. However, it can also be used with dynamic content and data. </p>\n<p dir=\"ltr\">There are three types of rendering available with Next.js: server-side rendering, client-side rendering, and static site generation. It also offers automatic code splitting, which can help to improve performance and make sites more responsive.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Next.js’ key features include server-side rendering, static site generation, static routing, and centralized development. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Large Complex Websites:</strong> Next.js is perfect for applications that require speed and swift response times, even as the design and UI elements become complex over time. For example, eCommerce sites where the customer experience is impacted by speed.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Landing Pages:</strong> Next.js works well for pre-rendered landing pages.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>SEO:</strong> Next.js is an excellent solution for large websites that require SEO-optimized content. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\"><a href=\"https://zesty.org/tools/next.js-integration\"><img src=\"https://kfg6bckb.media.zestyio.com/Nextjs-docs.png\" data-id=\"3-e7b23eb-cgjcvt\" title=\"Nextjs-docs.png\" alt=\"Nextjs-docs.png\" /></a></h4>\n<h4 dir=\"ltr\">Next.js Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Speed:</strong> Next.js offers unmatched page pre-rendering speed. This enables any changes made to a website to be visible in real-time.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy to Configure and Code:</strong> Next.js was built to simplify the deployment of React applications. It involves no-config web development with an easy-to-manage project flow. Consequently, making it an excellent framework for beginners to start their development journey and build complex applications using less code.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Image Optimization:</strong> Next.js allows developers to scale images smoothly according to changing viewports.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Next.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Routing:</strong> The routing system in Next.js is based on a filing system that only supports predefined static routing. Additional tools are required to incorporate dynamic routing in a Next.js application.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Restrictive:</strong> Next.js lacks flexibility for customizing its development features. It can feel a bit restrictive for developers.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Community Size:</strong> Next.js is newer than other long-established JavaScript frameworks. As a result, the community isn’t as vast as other frameworks, such as React or Vue. </p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/react.png\" data-id=\"3-e8024af-nwhtms\" title=\"react.png\" alt=\"react.png\" /></p>\n<h3 dir=\"ltr\" id=\"h_583274552349991668467852559\">React.js</h3>\n<p dir=\"ltr\">Website: <a href=\"https://reactjs.org/\">https://reactjs.org/</a> </p>\n<p dir=\"ltr\">Latest Release & Version: <a href=\"https://github.com/facebook/react/blob/main/CHANGELOG.md#1820-june-14-2022\">Version 18.2 </a>was released in June 2022. </p>\n<h4 dir=\"ltr\">What is it?</h4>\n<p dir=\"ltr\">React is a JavaScript library used to build user interfaces and can cater to small or large websites alike. Developed by Meta (formerly Facebook) in 2011, React has been used as an open-source software since 2013. </p>\n<p dir=\"ltr\">React follows a modular approach to building user interfaces by breaking complex UI elements into HTML components.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">React’s key features include its reusable components, declarative and extensible code, dynamic routing, and client-side rendering.</p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Social Media Apps:</strong> Platforms such as Facebook and WhatsApp that require code to be compatible with both web and mobile app environments are one of the primary use cases of React. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>News & email:</strong> React is used by Yahoo since it’s perfect for large platforms that require dealing with real-time data.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Single-Page Applications:</strong> Platforms that require dynamic re-writing of web pages, including single-page applications like Airbnb, are also ideal use cases for React.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">React.js Pros </h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Reusability:</strong> The components in React simplify web development for everyone. Whether you want to use a small part of React or create a React app, these reusable components can be fixed anywhere and rendered whenever required.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Scalability:</strong> React was built to scale with web applications. React seamlessly adapts and extends to scale as much as required from small to big websites. For added features, React can easily be integrated with other frameworks to build a complete application. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy Coding: </strong>Most web developers are already familiar with JavaScript, as it is the most used language in web development. This familiarity brings ease and flexibility in coding with React.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">React.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>View Layer:</strong> On its own, React is meant for building just the user interface of an application. To reach its full potential, developers must integrate React with state container platforms.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Short Development Cycles:</strong> React is a constantly growing framework that goes through short development cycles to keep up with the development environment. The constant modifications require developers to relearn certain concepts regularly, which can be challenging.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Outdated Documentation:</strong> Another con of React’s short development cycles is that the documentation also falls behind in incorporating the rapid changes in its development environment.</p>\n</li>\n</ul>\n<p><em>Read more: <a href=\"/mindshare/nextjs-vs-react/\">Compare React.js to Next.js</a></em></p>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/vue-js.png\" data-id=\"3-ece3ae5-3q24dl\" title=\"vue-js.png\" alt=\"vue-js.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_64681093376261668467885069\">Vue</h3>\n<p dir=\"ltr\">Website: <a href=\"https://vuejs.org/\">https://vuejs.org/</a> </p>\n<p dir=\"ltr\">Latest Release & Version: <a href=\"https://vuejs.org/about/releases.html\">v3.2.41</a> released August 2021.</p>\n<h4 dir=\"ltr\">What is Vue?</h4>\n<p dir=\"ltr\">Vue.js is a JavaScript framework that Evan You created in 2014. A progressive framework, Vue.js is used to build user interfaces and SPAs and is incrementally adoptable from its core. Depending on the use case, it can also be used as a framework or a library. </p>\n<p dir=\"ltr\">Unlike other frameworks that have massive backing from the likes of Facebook and Google, Vue has grown in popularity through a vibrant community and has wide adoption on GitHub. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of the key features of Vue.js that make it popular include support for ES5-compliant browsers, a core library that focuses only on the viewer, and a fast virtual DOM.</p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">Some of the best examples of what you can build using Vue.js include navigation menus and order forms. Vue.js is also used on websites including Netflix, Grammarly, and GitLab. </p>\n<h4 dir=\"ltr\">Vue.js Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Tiny Size:</strong> Vue.js is a featherweight framework that can be quickly installed and won’t negatively affect the UX or SEO.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Virtual DOM Rendering:</strong> Vue.js uses a virtual DOM to maintain its speed. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Code Readability:</strong> Vue.js components are stored in separate files as a single file, making code easier to read, maintain and fix. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Vue.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Not Ideal For Large Projects:</strong> Despite the strong community backing, Vue still needs to catch up to other frameworks regarding sizeable financial support. As a result, Vue.js isn’t often used for larger projects. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Fewer Resources: </strong>Again, the lack of financial support for Vue (compared to frameworks like React and Angular) means that there are fewer resources, like plugins, that can be used to extend the framework. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Angular.png\" data-id=\"3-ece3ae7-d0fn11\" title=\"Angular.png\" alt=\"Angular.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_826755481366441668467877341\">Angular</h3>\n<p dir=\"ltr\">Website: <a href=\"https://angularjs.org/\">https://angularjs.org/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: Google ended support for Angular ended in January 2022 </p>\n<h4 dir=\"ltr\">What is Angular?</h4>\n<p dir=\"ltr\">Angular was developed by Google and released in 2010. It is an open-source JavaScript framework that can be used to create web applications. Angular leverages declarative templates, end-to-end tooling, dependency injection, and more to make building web applications much easier. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Angular’s key features include support for 2-way data binding, quick and easy declaration of static documents, built-in testability, and support for dependency injection. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">The most popular use cases for Angular include building eCommerce applications, real-time data applications (weather updates), and content portal applications. </p>\n<h4 dir=\"ltr\">Angular Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>MVC Architecture:</strong> Web apps are divided into Model (data), View (the UI layer), and Controller (business logic). Development of each layer can be done in parallel, and the code is easier to understand and maintain. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Dependency Injection:</strong> Angular includes built-in rules for defining how code interacts and behaves under certain circumstances rather than creating those dependencies inside components. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Reusability:</strong> Developers can reuse components across different parts of a web application. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Angular Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Divided Community:</strong> Angular remains one of the more popular JavaScript frameworks, but its community is often divided on the capabilities of newer framework versions. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Complexity:</strong> Angular isn’t the easiest framework to use and is known to be verbose and complex, with a steep learning curve. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Nuxtjs.png\" data-id=\"3-e8023c7-mkq6q6\" title=\"Nuxtjs.png\" alt=\"Nuxtjs.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_515054938393191668467903223\">Nuxt</h3>\n<p dir=\"ltr\">Website: <a href=\"https://nuxtjs.org/\">https://nuxtjs.org/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://nuxtjs.org/releases\">Version v2.15.8</a> was released on August 11, 2021. </p>\n<h4 dir=\"ltr\">What is Nuxt?</h4>\n<p dir=\"ltr\">Nuxt.js is an open-source JavaScript framework for building web applications. Inspired by Next.js, it is based on vue.js, node.js, Babel.js, and webpack. For Vue developers, Nuxt.js enables simple, quick, and organized web development. </p>\n<p dir=\"ltr\">Nuxt.js include highly effective functionality for web application development and static site generation. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Nuxt.js’ key features include: </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Data Fetching:</strong> Nuxt.js allows you to fetch content from any source in Vue components, making them SSR-ready. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Zero Configuration:</strong> Start projects in seconds with zero configuration.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Components Auto-Import:</strong> It features immediate import of any component/directory with smart-code splitting.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>SEO Optimization:</strong> Nuxt.js includes meta tag management, enabling quicker content time for great indexing.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">Nuxt.js is ideal for building SPAs and use cases that require server-side rendering or static site generation. </p>\n<h4 dir=\"ltr\">Nuxt Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Enables deployment of fast and SEO-friendly full-stack Vue apps</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Simple to use with a gradual learning curve</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Provides versatility between SSR and SSG</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Features automatic code splitting, solid directory layout and conventions, and effective teamwork</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Nuxt Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Fewer resources and less extensive documentation due to a smaller community</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Lack of some useful plugins and components, including Calendar, Google maps, etc.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Sometimes high traffic may burden your server</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Only specific HOOKs enable Interaction with the DOM and query</p>\n</li>\n</ul>\n<p><br /><em>Read more: <a href=\"/mindshare/nuxtjs-vs-nextjs/\">Compare Next.js to Nuxt.js</a></em></p>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/svelte.png\" data-id=\"3-ece3b22-rg2sdw\" title=\"svelte logo\" alt=\"svelte logo\" /></h3>\n<h3 dir=\"ltr\" id=\"h_781768579387871668467896179\">Svelte</h3>\n<p dir=\"ltr\">Website: <a href=\"https://svelte.dev/\">https://svelte.dev/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://github.com/sveltejs/svelte/releases/tag/v3.52.0\">v3.52.0</a> released October 2022. </p>\n<h4 dir=\"ltr\">What is Svelte?</h4>\n<p dir=\"ltr\">Svelte is an open-source JavaScript framework similar to other frameworks such as React and Vue. While it enables developers to build interactive web applications just as they would with other frameworks, Svelte also offers a unique developer experience. </p>\n<p dir=\"ltr\">While other frameworks do most of the work in the browser, Svelte works while the app is being built and compiles to Vanilla JavaScript which in turn reduces the overhead and improves readability. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Svelte’s key features include fewer code requirements allowing for greater efficiency and no virtual DOM. </p>\n<h4 dir=\"ltr\">Use Cases</h4>\n<p dir=\"ltr\">Svelte is useful for building small components of a user interface. Some of the primary use cases include web applications for low-power devices, interactive pages and complex visualizations. </p>\n<h4 dir=\"ltr\">Svelte Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Usability:</strong> Svelte includes an easier syntax for developers since code can be written into a .html or .svelte file without using “this” in code blocks. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Reduced Overhead:</strong> Code is compiled into Vanilla JavaScript. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>No Virtual DOM:</strong> Declarative and state-driven code isn’t required with Svelte, removing the need for a virtual DOM. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Svelte Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>No-Cross Platform Use:</strong> Svelte requires you to re-write code if you want to use it for both a web and mobile application.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Youthfulness:</strong> Svelte is a newer JavaScript framework, meaning that there aren’t many development tools or a solid community to draw support from. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/express-js.png\" data-id=\"3-ece3ba7-zx65xg\" title=\"express logo\" alt=\"express logo\" /></h3>\n<h3 dir=\"ltr\" id=\"h_566157726361221668467870826\">Express</h3>\n<p dir=\"ltr\">Website: <a href=\"https://expressjs.com/\">https://expressjs.com/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://github.com/expressjs/express/releases/tag/4.18.2\">4.18.2</a> was released in October 2022. </p>\n<h4 dir=\"ltr\">What is Express?</h4>\n<p dir=\"ltr\">Express.js is a flexible and minimalistic Node.js framework used for backend development. It was originally released as a free, open-source framework in 2010 under an MIT license. Express.js was made for building web applications and APIs and is the standard framework for Node.js.</p>\n<p dir=\"ltr\">Express allows developers to save time and resources rather than build a backend from scratch using Node.js.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of Express.js’ key features include faster server-side development, an advanced routing mechanism, and templating engines. </p>\n<h4 dir=\"ltr\">Use Cases</h4>\n<p dir=\"ltr\">Express.js is primarily used for building RESTful APIs. </p>\n<h4 dir=\"ltr\">Express Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Ease of Learning:</strong> Developers with experience using other JavaScript frameworks, particularly Node.js, will find Express.js easy to learn. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Customizability:</strong> Express.js can be customized to fit user needs. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Express Cons</h4>\n<p dir=\"ltr\">Callback problems and client request issues due to the middleware are some of the main cons of Express.js.</p>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/nodejs.ryk2KrxLi.png\" data-id=\"3-ece3ba7-s519bk\" title=\"node.js logo\" alt=\"node.js logo\" /></p>\n<h3 dir=\"ltr\" id=\"h_335344380344941668467844110\">Node.js</h3>\n<p dir=\"ltr\">Website: <a href=\"https://nodejs.org/en/\">https://nodejs.org/en/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version:<a href=\"https://github.com/nodejs/release#release-schedule\"> v19.x</a> released October 2022</p>\n<h4 dir=\"ltr\">What is Node.js?</h4>\n<p dir=\"ltr\">Node.js is a server-side JavaScript runtime that runs on Chrome’s V8 JavaScript engine. Node.js executes JavaScript code outside of the browser and helps developers build fast, scalable, and reliable server-side applications. Developers can use Node.js to convert JavaScript code into machine code.</p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some key features of Node.js include fast code executive, a single-threaded model, quick data streaming, and minimum buffering. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">The primary use cases for Node.js include building server-side applications, browser-based games, and real-time web applications. Companies like GoDaddy, LinkedIn, and IBM leverage Node.js for various use cases.</p>\n<h4 dir=\"ltr\">Node.js Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Scalability: </strong>Node.js is highly scalable and can manage multiple requests simultaneously, prioritizing them without slowing down.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Vibrant Community: </strong>As the primary backend development framework for JavaScript, Node.js features a large and engaged community of developers.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Node.js Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Nested Callback Issue: </strong>Running multiple queued tasks in the background can lead to nested callbacks that make code difficult to understand. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Unstable API:</strong> Node.js APIs aren’t stable, which can cause issues when migrating data. </p>\n</li>\n</ul>\n<h3 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Gatsby.png\" data-id=\"3-e8ffd02-kr7bgs\" title=\"Gatsby.png\" alt=\"Gatsby.png\" /></h3>\n<h3 dir=\"ltr\" id=\"h_373330741398801668467909921\">Gatsby</h3>\n<p dir=\"ltr\">Website: <a href=\"https://www.gatsbyjs.com/\">https://www.gatsbyjs.com/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://www.npmjs.com/package/gatsby/v/4.7.2\">Version 4.7.2</a> was released in February 2022.</p>\n<h4 dir=\"ltr\">What is Gatsby?</h4>\n<p dir=\"ltr\">Gatsby is an open-source frontend framework originally viewed as simply a Static Site Generator. However, the framework has now evolved to include server-side rendering. Both approaches include pre-rendering functionality, which adds to the user experience by providing faster loading times.</p>\n<p dir=\"ltr\">Gatsby’s design approach is meant to keep the native code as lightweight as possible. It includes a vast ecosystem of plugins and templates to compensate for any feature loss. These templates and plugins provide developers with an easy starting point for their development journey and additional capabilities for their applications. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of the key features Gatsby offers include the pre-rendering of pages to reduce server requirements, a vast open-source plugin ecosystem, and high performance. </p>\n<h4 dir=\"ltr\">Top Use Cases</h4>\n<p dir=\"ltr\">Gatsby has several use cases, including B2B SaaS websites and eCommerce applications. It is a frequently used static site generator and beneficial for progressive web applications and building Jamstack sites. </p>\n<h4 dir=\"ltr\">Gatsby Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>SEO:</strong> Gatsby provides SEO-efficient performance and speed.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Page Loading:</strong> Gatsby loads websites quickly, meaning that companies can reduce bounce rates.</p>\n</li>\n</ul>\n<h4 dir=\"ltr\">Gatsby Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Build Time:</strong> Due to static loading Gatsby can take a long time to update, notably if a web application features tons of content. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Fewer Developers:</strong> While Gatsby is famous as a static site generator, it isn’t necessarily a go-to framework for developers since it can sometimes be complicated to use. </p>\n</li>\n</ul>\n<p><em>Read more: <a href=\"/mindshare/nextjs-vs-gatsby/\">Next.js vs Gatsby</a></em></p>\n<p><em><img src=\"https://kfg6bckb.media.zestyio.com/jquery.png\" data-id=\"3-ece3a86-ppq404\" title=\"jQuery logo\" alt=\"jQuery logo\" /></em></p>\n<h3 dir=\"ltr\" id=\"h_519939232355961668467858204\">jQuery</h3>\n<p dir=\"ltr\">Website: <a href=\"https://jquery.com/\">https://jquery.com/</a> </p>\n<p dir=\"ltr\">Latest Releases and Version: <a href=\"https://jquery.com/download/\">Version 3.6.1</a> was released in August 2022. </p>\n<h4 dir=\"ltr\">What is jQuery?</h4>\n<p dir=\"ltr\">jQuery is an older JavaScript framework and library created in 2006 by John Resign. The free, open-source software is licensed by MIT and is lightweight and feature-rich. jQuery enables simpler HTML document manipulation, traversal, and event handling. </p>\n<p dir=\"ltr\">Many sites rely on jQuery as it is easy to use with a minimalist API with a syntax similar to CSS, making it easy to learn. </p>\n<h4 dir=\"ltr\">Key Features</h4>\n<p dir=\"ltr\">Some of jQuery’s key features include HTML/DOM manipulation, HTML event methods, and CSS manipulation. It also contains several plugins for numerous tasks. </p>\n<h4 dir=\"ltr\">Use Cases</h4>\n<p dir=\"ltr\">Some of the most popular use cases for jQuery include building Ajax-based applications and as a key component in WordPress themes. </p>\n<h4 dir=\"ltr\">jQuery Pros</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Easy to Learn:</strong> jQuery follows a clean and simple syntax, making its code easy to read, understand, and learn. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Popularity:</strong> jQuery is one of the most popular frameworks, used by <a href=\"https://w3techs.com/technologies/details/js-jquery\">over 70% of websites</a>.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Extensibility: </strong>The vast ecosystem of plugins available for jQuery means that it can be easily extended to improve application functionality. </p>\n</li>\n</ul>\n<h4 dir=\"ltr\">jQuery Cons</h4>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Not Great for Complex Projects:</strong> jQuery offers easy DOM manipulation, but this can backfire when building complex projects as the features can seem limited. </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Debugging Issues:</strong> Adding more plugins and features also increases the number of dependencies in applications built using jQuery. This can present various debugging issues that take more work to resolve. </p>\n</li>\n</ul>\n<h2 dir=\"ltr\">Honorable Mentions</h2>\n<p dir=\"ltr\">While outside the Top 10 JavaScript frameworks found in Stack Overflow’s survey, these other five frameworks continue to grow in popularity, and developers should take note of them.</p>\n<h3 dir=\"ltr\">Nest</h3>\n<p dir=\"ltr\"><a href=\"https://nestjs.com/\">Nest.js</a> is a Node framework primarily for developing server-side applications. Released in 2017 as an open-source web development platform, Nest.js framework is built using Typescript and offers a component-based architecture inspired by Angular. Some characteristics of applications built using Nest.js include high scalability and testability.</p>\n<p dir=\"ltr\"><a href=\"/mindshare/nestjs-vs-nextjs/\"><em>Compare Next.js to Next.js.</em></a></p>\n<h3 dir=\"ltr\">TypeScript</h3>\n<p dir=\"ltr\">TypeScript isn’t a JavaScript framework per se but rather an object-oriented, compiled programming language that builds on JavaScript. Known as a superset of JavaScript, TypeScript provides tooling at any scale and is often referred to as JavaScript with more features. The open-source language and framework include backing from Microsoft, which should explain its growing popularity. </p>\n<h3 dir=\"ltr\">Bootstrap</h3>\n<p dir=\"ltr\">Bootstrap is an open-source framework for frontend development that enables developers to build fast and mobile responsive websites. Originally released in 2011, Bootstrap gives developers increased flexibility and saves them time, particularly when writing CSS code. </p>\n<h3 dir=\"ltr\">Backbone</h3>\n<p dir=\"ltr\">Backbone.js is a lightweight JavaScript framework based on the model view presenter (MVP) architecture. Backbone essentially separates concerns which enable a better structured and maintained application. Created in 2010, Backbone includes a RESTful JSON interface that is beneficial for building client-side web applications.</p>\n<h3 dir=\"ltr\">Remix</h3>\n<p dir=\"ltr\">Remix is a full-stack JavaScript framework for web development. It was created by the React-router team in 2020 and open-sourced in 2021. This latest addition to the React-based tools provides an edge native framework for building modern, fast, and robust developer and user experiences.</p>\n<p dir=\"ltr\"><a href=\"/mindshare/remix-vs--next-js/\"><em>Compare Next.js to Remix.</em></a></p>\n<h2 dir=\"ltr\">Zesty.io: The Ultimate JavaScript CMS</h2>\n<p dir=\"ltr\">We’ve only listed a handful of JavaScript frameworks, but the ecosystem is enormous, and new updates are being released regularly. Regardless of the JavaScript framework, having a robust CMS that can help you get the most out of the front-end experience is crucial. </p>\n<p dir=\"ltr\">Zesty.io is a flexible <a href=\"https://www.zesty.io/solutions/headless-cms/\">headless CMS</a> that integrates with any JavaScript framework. With Zesty.io, everything is handled in the backend while you have total control over where and how your content is deployed. Zesty.io also includes an easy-to-use schema for content modeling, automated SEO, and faster page loading times.</p>\n<p dir=\"ltr\">While being a headless CMS and framework agnostic enables Zesty.io to handle any JavaScript framework, we are firm advocates of Next.js and allow you to get more out of Next.js than any other headless CMS. With our Next.js integration, you can automatically resolve Next.js pages using minimal configuration, change content schemas how you need without worrying about changing code, and so much more. </p>\n<p dir=\"ltr\">Also, unlike other headless CMSs that don’t cater to content authors, Zesty.io offers hybrid functionality to give them a similar content authoring experience to the one they might have known from a traditional CMS. </p>\n<p>Now you can build the perfect digital experiences for your audience with a flexible-API headless CMS. Take a look at our <a href=\"https://www.zesty.io/integrations/nextjs-cms/\">Next.js integration to learn more</a>. </p>\n<p><a href=\"/integrations/nextjs-cms/?UTM_source=organic&UTM_medium=article&UTM_campaign=jsguide\"><img src=\"https://kfg6bckb.media.zestyio.com/NEXTJS-EXPERIENCE.png\" data-id=\"3-e8017ab-b44lhf\" title=\"40.png\" alt=\"40.png\" /></a></p></div>\n</div>\n",
"json": null
}
}
}
]
},
"callout_2_image": null,
"callout_2_label": "How to A/B test on your website with a headless CMS",
"callout_2_link": {
"type": "relationship",
"model": "articles",
"totalItems": 1,
"data": [
{
"hero_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ebfabc3-g5drcm",
"url": "https://kfg6bckb.media.zestyio.com/How-to-AB-test-on-website.png"
}
]
},
"screenshot": null,
"quote": null,
"youtube_id": null,
"interviewee_headshot": null,
"article": "<p dir=\"ltr\">A/B testing is challenging, even when companies have dedicated resources. But the issue becomes even more complicated when trying to A/B test on your website with a headless CMS.</p>\n<p dir=\"ltr\">If set up properly, headless CMS can be extremely powerful to help you conduct A/B tests on your website and allow you to make rapid updates to content without developing new pages or implementing additional software.</p>\n<p dir=\"ltr\">This guide will walk you through how Zesty has implemented A/B testing with our own headless CMS, and how you can implement this in your own website testing process.</p>\n<h2 dir=\"ltr\">Ways to A/B test on your website</h2>\n<p dir=\"ltr\">When we approach A/B testing, we consider there to be three ways to create your test.</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Create full landing pages with unique URLs</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Make one smart landing page that adapts to query parameters</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Use a tool like Optimizely or Google 360 that changes the JS in real-time</p>\n</li>\n</ul>\n<p dir=\"ltr\">Most companies opt for the first or third options, which can have drawbacks. Creating full landing pages with unique URLs to test can be difficult to scale and measure if you don’t get enough traffic to each page. Utilizing a tool outside of your CMS works similarly to creating a page that adapts to query parameters, but can increase cost and potentially slow down your page.</p>\n<p dir=\"ltr\"><strong>We recommend leveraging a “smart” landing page that adapts based on query parameters.</strong> What this means is that your URL parameters will match a unique identifier that you define in the CMS, and the page content will load based on that parameter. This allows you to reduce the number of unique landing pages, increase scalability, and rapidly test without developer involvement.</p>\n<h2 dir=\"ltr\"><a href=\"/join/?UTM_source=website&UTM_medium=article&UTM_campaign=ABtest\"><img src=\"https://kfg6bckb.media.zestyio.com/Try-AB-test-Zesty.png\" data-id=\"3-ebfb909-b317ws\" title=\"Try-AB-test-Zesty.png\" alt=\"Try-AB-test-Zesty.png\" /></a></h2>\n<h2 dir=\"ltr\">Content to A/B test</h2>\n<p dir=\"ltr\">There are several types of content you can A/B test on your website. We recommend considering the following elements:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Titles & descriptions</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Media (images & video)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Layout changes & design elements</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Component swapping</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">CTA buttons</p>\n</li>\n</ul>\n<h2>Ways to determine how your A/B test is performing</h2>\n<p dir=\"ltr\">Some quantitative determinations for performance include:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Observe Google Analytics based upon page views, time on site, bounce rate, etc.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Conversions based upon page URL (either unique URL or with query params)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Event tracking with GTM data layer</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Observing CTR for PPC campaigns</p>\n</li>\n</ul>\n<p></p>\n<p dir=\"ltr\">Qualitative insights are also important when A/B testing. These can include:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Internal team feedback</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">User feedback</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Paying test subjects for qualitative feedback / survey</p>\n</li>\n</ul>\n<p></p>\n<h2>Important considerations for A/B testing</h2>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Test only one element at a time:</strong> Make sure tests are of the same element all the way across</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Create a good mixture of timeframe and data samples</strong> to have a large enough sample to observe and make decisions</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Test to make sure there are no errors in your data, </strong>including events, tracking and KPIs</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/How-to-AB-test-headless.png\" data-id=\"3-ebfae74-7fxk8v\" title=\"How to AB test with headless CMS\" alt=\"How to AB test with headless CMS\" /></p>\n<h2 dir=\"ltr\">How to set up A/B testing with a headless CMS</h2>\n<p dir=\"ltr\">Now we will walk you through the basic principles of how you can set up an A/B test within your headless CMS.</p>\n<h3 dir=\"ltr\">1. Set up a webpage you can control content in</h3>\n<p dir=\"ltr\" role=\"presentation\">Your webpage will need to dynamically render OR be able to randomly return a certain amount of static pages with unique elements (static).</p>\n<p dir=\"ltr\" role=\"presentation\"><strong>Static:</strong> for mass scale, you can use load balancers or content delivery networks (CDNs) mixed with headers and cookies to choose to load a page at random (you would build 4 different URLs)</p>\n<p dir=\"ltr\" role=\"presentation\"><em>Ex: Unique URL with cookies or headers will serve a unique page, OR multiple unique static URLs will serve a unique page - this requires a controlled source to control URL such as PPC or email (will not work organically)</em></p>\n<p dir=\"ltr\" role=\"presentation\"><span style=\"letter-spacing: 0px;\"><strong>Dynamic:</strong> for mass scale, you can use a system like Zesty.io or another dynamically-rendered CMS platform that builds the page based on randomness or query parameters</span></p>\n<p dir=\"ltr\" role=\"presentation\"><em>Ex: if you go to the same URL, it will randomly pick from 3-4 pieces of content that you define OR the defined content will change based upon the query parameter - this requires a controlled source to control URL such as PPC or email (will not work organically)</em></p>\n<p dir=\"ltr\" role=\"presentation\"><strong>We recommend leveraging dynamic rendering.</strong></p>\n<p></p>\n<h3 dir=\"ltr\">2. Data you need to implement A/B testing</h3>\n<p dir=\"ltr\" role=\"presentation\"><strong>Baseline presentation layer</strong> (webpage/code) that has set elements that can accept different content data (ex: titles, descriptions, media).</p>\n<p dir=\"ltr\" role=\"presentation\"><strong>A data source that can contain one or multiple items and multiple fields. </strong>This data source needs to be query-able at the time of render to either fetch information randomly OR based upon the identifier</p>\n<p dir=\"ltr\" role=\"presentation\"><em>For example, a database that has columns, title, description, and identifier</em></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You would set up 3 different title and description concepts with 3 different identifiers that would be passed in a query parameter</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Identifier examples: UTM_campaign, a numeric ID, random unique text such as a #, or direct labeling such as “campaign 2” or “test 3”</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/AB-test-with-Zesty.png\" data-id=\"3-ebfb47b-9mn6kc\" title=\"AB-test-with-Zesty.png\" alt=\"AB-test-with-Zesty.png\" /></p>\n<h2 dir=\"ltr\">Set up A/B testing with Zesty</h2>\n<p dir=\"ltr\" role=\"presentation\">1. Design your page and content</p>\n<p dir=\"ltr\" role=\"presentation\">2. Access Schema and create a new single-page model</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Add fields to match the content you want to edit on your page (title, description, images, etc.)</p>\n</li>\n</ul>\n<p dir=\"ltr\"><img src=\"https://lh3.googleusercontent.com/dZsO95m-wXnpFESyzAPFu_UAGA3mqZPUafoX1v-adg6ArXbMPIgFhvq1zj7UnFoOsQPRa1ae5d_UzfnqMSPzNyUvFG0nNwflTL1jrg254BpTmWzTSvAufXrd-5-L7NMNg9AJfuaE-ZAQMYVUm-wR4Yv0d2iFa0n_pBtsqgqVZRjHJ0QsoxckWTktqM5W_g\" width=\"624\" height=\"335\" /></p>\n<p dir=\"ltr\" role=\"presentation\">3. Navigate to Content and enter your content for the single-page model</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">This will be the baseline “control group” page</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Enter-content-AB-test.png\" data-id=\"3-ebfb5bd-4v7nl0\" title=\"Enter-content-AB-test.png\" alt=\"Enter-content-AB-test.png\" /></p>\n<p dir=\"ltr\" role=\"presentation\">4. Code: Have your web developer implement the initial page design to your single-page model</p>\n<p dir=\"ltr\" role=\"presentation\">5. Return to Schema and create a headless data model (example name: “Landing Page A/B test”)</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Add fields that you want to be dynamic for your A/B test (title, description)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Make sure to include an identifier field</strong></p>\n</li>\n</ul>\n<p dir=\"ltr\"><img src=\"https://lh6.googleusercontent.com/hCyZAOwFCrvETF_noBfHfIT93kYPdQqiWylNahEm1qfZgXKH6fLhnt8c-dT0RzyW3oc-hUWfCY8OdhskMy4iwoLUSdQfeZXZj6H2lPlf-9rjP4wxJZw66jZ5wcl9zXD8iKD6bUYey4IQUki0nFjP_o44Ni5dtC7-gTakOLzJRMyRFHJKOcnzwLddetv82w\" width=\"458\" height=\"393\" /></p>\n<p dir=\"ltr\" role=\"presentation\">6. Return to Content and enter a couple of test concepts for your headless data model “Landing Page A/B test”</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Make sure that the title, description, and identifier are unique for each new content item</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Content-unique.png\" data-id=\"3-ebfb611-qlb5mj\" title=\"Content-unique.png\" alt=\"Content-unique.png\" /></p>\n<p dir=\"ltr\" role=\"presentation\">7. Have your developer write logic into the template to load dynamic content </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">This logic will detect the query parameter that includes your identifier</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">That identifier should be used to look up the relative A/B content from “Landing page A/B test”</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">If there is no identifier in the query parameter, default back to the “control group” of content</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Identifiers should be stored so that an event trigger (such as GTM data layer trigger or another marketing technology) will send data back to your tracking tool (such as sending to your CRM, analytics platform, ABM platform, etc.) - this is critical to measure and score your tests</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Now that you have all the pieces set up for your A/B test, it's time to test and track your campaign's success.</p>\n<h2>Measuring the success of your A/B campaign</h2>\n<p dir=\"ltr\" role=\"presentation\">Vital to the success of your campaign is setting up proper instrumentation and tracking. Your developer will need to set this up in code. The following items should be considered:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Your analytics - track pageviews & clicks through Google Analytics, or other</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Form submissions - how do you want to track these? Are there specific parameters you need to set up with event tracking?</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">For Zesty, this is tracked by the UTM parameters related to UTM_source & UTM_medium</p>\n</li>\n</ul>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Run manual/automated tests to make sure data is being fed into your analytics software/CRM</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Check that pageviews & event tracking data are being captured</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Check that the query parameters with identifiers are loading the appropriate A/B content</p>\n</li>\n</ul>\n<p dir=\"ltr\" role=\"presentation\"><strong>Marketing: Configuring your campaigns</strong></p>\n<p dir=\"ltr\" role=\"presentation\">Create ads related to the A/B test content that use specific URL identifiers</p>\n<p dir=\"ltr\" role=\"presentation\"><em>Example: <a href=\"https://www.zesty.io/?UTM_source=advertisement&UTM_medium=linkedin&UTM_campaign=myABtest1\">https://www.zesty.io/?UTM_source=advertisement&UTM_medium=linkedin&UTM_campaign=myABtest1</a> </em></p>\n<p dir=\"ltr\" role=\"presentation\">myABtest1 is your unique identifier</p>\n<p dir=\"ltr\" role=\"presentation\"><strong>Marketing: measuring your campaigns</strong></p>\n<p dir=\"ltr\" role=\"presentation\">Determine KPIs such as conversion ratio, CTR, bounce rate, time on page</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Most importantly: conversion ratio = % of pageviews that turn into conversions = conversions/pageviews</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">If you’re not tracking conversions, you have to use time on site or bounce rate as KPI</p>\n</li>\n</ul>\n<p dir=\"ltr\" role=\"presentation\">And last but not least: continuously iterate :)</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Add new content examples</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">We recommend testing 3-5 at a time</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Set a boundary that is either based on time or data set (ex: 1,000 pageviews) that indicates when you need to analyze your data</p>\n</li>\n</ul>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">After you hit this target, you will drop underperforming pages and slate in new tests</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Measure against industry averages (ex: conversion ratio)</p>\n</li>\n</ul>\n<p>And that's it! A/B testing can be extremely powerful if set up correctly (plus you don't need a bunch of separate tools to get the job done). Want to try it out for yourself? <a href=\"/join/?UTM_source=website&UTM_medium=article&UTM_campaign=ABtest\">Start a free Zesty instance today.</a></p>\n<p><a href=\"/join/?UTM_source=website&UTM_medium=article&UTM_campaign=ABtest\"><img src=\"https://kfg6bckb.media.zestyio.com/Try-AB-test-Zesty.png\" data-id=\"3-ebfb909-b317ws\" title=\"Try-AB-test-Zesty.png\" alt=\"Try-AB-test-Zesty.png\" /></a></p>",
"title": "How to A/B test on your website with a headless CMS",
"description": "Learn how to leverage unique URL parameters to A/B test landing pages",
"author": {
"type": "relationship",
"model": "authors",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"date": "2022-11-04",
"tags": {
"type": "relationship",
"model": "tags",
"totalItems": 2,
"data": [
{
"message": "max hydration depth hit"
},
{
"message": "max hydration depth hit"
}
]
},
"interviewee_name": null,
"thumbnail_image": null,
"category": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"related_articles": null,
"meta": {
"type": "item",
"model_name": "articles",
"model_alternate_name": "Article",
"zuid": "7-faece8c19a-b8fqpz",
"createdAt": "2022-11-03 22:59:02",
"updatedAt": "2022-11-03 22:59:02",
"listed": "1",
"version": "29",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-45a908-qfw88c",
"name": "articles",
"label": "Articles",
"resourceURI": "https://www.zesty.io/-/instant/6-45a908-qfw88c.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/how-to-ab-test-on-your-website-with-a-headless-cms/",
"uri": "/mindshare/how-to-ab-test-on-your-website-with-a-headless-cms/",
"fragment": "how-to-ab-test-on-your-website-with-a-headless-cms",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-11-03 22:59:02",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "How to A/B test on your website with a headless CMS",
"seo_meta_title": "How to A/B test on your website with a headless CMS",
"seo_meta_description": "A/B testing is challenging, even when companies have dedicated resources. But the issue becomes even more complicated when trying to A/B test on your website wi",
"seo_meta_keywords": null
},
"layout": {
"html": "<div class=\"pvlRoot\">\n\t<div style=\"display:flex\">\n\t\t<div style=\"flex:2\" class=\"pvlColumn\">\n\t\t\t<h1 class=\"pvlHeader\">How to A/B test on your website with a headless CMS</h1>\n\t\t</div>\n\t\t<div style=\"flex:4\" class=\"pvlColumn\">\n\t\t\t<img src=\"https://kfg6bckb.media.zestyio.com/How-to-AB-test-on-website.png\" alt=\"@\" width=\"100%\" />\n\t\t</div>\n\t</div>\n\t<div class=\"pvlRichtext\"><p dir=\"ltr\">A/B testing is challenging, even when companies have dedicated resources. But the issue becomes even more complicated when trying to A/B test on your website with a headless CMS.</p>\n<p dir=\"ltr\">If set up properly, headless CMS can be extremely powerful to help you conduct A/B tests on your website and allow you to make rapid updates to content without developing new pages or implementing additional software.</p>\n<p dir=\"ltr\">This guide will walk you through how Zesty has implemented A/B testing with our own headless CMS, and how you can implement this in your own website testing process.</p>\n<h2 dir=\"ltr\">Ways to A/B test on your website</h2>\n<p dir=\"ltr\">When we approach A/B testing, we consider there to be three ways to create your test.</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Create full landing pages with unique URLs</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Make one smart landing page that adapts to query parameters</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Use a tool like Optimizely or Google 360 that changes the JS in real-time</p>\n</li>\n</ul>\n<p dir=\"ltr\">Most companies opt for the first or third options, which can have drawbacks. Creating full landing pages with unique URLs to test can be difficult to scale and measure if you don’t get enough traffic to each page. Utilizing a tool outside of your CMS works similarly to creating a page that adapts to query parameters, but can increase cost and potentially slow down your page.</p>\n<p dir=\"ltr\"><strong>We recommend leveraging a “smart” landing page that adapts based on query parameters.</strong> What this means is that your URL parameters will match a unique identifier that you define in the CMS, and the page content will load based on that parameter. This allows you to reduce the number of unique landing pages, increase scalability, and rapidly test without developer involvement.</p>\n<h2 dir=\"ltr\"><a href=\"/join/?UTM_source=website&UTM_medium=article&UTM_campaign=ABtest\"><img src=\"https://kfg6bckb.media.zestyio.com/Try-AB-test-Zesty.png\" data-id=\"3-ebfb909-b317ws\" title=\"Try-AB-test-Zesty.png\" alt=\"Try-AB-test-Zesty.png\" /></a></h2>\n<h2 dir=\"ltr\">Content to A/B test</h2>\n<p dir=\"ltr\">There are several types of content you can A/B test on your website. We recommend considering the following elements:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Titles & descriptions</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Media (images & video)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Layout changes & design elements</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Component swapping</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">CTA buttons</p>\n</li>\n</ul>\n<h2>Ways to determine how your A/B test is performing</h2>\n<p dir=\"ltr\">Some quantitative determinations for performance include:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Observe Google Analytics based upon page views, time on site, bounce rate, etc.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Conversions based upon page URL (either unique URL or with query params)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Event tracking with GTM data layer</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Observing CTR for PPC campaigns</p>\n</li>\n</ul>\n<p></p>\n<p dir=\"ltr\">Qualitative insights are also important when A/B testing. These can include:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Internal team feedback</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">User feedback</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Paying test subjects for qualitative feedback / survey</p>\n</li>\n</ul>\n<p></p>\n<h2>Important considerations for A/B testing</h2>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Test only one element at a time:</strong> Make sure tests are of the same element all the way across</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Create a good mixture of timeframe and data samples</strong> to have a large enough sample to observe and make decisions</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Test to make sure there are no errors in your data, </strong>including events, tracking and KPIs</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/How-to-AB-test-headless.png\" data-id=\"3-ebfae74-7fxk8v\" title=\"How to AB test with headless CMS\" alt=\"How to AB test with headless CMS\" /></p>\n<h2 dir=\"ltr\">How to set up A/B testing with a headless CMS</h2>\n<p dir=\"ltr\">Now we will walk you through the basic principles of how you can set up an A/B test within your headless CMS.</p>\n<h3 dir=\"ltr\">1. Set up a webpage you can control content in</h3>\n<p dir=\"ltr\" role=\"presentation\">Your webpage will need to dynamically render OR be able to randomly return a certain amount of static pages with unique elements (static).</p>\n<p dir=\"ltr\" role=\"presentation\"><strong>Static:</strong> for mass scale, you can use load balancers or content delivery networks (CDNs) mixed with headers and cookies to choose to load a page at random (you would build 4 different URLs)</p>\n<p dir=\"ltr\" role=\"presentation\"><em>Ex: Unique URL with cookies or headers will serve a unique page, OR multiple unique static URLs will serve a unique page - this requires a controlled source to control URL such as PPC or email (will not work organically)</em></p>\n<p dir=\"ltr\" role=\"presentation\"><span style=\"letter-spacing: 0px;\"><strong>Dynamic:</strong> for mass scale, you can use a system like Zesty.io or another dynamically-rendered CMS platform that builds the page based on randomness or query parameters</span></p>\n<p dir=\"ltr\" role=\"presentation\"><em>Ex: if you go to the same URL, it will randomly pick from 3-4 pieces of content that you define OR the defined content will change based upon the query parameter - this requires a controlled source to control URL such as PPC or email (will not work organically)</em></p>\n<p dir=\"ltr\" role=\"presentation\"><strong>We recommend leveraging dynamic rendering.</strong></p>\n<p></p>\n<h3 dir=\"ltr\">2. Data you need to implement A/B testing</h3>\n<p dir=\"ltr\" role=\"presentation\"><strong>Baseline presentation layer</strong> (webpage/code) that has set elements that can accept different content data (ex: titles, descriptions, media).</p>\n<p dir=\"ltr\" role=\"presentation\"><strong>A data source that can contain one or multiple items and multiple fields. </strong>This data source needs to be query-able at the time of render to either fetch information randomly OR based upon the identifier</p>\n<p dir=\"ltr\" role=\"presentation\"><em>For example, a database that has columns, title, description, and identifier</em></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You would set up 3 different title and description concepts with 3 different identifiers that would be passed in a query parameter</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Identifier examples: UTM_campaign, a numeric ID, random unique text such as a #, or direct labeling such as “campaign 2” or “test 3”</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/AB-test-with-Zesty.png\" data-id=\"3-ebfb47b-9mn6kc\" title=\"AB-test-with-Zesty.png\" alt=\"AB-test-with-Zesty.png\" /></p>\n<h2 dir=\"ltr\">Set up A/B testing with Zesty</h2>\n<p dir=\"ltr\" role=\"presentation\">1. Design your page and content</p>\n<p dir=\"ltr\" role=\"presentation\">2. Access Schema and create a new single-page model</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Add fields to match the content you want to edit on your page (title, description, images, etc.)</p>\n</li>\n</ul>\n<p dir=\"ltr\"><img src=\"https://lh3.googleusercontent.com/dZsO95m-wXnpFESyzAPFu_UAGA3mqZPUafoX1v-adg6ArXbMPIgFhvq1zj7UnFoOsQPRa1ae5d_UzfnqMSPzNyUvFG0nNwflTL1jrg254BpTmWzTSvAufXrd-5-L7NMNg9AJfuaE-ZAQMYVUm-wR4Yv0d2iFa0n_pBtsqgqVZRjHJ0QsoxckWTktqM5W_g\" width=\"624\" height=\"335\" /></p>\n<p dir=\"ltr\" role=\"presentation\">3. Navigate to Content and enter your content for the single-page model</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">This will be the baseline “control group” page</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Enter-content-AB-test.png\" data-id=\"3-ebfb5bd-4v7nl0\" title=\"Enter-content-AB-test.png\" alt=\"Enter-content-AB-test.png\" /></p>\n<p dir=\"ltr\" role=\"presentation\">4. Code: Have your web developer implement the initial page design to your single-page model</p>\n<p dir=\"ltr\" role=\"presentation\">5. Return to Schema and create a headless data model (example name: “Landing Page A/B test”)</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Add fields that you want to be dynamic for your A/B test (title, description)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Make sure to include an identifier field</strong></p>\n</li>\n</ul>\n<p dir=\"ltr\"><img src=\"https://lh6.googleusercontent.com/hCyZAOwFCrvETF_noBfHfIT93kYPdQqiWylNahEm1qfZgXKH6fLhnt8c-dT0RzyW3oc-hUWfCY8OdhskMy4iwoLUSdQfeZXZj6H2lPlf-9rjP4wxJZw66jZ5wcl9zXD8iKD6bUYey4IQUki0nFjP_o44Ni5dtC7-gTakOLzJRMyRFHJKOcnzwLddetv82w\" width=\"458\" height=\"393\" /></p>\n<p dir=\"ltr\" role=\"presentation\">6. Return to Content and enter a couple of test concepts for your headless data model “Landing Page A/B test”</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Make sure that the title, description, and identifier are unique for each new content item</p>\n</li>\n</ul>\n<p><img src=\"https://kfg6bckb.media.zestyio.com/Content-unique.png\" data-id=\"3-ebfb611-qlb5mj\" title=\"Content-unique.png\" alt=\"Content-unique.png\" /></p>\n<p dir=\"ltr\" role=\"presentation\">7. Have your developer write logic into the template to load dynamic content </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">This logic will detect the query parameter that includes your identifier</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">That identifier should be used to look up the relative A/B content from “Landing page A/B test”</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">If there is no identifier in the query parameter, default back to the “control group” of content</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Identifiers should be stored so that an event trigger (such as GTM data layer trigger or another marketing technology) will send data back to your tracking tool (such as sending to your CRM, analytics platform, ABM platform, etc.) - this is critical to measure and score your tests</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Now that you have all the pieces set up for your A/B test, it's time to test and track your campaign's success.</p>\n<h2>Measuring the success of your A/B campaign</h2>\n<p dir=\"ltr\" role=\"presentation\">Vital to the success of your campaign is setting up proper instrumentation and tracking. Your developer will need to set this up in code. The following items should be considered:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Your analytics - track pageviews & clicks through Google Analytics, or other</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Form submissions - how do you want to track these? Are there specific parameters you need to set up with event tracking?</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">For Zesty, this is tracked by the UTM parameters related to UTM_source & UTM_medium</p>\n</li>\n</ul>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Run manual/automated tests to make sure data is being fed into your analytics software/CRM</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Check that pageviews & event tracking data are being captured</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Check that the query parameters with identifiers are loading the appropriate A/B content</p>\n</li>\n</ul>\n<p dir=\"ltr\" role=\"presentation\"><strong>Marketing: Configuring your campaigns</strong></p>\n<p dir=\"ltr\" role=\"presentation\">Create ads related to the A/B test content that use specific URL identifiers</p>\n<p dir=\"ltr\" role=\"presentation\"><em>Example: <a href=\"https://www.zesty.io/?UTM_source=advertisement&UTM_medium=linkedin&UTM_campaign=myABtest1\">https://www.zesty.io/?UTM_source=advertisement&UTM_medium=linkedin&UTM_campaign=myABtest1</a> </em></p>\n<p dir=\"ltr\" role=\"presentation\">myABtest1 is your unique identifier</p>\n<p dir=\"ltr\" role=\"presentation\"><strong>Marketing: measuring your campaigns</strong></p>\n<p dir=\"ltr\" role=\"presentation\">Determine KPIs such as conversion ratio, CTR, bounce rate, time on page</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Most importantly: conversion ratio = % of pageviews that turn into conversions = conversions/pageviews</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">If you’re not tracking conversions, you have to use time on site or bounce rate as KPI</p>\n</li>\n</ul>\n<p dir=\"ltr\" role=\"presentation\">And last but not least: continuously iterate :)</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Add new content examples</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">We recommend testing 3-5 at a time</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Set a boundary that is either based on time or data set (ex: 1,000 pageviews) that indicates when you need to analyze your data</p>\n</li>\n</ul>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">After you hit this target, you will drop underperforming pages and slate in new tests</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Measure against industry averages (ex: conversion ratio)</p>\n</li>\n</ul>\n<p>And that's it! A/B testing can be extremely powerful if set up correctly (plus you don't need a bunch of separate tools to get the job done). Want to try it out for yourself? <a href=\"/join/?UTM_source=website&UTM_medium=article&UTM_campaign=ABtest\">Start a free Zesty instance today.</a></p>\n<p><a href=\"/join/?UTM_source=website&UTM_medium=article&UTM_campaign=ABtest\"><img src=\"https://kfg6bckb.media.zestyio.com/Try-AB-test-Zesty.png\" data-id=\"3-ebfb909-b317ws\" title=\"Try-AB-test-Zesty.png\" alt=\"Try-AB-test-Zesty.png\" /></a></p></div>\n</div>\n",
"json": null
}
}
}
]
},
"_column_1_title": null,
"column_1_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 6,
"data": [
{
"nav_item_name": "Platform Documentation",
"page_link": null,
"external_link_if_needed": "https://zesty.org/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2edf-w8x4gl",
"url": "https://kfg6bckb.media.zestyio.com/documentation-nav.png"
}
]
},
"sort_order": "1",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-ead3cddabe-j1wddf",
"createdAt": "2022-11-15 16:23:01",
"updatedAt": "2022-11-15 16:23:00",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "YouTube Tutorials",
"page_link": null,
"external_link_if_needed": "https://www.youtube.com/c/Zestyio",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2f08-2280zn",
"url": "https://kfg6bckb.media.zestyio.com/Youtube-nav.png"
}
]
},
"sort_order": "2",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-a8f3f588f3-d7r6s5",
"createdAt": "2022-11-15 16:23:48",
"updatedAt": "2022-11-15 16:23:47",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "API Documentation",
"page_link": "0",
"external_link_if_needed": "https://zesty.org/apis/instances-api",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2f7c-4kknq6",
"url": "https://kfg6bckb.media.zestyio.com/Instances-api-nav.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-c0ce85f7f5-29960v",
"createdAt": "2023-01-18 17:59:08",
"updatedAt": "2023-01-18 17:59:08",
"listed": "1",
"version": "5",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Parsley Documentation",
"page_link": null,
"external_link_if_needed": "https://parsley.zesty.io/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ee150d6-w9b0mv",
"url": "https://kfg6bckb.media.zestyio.com/parsley.png"
}
]
},
"sort_order": "4",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-e8e28ff6cc-wh9330",
"createdAt": "2023-01-12 17:14:45",
"updatedAt": "2023-01-12 17:14:44",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Github",
"page_link": null,
"external_link_if_needed": "https://github.com/zesty-io",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf2fcd-z1bvwq",
"url": "https://kfg6bckb.media.zestyio.com/Github-nav.png"
}
]
},
"sort_order": "5",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-a6a5fee6ef-jp2bxd",
"createdAt": "2022-11-15 16:26:58",
"updatedAt": "2022-11-15 16:26:58",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Community chat",
"page_link": null,
"external_link_if_needed": "https://chat.zesty.io/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf3071-h312b4",
"url": "https://kfg6bckb.media.zestyio.com/Community-nav.png"
}
]
},
"sort_order": "6",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-bacface699-smnnqj",
"createdAt": "2022-11-15 16:29:45",
"updatedAt": "2022-11-15 16:29:44",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_2_title": null,
"column_2_items": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 4,
"data": [
{
"nav_item_name": "Blog",
"page_link": {
"type": "relationship",
"model": "mindshare",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/mindshare/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf30cd-sjl4x0",
"url": "https://kfg6bckb.media.zestyio.com/blog-nav.png"
}
]
},
"sort_order": "1",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-b2b6b1bfbe-s0ml0c",
"createdAt": "2022-12-01 23:31:48",
"updatedAt": "2022-12-01 23:31:48",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "News",
"page_link": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/news/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf3124-46l6d2",
"url": "https://kfg6bckb.media.zestyio.com/News-nav.png"
}
]
},
"sort_order": "3",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-8499e8cdbb-tmwd8p",
"createdAt": "2022-12-01 23:32:31",
"updatedAt": "2022-12-01 23:32:31",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "Case Studies",
"page_link": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/mindshare/customer-stories/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf3148-ct66lj",
"url": "https://kfg6bckb.media.zestyio.com/case-study-nav.png"
}
]
},
"sort_order": "4",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-96b09ca989-mknlzl",
"createdAt": "2022-12-01 23:32:45",
"updatedAt": "2022-12-01 23:32:45",
"listed": "1",
"version": "4",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
},
{
"nav_item_name": "eBooks",
"page_link": {
"type": "relationship",
"model": "content_resources",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"external_link_if_needed": "/content-resources/",
"parent_nav_item": {
"type": "relationship",
"model": "sub_nav2022",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"icon_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ecf316b-2w5h4p",
"url": "https://kfg6bckb.media.zestyio.com/ebooks-nav.png"
}
]
},
"sort_order": "5",
"main_or_blue_secondary_item": "1",
"meta": {
"type": "item",
"model_name": "sub_nav2022",
"model_alternate_name": "SubNav2022",
"zuid": "7-8eff93b09d-rsf3c7",
"createdAt": "2022-12-01 23:32:58",
"updatedAt": "2022-12-01 23:32:58",
"listed": "1",
"version": "3",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-fcbdb6faad-ppkwp5",
"name": "sub_nav2022",
"label": "Sub nav2022",
"resourceURI": "https://www.zesty.io/-/instant/6-fcbdb6faad-ppkwp5.json"
}
}
}
]
},
"_column_3_title": null,
"column_3_items_if_needed": null,
"callout_3_image": null,
"callout_3_title": "Pure headless CMS is an overcorrection",
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": "How we rebuilt our site with the Material UI design system",
"callout_4_link": null,
"callout_4_internal_link": {
"type": "relationship",
"model": "articles",
"totalItems": 1,
"data": [
{
"hero_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-e802a8d-v437nj",
"url": "https://kfg6bckb.media.zestyio.com/MUI.png"
}
]
},
"screenshot": null,
"quote": null,
"youtube_id": null,
"interviewee_headshot": null,
"article": "<p dir=\"ltr\">A few months ago, we embarked on a project to rebuild our marketing website. Although the main purpose was to update the content, user journey, and site mapping, the redesign gave us the opportunity to optimize HOW the site was built.</p>\n<p dir=\"ltr\">In choosing a new way to create the site, we went through the process of <a href=\"https://zesty.io/developers-guide-to-selecting-a-design-system/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\">selecting and implementing a design system</a>. Ultimately, we chose Material UI, an open-source project that builds with React.</p>\n<p dir=\"ltr\">This article will walk you through our process of implementing Material UI, so you can use this process for your own website.</p>\n<p dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-selection.png\" data-id=\"3-e802f0d-r4cdz9\" title=\"MUI-selection.png\" alt=\"MUI-selection.png\" /></p>\n<h2 dir=\"ltr\">Phase 0: Design system selection</h2>\n<p dir=\"ltr\" role=\"presentation\">Before implementing Material UI (MUI), we took the following steps to evaluate and select the best design system for our team.</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"https://zesty.io/developers-guide-to-selecting-a-design-system/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\">Research</a></p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Perf testing</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Proof of concept</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Storybook</p>\n</li>\n</ul>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-setup.png\" data-id=\"3-e802d4e-0g4sq9\" title=\"MUI-setup.png\" alt=\"MUI-setup.png\" /></h2>\n<h2 dir=\"ltr\">Phase 1: Setup</h2>\n<p>Once we had selected MUI as our design system, the next phase was to set up the theme and prep our site for the redesign. These steps included:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Dependency installation</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Theme setup (Typography, Colors)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Initial mapping of atomic components</p>\n</li>\n</ul>\n<p><a href=\"https://zesty.io/developers-guide-to-selecting-a-design-system/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\"><img src=\"https://kfg6bckb.media.zestyio.com/Design-system-guide.png\" data-id=\"3-e8840db-r7jsl0\" title=\"Design-system-guide.png\" alt=\"Design-system-guide.png\" /></a></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Storybooking </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"true\">\n<p dir=\"ltr\" role=\"presentation\"><span style=\"letter-spacing: 0px;\">Access the GitHub repo here: <a href=\"https://github.com/zesty-io/design-system\">https://github.com/zesty-io/design-system</a></span></p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"false\">\n<p dir=\"ltr\" role=\"presentation\">Implementing ThemeProvider and Theme config into Zesty app root</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"false\">\n<p dir=\"ltr\" role=\"presentation\">Creating documentation mapping legacy to MUI component props</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"false\">\n<p dir=\"ltr\">E.g. component props map:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Button(Zesty) -> Button(MUI)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Kind -> color</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-build.png\" data-id=\"3-e802d87-8l05px\" title=\"MUI-build.png\" alt=\"MUI-build.png\" /></h2>\n<h2 dir=\"ltr\">Phase 2: Build</h2>\n<p dir=\"ltr\">Once we had everything configured, it was time to build out the components. To do this, we had to convert all @zesty-io/core components used in our system to @mui/material and @zesty-io/material components.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>The build process consisted of first identifying whether a @zesty-io/core component could just be fully substituted with a @mui/material component or if a new component had to be built on top of MUI with additional functionality and exported from @zesty-io/material.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>For either case, we first needed to become familiar with the component's API.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>API doc example: <a target=\"_blank\" data-stringify-link=\"https://mui.com/material-ui/api/button/\" delay=\"150\" data-sk=\"tooltip_parent\" href=\"https://mui.com/material-ui/api/button/\" rel=\"noopener noreferrer\" data-remove-tab-index=\"true\" tabindex=\"-1\">https://mui.com/material-ui/api/button/</a></p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>With this documentation, we could then properly map all of the props we needed to achieve our desired behavior/look.</p>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-testing.png\" data-id=\"3-e802dcc-txwp83\" title=\"MUI-testing.png\" alt=\"MUI-testing.png\" /></h2>\n<h2 dir=\"ltr\">Phase 3: Testing</h2>\n<p dir=\"ltr\">Testing is an extremely important part of implementing a new design system. Our testing phase was the most extensive of all the phases we worked through. </p>\n<p dir=\"ltr\">Our apps currently rely on Cypress testing to ensure the quality and functionality of our applications. When testing, we often have to target specific elements on the webpage in a myriad of ways such as ID, classname, dom nodes, etc.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>Since swapping out existing components removed some of the no longer needed classnames and changed what the component ultimately rendered on the dom, many of our test cases were in need of updates.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>The way we did this was rather straightforward. We ran the old tests, observed the ones that failed, and subsequently provided an updated way of selecting that component so that the Cypress runner could find it.</p>\n<p dir=\"ltr\">Some tests, however, required significantly more work to update, most notably the components that were rendered in completely different ways. <span data-stringify-type=\"paragraph-break\"></span>For example, MUI by default renders its popovers in a portal. Therefore, targeting these popovers requires selecting from the root node as opposed to a traditional select within a parent node.</p>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Component-mappings.png\" data-id=\"3-e802e23-nd214s\" title=\"Component-mappings.png\" alt=\"Component-mappings.png\" /></h2>\n<h2 dir=\"ltr\">Component Mappings</h2>\n<p>For our use case, we had to map specific components that were built in Zesty to the Material UI components. If you are taking a legacy design system and converting your content to the new design system of choice, this section can provide some ideas on how we approached this.</p>\n<h3 dir=\"ltr\">Button</h3>\n<p dir=\"ltr\">The Zesty Button component maps to the MUI Button component<br />* <strong>Note:</strong> MUI button type is ‘button’ so if wrapped in a form, you need to specify \"submit\".<br /><br /></p>\n<div dir=\"ltr\" align=\"left\">\n<table style=\"border-collapse: collapse; width: 468pt; border-color: #ECF0F1; border-style: solid;\"><colgroup><col style=\"width: 197px;\" /><col style=\"width: 426px;\" /></colgroup>\n<tbody>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\"><strong>Zesty</strong></p>\n</td>\n<td>\n<p dir=\"ltr\"><strong>MUI</strong></p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">disabled</p>\n</td>\n<td>\n<p dir=\"ltr\">disabled</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">kind</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">'' [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">outlined</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">flat</p>\n</li>\n</ul>\n</td>\n<td>\n<p dir=\"ltr\">variant</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">contained</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">outlined</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">text [default]</p>\n</li>\n</ul>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">type</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">'' [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">secondary</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">save</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">alt</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">warn</p>\n</li>\n</ul>\n</td>\n<td>\n<p dir=\"ltr\">color</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">primary [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">secondary</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">success</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">warning</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">error</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">info</p>\n</li>\n</ul>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">size</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">'' [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">small</p>\n</li>\n</ul>\n</td>\n<td>\n<p dir=\"ltr\">size</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">medium [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">small</p>\n</li>\n</ul>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">text</p>\n</td>\n<td>\n<p dir=\"ltr\">NO LONGER SUPPORTED</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">startIcon/endIcon: ReactNode<br />* This is specified to prepend or append an icon inside the button</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">fullWidth: boolean <br />* This is specified when button should take up full width of its container</p>\n</td>\n</tr>\n</tbody>\n</table>\n</div>\n<h3 dir=\"ltr\">TextArea - TextField</h3>\n<p dir=\"ltr\">The Zesty TextArea component maps to the MUI TextField component<br /><br /><a href=\"https://mui.com/material-ui/api/text-field/\">https://mui.com/material-ui/api/text-field/</a><br /><br /></p>\n<div dir=\"ltr\" align=\"left\">\n<table style=\"border-collapse: collapse; width: 468pt; border-color: #ECF0F1; border-style: solid;\"><colgroup><col style=\"width: 194px;\" /><col style=\"width: 429px;\" /></colgroup>\n<tbody>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\"><strong>Zesty</strong></p>\n</td>\n<td>\n<p dir=\"ltr\"><strong>MUI</strong></p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">autocomplete</p>\n</td>\n<td>\n<p dir=\"ltr\">autocomplete</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">defaultValue</p>\n</td>\n<td>\n<p dir=\"ltr\">defaultValue</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">value</p>\n</td>\n<td>\n<p dir=\"ltr\">value</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">placeholder</p>\n</td>\n<td>\n<p dir=\"ltr\">placeholder</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">error</p>\n</td>\n<td>\n<p dir=\"ltr\">error</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">onChange</p>\n</td>\n<td>\n<p dir=\"ltr\">onChange</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">type</p>\n</td>\n<td>\n<p dir=\"ltr\">type</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">multiline = true</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">rows: number<br />*Number of rows to display<br />* Use this prop and not ‘minRow/maxRows’ if row count should be static</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">minRows: number<br />*Minimum number of rows to display<br />* Use this prop and not ‘rows’ if row count should be dynamic</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">maxRows: number<br />*Maximum number of rows to display<br />* Use this prop and not ‘rows’ if row count should be dynamic</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">label=’’Some Input Label’<br />* This is specified to add a label to the input </p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">helperText=’’Some Helper Textl’<br />* This is specified to add text on bottom of the input</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">size = ‘small’</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">variant=outlined</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">color = ‘primary’ [default]</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">required: boolean<br />* When specified a ‘*’ is rendered next to the label to indicate it is required </p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">fullWidth: boolean <br />* This is specified when input should take up full width of its container</p>\n</td>\n</tr>\n</tbody>\n</table>\n</div>\n<p dir=\"ltr\" role=\"presentation\"><a href=\"https://www.zesty.io/integrations/mui-nextjs/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\"><img src=\"https://kfg6bckb.media.zestyio.com/Start-MUI-with-Zesty.png\" data-id=\"3-e884035-mr6vxt\" title=\"Start-MUI-with-Zesty.png\" alt=\"Start-MUI-with-Zesty.png\" /></a></p>",
"title": "How we rebuilt our website with the Material UI design system",
"description": null,
"author": {
"type": "relationship",
"model": "authors",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"date": "2022-09-30",
"tags": {
"type": "relationship",
"model": "tags",
"totalItems": 2,
"data": [
{
"message": "max hydration depth hit"
},
{
"message": "max hydration depth hit"
}
]
},
"interviewee_name": null,
"thumbnail_image": null,
"category": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"related_articles": null,
"meta": {
"type": "item",
"model_name": "articles",
"model_alternate_name": "Article",
"zuid": "7-c2b2ce93de-lpn188",
"createdAt": "2022-09-30 20:38:48",
"updatedAt": "2022-09-30 20:38:47",
"listed": "1",
"version": "50",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-45a908-qfw88c",
"name": "articles",
"label": "Articles",
"resourceURI": "https://www.zesty.io/-/instant/6-45a908-qfw88c.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/how-we-rebuilt-our-website-with-material-ui/",
"uri": "/mindshare/how-we-rebuilt-our-website-with-material-ui/",
"fragment": "how-we-rebuilt-our-website-with-material-ui",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-09-30 20:38:47",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "How we rebuilt our website with the Material UI design system",
"seo_meta_title": "How we rebuilt our website with the Material UI design system",
"seo_meta_description": "",
"seo_meta_keywords": null
},
"layout": {
"html": "<div class=\"pvlRoot\">\n\t<div style=\"display:flex\">\n\t\t<div style=\"flex:2\" class=\"pvlColumn\">\n\t\t\t<h1 class=\"pvlHeader\">How we rebuilt our website with the Material UI design system</h1>\n\t\t</div>\n\t\t<div style=\"flex:4\" class=\"pvlColumn\">\n\t\t\t<img src=\"https://kfg6bckb.media.zestyio.com/MUI.png\" alt=\"@\" width=\"100%\" />\n\t\t</div>\n\t</div>\n\t<div class=\"pvlRichtext\"><p dir=\"ltr\">A few months ago, we embarked on a project to rebuild our marketing website. Although the main purpose was to update the content, user journey, and site mapping, the redesign gave us the opportunity to optimize HOW the site was built.</p>\n<p dir=\"ltr\">In choosing a new way to create the site, we went through the process of <a href=\"https://zesty.io/developers-guide-to-selecting-a-design-system/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\">selecting and implementing a design system</a>. Ultimately, we chose Material UI, an open-source project that builds with React.</p>\n<p dir=\"ltr\">This article will walk you through our process of implementing Material UI, so you can use this process for your own website.</p>\n<p dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-selection.png\" data-id=\"3-e802f0d-r4cdz9\" title=\"MUI-selection.png\" alt=\"MUI-selection.png\" /></p>\n<h2 dir=\"ltr\">Phase 0: Design system selection</h2>\n<p dir=\"ltr\" role=\"presentation\">Before implementing Material UI (MUI), we took the following steps to evaluate and select the best design system for our team.</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\"><a href=\"https://zesty.io/developers-guide-to-selecting-a-design-system/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\">Research</a></p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Perf testing</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Proof of concept</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Storybook</p>\n</li>\n</ul>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-setup.png\" data-id=\"3-e802d4e-0g4sq9\" title=\"MUI-setup.png\" alt=\"MUI-setup.png\" /></h2>\n<h2 dir=\"ltr\">Phase 1: Setup</h2>\n<p>Once we had selected MUI as our design system, the next phase was to set up the theme and prep our site for the redesign. These steps included:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Dependency installation</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Theme setup (Typography, Colors)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Initial mapping of atomic components</p>\n</li>\n</ul>\n<p><a href=\"https://zesty.io/developers-guide-to-selecting-a-design-system/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\"><img src=\"https://kfg6bckb.media.zestyio.com/Design-system-guide.png\" data-id=\"3-e8840db-r7jsl0\" title=\"Design-system-guide.png\" alt=\"Design-system-guide.png\" /></a></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Storybooking </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"true\">\n<p dir=\"ltr\" role=\"presentation\"><span style=\"letter-spacing: 0px;\">Access the GitHub repo here: <a href=\"https://github.com/zesty-io/design-system\">https://github.com/zesty-io/design-system</a></span></p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"false\">\n<p dir=\"ltr\" role=\"presentation\">Implementing ThemeProvider and Theme config into Zesty app root</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"false\">\n<p dir=\"ltr\" role=\"presentation\">Creating documentation mapping legacy to MUI component props</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\" role=\"checkbox\" aria-checked=\"false\">\n<p dir=\"ltr\">E.g. component props map:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Button(Zesty) -> Button(MUI)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"2\">\n<p dir=\"ltr\" role=\"presentation\">Kind -> color</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-build.png\" data-id=\"3-e802d87-8l05px\" title=\"MUI-build.png\" alt=\"MUI-build.png\" /></h2>\n<h2 dir=\"ltr\">Phase 2: Build</h2>\n<p dir=\"ltr\">Once we had everything configured, it was time to build out the components. To do this, we had to convert all @zesty-io/core components used in our system to @mui/material and @zesty-io/material components.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>The build process consisted of first identifying whether a @zesty-io/core component could just be fully substituted with a @mui/material component or if a new component had to be built on top of MUI with additional functionality and exported from @zesty-io/material.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>For either case, we first needed to become familiar with the component's API.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>API doc example: <a target=\"_blank\" data-stringify-link=\"https://mui.com/material-ui/api/button/\" delay=\"150\" data-sk=\"tooltip_parent\" href=\"https://mui.com/material-ui/api/button/\" rel=\"noopener noreferrer\" data-remove-tab-index=\"true\" tabindex=\"-1\">https://mui.com/material-ui/api/button/</a></p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>With this documentation, we could then properly map all of the props we needed to achieve our desired behavior/look.</p>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/MUI-testing.png\" data-id=\"3-e802dcc-txwp83\" title=\"MUI-testing.png\" alt=\"MUI-testing.png\" /></h2>\n<h2 dir=\"ltr\">Phase 3: Testing</h2>\n<p dir=\"ltr\">Testing is an extremely important part of implementing a new design system. Our testing phase was the most extensive of all the phases we worked through. </p>\n<p dir=\"ltr\">Our apps currently rely on Cypress testing to ensure the quality and functionality of our applications. When testing, we often have to target specific elements on the webpage in a myriad of ways such as ID, classname, dom nodes, etc.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>Since swapping out existing components removed some of the no longer needed classnames and changed what the component ultimately rendered on the dom, many of our test cases were in need of updates.</p>\n<p dir=\"ltr\"><span data-stringify-type=\"paragraph-break\"></span>The way we did this was rather straightforward. We ran the old tests, observed the ones that failed, and subsequently provided an updated way of selecting that component so that the Cypress runner could find it.</p>\n<p dir=\"ltr\">Some tests, however, required significantly more work to update, most notably the components that were rendered in completely different ways. <span data-stringify-type=\"paragraph-break\"></span>For example, MUI by default renders its popovers in a portal. Therefore, targeting these popovers requires selecting from the root node as opposed to a traditional select within a parent node.</p>\n<h2 dir=\"ltr\"><img src=\"https://kfg6bckb.media.zestyio.com/Component-mappings.png\" data-id=\"3-e802e23-nd214s\" title=\"Component-mappings.png\" alt=\"Component-mappings.png\" /></h2>\n<h2 dir=\"ltr\">Component Mappings</h2>\n<p>For our use case, we had to map specific components that were built in Zesty to the Material UI components. If you are taking a legacy design system and converting your content to the new design system of choice, this section can provide some ideas on how we approached this.</p>\n<h3 dir=\"ltr\">Button</h3>\n<p dir=\"ltr\">The Zesty Button component maps to the MUI Button component<br />* <strong>Note:</strong> MUI button type is ‘button’ so if wrapped in a form, you need to specify \"submit\".<br /><br /></p>\n<div dir=\"ltr\" align=\"left\">\n<table style=\"border-collapse: collapse; width: 468pt; border-color: #ECF0F1; border-style: solid;\"><colgroup><col style=\"width: 197px;\" /><col style=\"width: 426px;\" /></colgroup>\n<tbody>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\"><strong>Zesty</strong></p>\n</td>\n<td>\n<p dir=\"ltr\"><strong>MUI</strong></p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">disabled</p>\n</td>\n<td>\n<p dir=\"ltr\">disabled</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">kind</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">'' [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">outlined</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">flat</p>\n</li>\n</ul>\n</td>\n<td>\n<p dir=\"ltr\">variant</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">contained</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">outlined</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">text [default]</p>\n</li>\n</ul>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">type</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">'' [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">secondary</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">save</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">alt</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">warn</p>\n</li>\n</ul>\n</td>\n<td>\n<p dir=\"ltr\">color</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">primary [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">secondary</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">success</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">warning</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">error</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">info</p>\n</li>\n</ul>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">size</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">'' [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">small</p>\n</li>\n</ul>\n</td>\n<td>\n<p dir=\"ltr\">size</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">medium [default]</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">small</p>\n</li>\n</ul>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">text</p>\n</td>\n<td>\n<p dir=\"ltr\">NO LONGER SUPPORTED</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">startIcon/endIcon: ReactNode<br />* This is specified to prepend or append an icon inside the button</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">fullWidth: boolean <br />* This is specified when button should take up full width of its container</p>\n</td>\n</tr>\n</tbody>\n</table>\n</div>\n<h3 dir=\"ltr\">TextArea - TextField</h3>\n<p dir=\"ltr\">The Zesty TextArea component maps to the MUI TextField component<br /><br /><a href=\"https://mui.com/material-ui/api/text-field/\">https://mui.com/material-ui/api/text-field/</a><br /><br /></p>\n<div dir=\"ltr\" align=\"left\">\n<table style=\"border-collapse: collapse; width: 468pt; border-color: #ECF0F1; border-style: solid;\"><colgroup><col style=\"width: 194px;\" /><col style=\"width: 429px;\" /></colgroup>\n<tbody>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\"><strong>Zesty</strong></p>\n</td>\n<td>\n<p dir=\"ltr\"><strong>MUI</strong></p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">autocomplete</p>\n</td>\n<td>\n<p dir=\"ltr\">autocomplete</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">defaultValue</p>\n</td>\n<td>\n<p dir=\"ltr\">defaultValue</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">value</p>\n</td>\n<td>\n<p dir=\"ltr\">value</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">placeholder</p>\n</td>\n<td>\n<p dir=\"ltr\">placeholder</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">error</p>\n</td>\n<td>\n<p dir=\"ltr\">error</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">onChange</p>\n</td>\n<td>\n<p dir=\"ltr\">onChange</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td>\n<p dir=\"ltr\">type</p>\n</td>\n<td>\n<p dir=\"ltr\">type</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">multiline = true</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">rows: number<br />*Number of rows to display<br />* Use this prop and not ‘minRow/maxRows’ if row count should be static</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">minRows: number<br />*Minimum number of rows to display<br />* Use this prop and not ‘rows’ if row count should be dynamic</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">maxRows: number<br />*Maximum number of rows to display<br />* Use this prop and not ‘rows’ if row count should be dynamic</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">label=’’Some Input Label’<br />* This is specified to add a label to the input </p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">helperText=’’Some Helper Textl’<br />* This is specified to add text on bottom of the input</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">size = ‘small’</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">variant=outlined</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">color = ‘primary’ [default]</p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">required: boolean<br />* When specified a ‘*’ is rendered next to the label to indicate it is required </p>\n</td>\n</tr>\n<tr style=\"height: 0pt;\">\n<td></td>\n<td>\n<p dir=\"ltr\">fullWidth: boolean <br />* This is specified when input should take up full width of its container</p>\n</td>\n</tr>\n</tbody>\n</table>\n</div>\n<p dir=\"ltr\" role=\"presentation\"><a href=\"https://www.zesty.io/integrations/mui-nextjs/?UTM_source=website&UTM_medium=article&UTM_campaign=MUI\"><img src=\"https://kfg6bckb.media.zestyio.com/Start-MUI-with-Zesty.png\" data-id=\"3-e884035-mr6vxt\" title=\"Start-MUI-with-Zesty.png\" alt=\"Start-MUI-with-Zesty.png\" /></a></p></div>\n</div>\n",
"json": null
}
}
}
]
},
"callout_3_internal_link": {
"type": "relationship",
"model": "articles",
"totalItems": 1,
"data": [
{
"hero_image": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ebe708a-vsprp8",
"url": "https://kfg6bckb.media.zestyio.com/headless-cms-wasted-time.png"
}
]
},
"screenshot": null,
"quote": null,
"youtube_id": null,
"interviewee_headshot": null,
"article": "<p dir=\"ltr\">The harsh truth: you’re wasting time overcomplicating web development.</p>\n<p dir=\"ltr\">Headless CMS has been slated as a shiny, exciting object that can solve the problems that legacy CMS’s (think: Wordpress, Wix, Adobe, Drupal, etc.) bring up. Headless CMS platforms like Contentful, Strapi, and the like promise:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Faster scalability</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">More agility</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Better omnichannel capabilities</p>\n</li>\n</ul>\n<p dir=\"ltr\">But often, headless under-delivers on its promise, especially when you’re working with a small team or limited resources that need to get their content out the door fast. The majority of web projects do not need a purely headless CMS.</p>\n<h2 dir=\"ltr\">The unfortunate reality of purely headless CMS</h2>\n<p dir=\"ltr\">In reality, what most companies find when they start working with a purely headless platform is the following:</p>\n<h3 dir=\"ltr\">No built-in visual tools for non-technical teams </h3>\n<p dir=\"ltr\">Visual tools like side-by-side editing and preview are not available in most headless CMS platforms. Integrations or custom tooling may be able to get you there, but most non-technical teams find they have a frustrating time with headless. Marketers and content authors are unable to see the changes they’re making to the website; that’s like trying to paint the Mona Lisa in the dark.</p>\n<h3 dir=\"ltr\">Less autonomy for teams</h3>\n<p dir=\"ltr\">No matter what freedoms pure headless CMS platforms promise, everything is dependent on development teams. Simple changes need to be passed through the development team, instead of content teams being able to make edits directly, which ultimately means more work for all. A headless CMS causes more dev tickets, not fewer.</p>\n<h3 dir=\"ltr\">Lag-time between content publishing and when it’s live</h3>\n<p dir=\"ltr\">Because of how headless works, publishing is not instantaneous. Therefore, changes to the website (such as bugs, updates to fix crashed pages, or critical design updates) take longer and can harm business overall. This can be minutes, hours, or days, depending on the size of your site. Generally speaking, the bigger or more complex the site, the longer the build time.</p>\n<h3 dir=\"ltr\">Lack of SEO capabilities</h3>\n<p dir=\"ltr\">Many headless CMS platforms do not provide direct editing of URLs, metadata, 301 and 302 redirects, image optimization, schema tags for accessibility, and more. Those familiar with the quick editing provided by Yoast in Wordpress will be frustrated with the dependency on development to update simple SEO properties, let alone the more technical functions to improve optimization. </p>\n<p>This puts the emphasis on web developers to understand and optimize SEO, which takes time away from their primary goals.</p>\n<h2 dir=\"ltr\">Pure headless is just more expensive, period.</h2>\n<h3 dir=\"ltr\">More headcount and highly-skilled developers required</h3>\n<p>There are many reasons why headless CMS can incur more costs than meets the eye, one of which is the development firepower needed to make it successful. We feel this should be one of the biggest considerations when choosing headless.</p>\n<p>Building headlessly typically requires more headcount dedicated to the project, which in turn drives up business costs. Additionally, it requires more skilled developers who understand more than traditional web development, like local environments, Node.js, APIs, git workflows, and more.</p>\n<h3 dir=\"ltr\">More software than you may think</h3>\n<p dir=\"ltr\">Purely headless CMS is just one piece of the puzzle. Companies are still left responsible for the rest of the architecture and infrastructure required to make your build successful, including (but not limited to): </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Endpoint hosting</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Web page hosting</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Software hosting (if self-hosting) </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Deployment target</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Private cloud component</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Webhook costs</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Content delivery network</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Firewall and security </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Site backups</p>\n</li>\n</ul>\n<h3 dir=\"ltr\">Lost revenue due to marketing gridlock</h3>\n<p dir=\"ltr\">This is the biggest drawback of headless for most teams. Those who are used to working in CMS platforms that provide preview environments and direct publishing find headless to reduce their work autonomy and increase friction in the publishing process. Workarounds can be created to provide preview environments, but those also have to be maintained by the development team.</p>\n<h3 dir=\"ltr\">Ultimately, longer development time </h3>\n<p dir=\"ltr\">Headless CMS’s promise faster development due to the nature of developing headlessly: content and development teams can work simultaneously to produce what they’re responsible for. </p>\n<p dir=\"ltr\">It sounds like a dream come true; however, headless development is complex. Without the features listed above such as preview environments and visual editing, the back-and-forth between content and development teams compounds. Many of our clients have come to us after even just a few months on other headless platforms, citing frustration around the long development times with headless.</p>\n<p dir=\"ltr\"><a href=\"/quiz-how-should-you-build-your-website-or-mobile-app/\"><img src=\"https://kfg6bckb.media.zestyio.com/Quiz-2.png\" data-id=\"3-ebe717f-hwrnkq\" title=\"Quiz-2.png\" alt=\"Quiz-2.png\" /></a></p>\n<h2 dir=\"ltr\">What’s the right choice? It depends on your business needs.</h2>\n<p dir=\"ltr\">Headless isn’t meant for every company. In fact, most companies are probably doing themselves a disservice by implementing a headless CMS, purely because they don’t need something so complicated for what they’re trying to achieve.</p>\n<p dir=\"ltr\">So what’s the solution?</p>\n<p dir=\"ltr\">We’re not going to say that headless is wrong for every situation - in fact, it can be extremely powerful for those looking to create highly complex, personalized experiences. </p>\n<p dir=\"ltr\">But for those looking to take advantage of omnichannel capabilities and flexibility that headless provides while still having the capability to actually edit content and move quickly to publish, we recommend finding a middle ground with a hybrid solution.</p>\n<p dir=\"ltr\">Hybrid CMS platforms <a href=\"https://www.zesty.io/solutions/hybrid-cms/\">such as Zesty</a> offer the best of legacy and headless systems. Teams can leverage the modern capabilities of headless, such as the flexibility to place content on any channel without extra development. But they also get the visual tools and greater marketer control that legacy CMS boasts. Plus, the total cost of ownership decreases when you don’t need as many resources or integrations to get the job done.</p>\n<h2 dir=\"ltr\">How to determine the right CMS for your business</h2>\n<p dir=\"ltr\">Here’s how to determine what type of CMS to choose:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Evaluate how many resources you have to work on your site/app/project.</strong> The fewer resources, the less likely you should be opting for headless.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Determine where you need your content to go.</strong> If it’s just going onto a website that doesn’t need personalization or eCommerce capabilities, you should be opting for hybrid. If you’re looking to do multi-channel content that’s highly complex, headless might be better, though hybrid can still serve your needs.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Ask yourself: what type of knowledge does your team have?</strong> If you only have a front-end developer, you might be better off leveraging a hybrid CMS. Even if you have a larger team, their skills may be used better somewhere other than your website.</p>\n</li>\n</ul>\n<p dir=\"ltr\"><strong>When you should use headless:</strong></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Your website is tied to your product</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">You need highly personalized content</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You are building a highly complex omnichannel strategy</p>\n</li>\n</ul>\n<p dir=\"ltr\"><strong>When you should not use headless:</strong></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You are building a standalone marketing site (that is also mobile-friendly)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You have limited resources to get the job done</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You need visual tools to give your marketing team autonomy over their work</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You need faster development and direct publishing capabilities</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">You don't want to pull your existing product developers onto website projects</li>\n</ul>\n<p dir=\"ltr\"><a href=\"/quiz-how-should-you-build-your-website-or-mobile-app/\">If all else fails, take our quiz to determine what is best for your business.</a></p>\n<p dir=\"ltr\"><a href=\"/quiz-how-should-you-build-your-website-or-mobile-app/\"><img src=\"https://kfg6bckb.media.zestyio.com/Quiz-1.png\" data-id=\"3-ebe7180-dkz2pl\" title=\"Quiz-1.png\" alt=\"Quiz-1.png\" /></a></p>\n<p></p>",
"title": "Pure headless CMS is an overcorrection. Here’s why.",
"description": "We had to come out and say it. Pure headless isn't the right fit for most companies.",
"author": {
"type": "relationship",
"model": "authors",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"date": "2022-11-02",
"tags": {
"type": "relationship",
"model": "tags",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"interviewee_name": null,
"thumbnail_image": null,
"category": {
"type": "relationship",
"model": "category",
"totalItems": 1,
"data": [
{
"message": "max hydration depth hit"
}
]
},
"related_articles": null,
"meta": {
"type": "item",
"model_name": "articles",
"model_alternate_name": "Article",
"zuid": "7-aec0d0c099-v8w11j",
"createdAt": "2022-11-15 19:50:14",
"updatedAt": "2022-11-15 19:50:14",
"listed": "1",
"version": "17",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-45a908-qfw88c",
"name": "articles",
"label": "Articles",
"resourceURI": "https://www.zesty.io/-/instant/6-45a908-qfw88c.json"
},
"web": {
"url": "https://www.zesty.io/mindshare/pure-headless-is-an-overcorrection/",
"uri": "/mindshare/pure-headless-is-an-overcorrection/",
"fragment": "pure-headless-is-an-overcorrection",
"canonical_tag_mode": "1",
"sitemap_priority": "-1.0",
"sitemap_last_updated": "2022-11-15 19:50:14",
"canonical_query_param_whitelist": null,
"canonical_tag_custom_value": null,
"seo_link_text": "Pure Headless is an overcorrection. Here’s why.",
"seo_meta_title": "Pure Headless is an overcorrection. Here’s why.",
"seo_meta_description": "The harsh truth: you're wasting time overcomplicating web development. Here are the downsides to purely headless development.",
"seo_meta_keywords": null
},
"layout": {
"html": "<div class=\"pvlRoot\">\n\t<div style=\"display:flex\">\n\t\t<div style=\"flex:2\" class=\"pvlColumn\">\n\t\t\t<h1 class=\"pvlHeader\">Pure headless CMS is an overcorrection. Here’s why.</h1>\n\t\t</div>\n\t\t<div style=\"flex:4\" class=\"pvlColumn\">\n\t\t\t<img src=\"https://kfg6bckb.media.zestyio.com/headless-cms-wasted-time.png\" alt=\"@\" width=\"100%\" />\n\t\t</div>\n\t</div>\n\t<div class=\"pvlRichtext\"><p dir=\"ltr\">The harsh truth: you’re wasting time overcomplicating web development.</p>\n<p dir=\"ltr\">Headless CMS has been slated as a shiny, exciting object that can solve the problems that legacy CMS’s (think: Wordpress, Wix, Adobe, Drupal, etc.) bring up. Headless CMS platforms like Contentful, Strapi, and the like promise:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Faster scalability</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">More agility</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Better omnichannel capabilities</p>\n</li>\n</ul>\n<p dir=\"ltr\">But often, headless under-delivers on its promise, especially when you’re working with a small team or limited resources that need to get their content out the door fast. The majority of web projects do not need a purely headless CMS.</p>\n<h2 dir=\"ltr\">The unfortunate reality of purely headless CMS</h2>\n<p dir=\"ltr\">In reality, what most companies find when they start working with a purely headless platform is the following:</p>\n<h3 dir=\"ltr\">No built-in visual tools for non-technical teams </h3>\n<p dir=\"ltr\">Visual tools like side-by-side editing and preview are not available in most headless CMS platforms. Integrations or custom tooling may be able to get you there, but most non-technical teams find they have a frustrating time with headless. Marketers and content authors are unable to see the changes they’re making to the website; that’s like trying to paint the Mona Lisa in the dark.</p>\n<h3 dir=\"ltr\">Less autonomy for teams</h3>\n<p dir=\"ltr\">No matter what freedoms pure headless CMS platforms promise, everything is dependent on development teams. Simple changes need to be passed through the development team, instead of content teams being able to make edits directly, which ultimately means more work for all. A headless CMS causes more dev tickets, not fewer.</p>\n<h3 dir=\"ltr\">Lag-time between content publishing and when it’s live</h3>\n<p dir=\"ltr\">Because of how headless works, publishing is not instantaneous. Therefore, changes to the website (such as bugs, updates to fix crashed pages, or critical design updates) take longer and can harm business overall. This can be minutes, hours, or days, depending on the size of your site. Generally speaking, the bigger or more complex the site, the longer the build time.</p>\n<h3 dir=\"ltr\">Lack of SEO capabilities</h3>\n<p dir=\"ltr\">Many headless CMS platforms do not provide direct editing of URLs, metadata, 301 and 302 redirects, image optimization, schema tags for accessibility, and more. Those familiar with the quick editing provided by Yoast in Wordpress will be frustrated with the dependency on development to update simple SEO properties, let alone the more technical functions to improve optimization. </p>\n<p>This puts the emphasis on web developers to understand and optimize SEO, which takes time away from their primary goals.</p>\n<h2 dir=\"ltr\">Pure headless is just more expensive, period.</h2>\n<h3 dir=\"ltr\">More headcount and highly-skilled developers required</h3>\n<p>There are many reasons why headless CMS can incur more costs than meets the eye, one of which is the development firepower needed to make it successful. We feel this should be one of the biggest considerations when choosing headless.</p>\n<p>Building headlessly typically requires more headcount dedicated to the project, which in turn drives up business costs. Additionally, it requires more skilled developers who understand more than traditional web development, like local environments, Node.js, APIs, git workflows, and more.</p>\n<h3 dir=\"ltr\">More software than you may think</h3>\n<p dir=\"ltr\">Purely headless CMS is just one piece of the puzzle. Companies are still left responsible for the rest of the architecture and infrastructure required to make your build successful, including (but not limited to): </p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Endpoint hosting</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Web page hosting</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Software hosting (if self-hosting) </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Deployment target</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Private cloud component</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Webhook costs</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Content delivery network</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Firewall and security </p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Site backups</p>\n</li>\n</ul>\n<h3 dir=\"ltr\">Lost revenue due to marketing gridlock</h3>\n<p dir=\"ltr\">This is the biggest drawback of headless for most teams. Those who are used to working in CMS platforms that provide preview environments and direct publishing find headless to reduce their work autonomy and increase friction in the publishing process. Workarounds can be created to provide preview environments, but those also have to be maintained by the development team.</p>\n<h3 dir=\"ltr\">Ultimately, longer development time </h3>\n<p dir=\"ltr\">Headless CMS’s promise faster development due to the nature of developing headlessly: content and development teams can work simultaneously to produce what they’re responsible for. </p>\n<p dir=\"ltr\">It sounds like a dream come true; however, headless development is complex. Without the features listed above such as preview environments and visual editing, the back-and-forth between content and development teams compounds. Many of our clients have come to us after even just a few months on other headless platforms, citing frustration around the long development times with headless.</p>\n<p dir=\"ltr\"><a href=\"/quiz-how-should-you-build-your-website-or-mobile-app/\"><img src=\"https://kfg6bckb.media.zestyio.com/Quiz-2.png\" data-id=\"3-ebe717f-hwrnkq\" title=\"Quiz-2.png\" alt=\"Quiz-2.png\" /></a></p>\n<h2 dir=\"ltr\">What’s the right choice? It depends on your business needs.</h2>\n<p dir=\"ltr\">Headless isn’t meant for every company. In fact, most companies are probably doing themselves a disservice by implementing a headless CMS, purely because they don’t need something so complicated for what they’re trying to achieve.</p>\n<p dir=\"ltr\">So what’s the solution?</p>\n<p dir=\"ltr\">We’re not going to say that headless is wrong for every situation - in fact, it can be extremely powerful for those looking to create highly complex, personalized experiences. </p>\n<p dir=\"ltr\">But for those looking to take advantage of omnichannel capabilities and flexibility that headless provides while still having the capability to actually edit content and move quickly to publish, we recommend finding a middle ground with a hybrid solution.</p>\n<p dir=\"ltr\">Hybrid CMS platforms <a href=\"https://www.zesty.io/solutions/hybrid-cms/\">such as Zesty</a> offer the best of legacy and headless systems. Teams can leverage the modern capabilities of headless, such as the flexibility to place content on any channel without extra development. But they also get the visual tools and greater marketer control that legacy CMS boasts. Plus, the total cost of ownership decreases when you don’t need as many resources or integrations to get the job done.</p>\n<h2 dir=\"ltr\">How to determine the right CMS for your business</h2>\n<p dir=\"ltr\">Here’s how to determine what type of CMS to choose:</p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Evaluate how many resources you have to work on your site/app/project.</strong> The fewer resources, the less likely you should be opting for headless.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Determine where you need your content to go.</strong> If it’s just going onto a website that doesn’t need personalization or eCommerce capabilities, you should be opting for hybrid. If you’re looking to do multi-channel content that’s highly complex, headless might be better, though hybrid can still serve your needs.</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\"><strong>Ask yourself: what type of knowledge does your team have?</strong> If you only have a front-end developer, you might be better off leveraging a hybrid CMS. Even if you have a larger team, their skills may be used better somewhere other than your website.</p>\n</li>\n</ul>\n<p dir=\"ltr\"><strong>When you should use headless:</strong></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">Your website is tied to your product</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">You need highly personalized content</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You are building a highly complex omnichannel strategy</p>\n</li>\n</ul>\n<p dir=\"ltr\"><strong>When you should not use headless:</strong></p>\n<ul>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You are building a standalone marketing site (that is also mobile-friendly)</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You have limited resources to get the job done</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You need visual tools to give your marketing team autonomy over their work</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">\n<p dir=\"ltr\" role=\"presentation\">You need faster development and direct publishing capabilities</p>\n</li>\n<li dir=\"ltr\" style=\"list-style-type: disc;\" aria-level=\"1\">You don't want to pull your existing product developers onto website projects</li>\n</ul>\n<p dir=\"ltr\"><a href=\"/quiz-how-should-you-build-your-website-or-mobile-app/\">If all else fails, take our quiz to determine what is best for your business.</a></p>\n<p dir=\"ltr\"><a href=\"/quiz-how-should-you-build-your-website-or-mobile-app/\"><img src=\"https://kfg6bckb.media.zestyio.com/Quiz-1.png\" data-id=\"3-ebe7180-dkz2pl\" title=\"Quiz-1.png\" alt=\"Quiz-1.png\" /></a></p>\n<p></p></div>\n</div>\n",
"json": null
}
}
}
]
},
"callout_1_external_link_if_needed": null,
"flyout_cta": null,
"flyout_cta_title": null,
"column_one_title": "Developer Resources",
"column_two_title": "Industry learning",
"column_three_title": "Latest Blog Articles",
"callout_image_2": {
"type": "images",
"totalItems": 1,
"data": [
{
"type": "image",
"zuid": "3-ebfabc3-g5drcm",
"url": "https://kfg6bckb.media.zestyio.com/How-to-AB-test-on-website.png"
}
]
},
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-be99d8869a-hd3f5g",
"createdAt": "2023-01-12 17:12:59",
"updatedAt": "2023-01-12 17:12:58",
"listed": "1",
"version": "7",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
},
{
"nav_title": "Partners",
"link": "https://www.zesty.io/agency-partners/partner-program-benefits/",
"sort_order": "4",
"sub_nav_items": null,
"callout_image_1": null,
"callout_1_label": null,
"callout_1_link": null,
"callout_2_image": null,
"callout_2_label": null,
"callout_2_link": null,
"_column_1_title": null,
"column_1_items": null,
"_column_2_title": null,
"column_2_items": null,
"_column_3_title": null,
"column_3_items_if_needed": null,
"callout_3_image": null,
"callout_3_title": null,
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": null,
"callout_4_link": null,
"callout_4_internal_link": null,
"callout_3_internal_link": null,
"callout_1_external_link_if_needed": null,
"flyout_cta": null,
"flyout_cta_title": null,
"column_one_title": null,
"column_two_title": null,
"column_three_title": null,
"callout_image_2": null,
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-dedccf90be-8p6sw2",
"createdAt": "2022-11-15 16:52:13",
"updatedAt": "2022-11-15 16:52:12",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
},
{
"nav_title": "Pricing",
"link": "https://www.zesty.io/pricing/",
"sort_order": "5",
"sub_nav_items": null,
"callout_image_1": null,
"callout_1_label": null,
"callout_1_link": null,
"callout_2_image": null,
"callout_2_label": null,
"callout_2_link": null,
"_column_1_title": null,
"column_1_items": null,
"_column_2_title": null,
"column_2_items": null,
"_column_3_title": null,
"column_3_items_if_needed": null,
"callout_3_image": null,
"callout_3_title": null,
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": null,
"callout_4_link": null,
"callout_4_internal_link": null,
"callout_3_internal_link": null,
"callout_1_external_link_if_needed": null,
"flyout_cta": null,
"flyout_cta_title": null,
"column_one_title": null,
"column_two_title": null,
"column_three_title": null,
"callout_image_2": null,
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-aa9fd4ea98-m3j4mk",
"createdAt": "2022-11-15 16:56:30",
"updatedAt": "2022-11-15 16:56:30",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
},
{
"nav_title": "About",
"link": "https://www.zesty.io/about/",
"sort_order": "6",
"sub_nav_items": null,
"callout_image_1": null,
"callout_1_label": null,
"callout_1_link": null,
"callout_2_image": null,
"callout_2_label": null,
"callout_2_link": null,
"_column_1_title": null,
"column_1_items": null,
"_column_2_title": null,
"column_2_items": null,
"_column_3_title": null,
"column_3_items_if_needed": null,
"callout_3_image": null,
"callout_3_title": null,
"callout_3_link": null,
"callout_4_image": null,
"callout_4_title": null,
"callout_4_link": null,
"callout_4_internal_link": null,
"callout_3_internal_link": null,
"callout_1_external_link_if_needed": null,
"flyout_cta": null,
"flyout_cta_title": null,
"column_one_title": null,
"column_two_title": null,
"column_three_title": null,
"callout_image_2": null,
"meta": {
"type": "item",
"model_name": "navigation_flyout",
"model_alternate_name": "NavigationFlyout",
"zuid": "7-d8bad0c7de-rp55cf",
"createdAt": "2022-07-21 22:23:23",
"updatedAt": "2022-07-21 22:23:23",
"listed": "1",
"version": "2",
"locale": {
"id": "1",
"name": "English (United States)",
"code": "en-US",
"default": "1",
"active": "1",
"enabled": "1"
},
"model": {
"type": "model",
"zuid": "6-faf387aeac-f9btpx",
"name": "navigation_flyout",
"label": "Navigation Flyout",
"resourceURI": "https://www.zesty.io/-/instant/6-faf387aeac-f9btpx.json"
}
}
}
],
"zesty": {
"isAuthenticated": false,
"sso": {
"githubUrl": "https://auth.api.zesty.io/github/login",
"googleUrl": "https://auth.api.zesty.io/google/login",
"msUrl": "https://auth.api.zesty.io/azure/login"
},
"templateUrl": "https://templating.api.zesty.io/"
}
}