Creating a simple site with Enterspeed & Vanilla JS
In this tutorial, we’re going to see how we can set up a simple site using Enterspeed and (vanilla) JavaScript. We’ve made a demo website, which has a list of blog posts.
The demo website is made as a simple SPA (Single Page Application) that renders everything client-side. Internal links only work by “clicking on them” and not by visiting the URL directly (this also includes refreshing and using the history back-button).The demo website is purely for illustration purposes. We recommend using a production-ready framework like Next.js for your actual project.
You can choose to clone the project from Github and build this example site, or you can choose to start from scratch and build your own.To get started you’ll need:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enterspeed Docs","colors":{"primary":"#0018ff","light":"#99bfdd","dark":"#000035"},"logo":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e","dark":"https://mintcdn.com/enterspeed/ZSYX286dEXJYPh8A/images/Enterspeed_Logo_RGB_DIAP.svg?fit=max\u0026auto=format\u0026n=ZSYX286dEXJYPh8A\u0026q=85\u0026s=57859398954b59778cd723e0b9e4dca5"},"favicon":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f","dark":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f"},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://www.enterspeedstatus.com/","label":"Status"}]},"footer":{"socials":{"github":"https://github.com/enterspeedhq","linkedin":"https://www.linkedin.com/company/enterspeed","website":"https://www.enterspeed.com/","youtube":"https://www.youtube.com/@enterspeedhq"},"links":[{"header":"Company","items":[{"label":"Enterspeed","href":"https://www.enterspeed.com"},{"label":"Contact Us","href":"https://www.enterspeed.com/contact"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://www.enterspeed.com/blog"},{"label":"Product Updates","href":"https://updates.enterspeed.com/"},{"label":"Newsletter Signup","href":"https://content.enterspeed.com/newsletter-signup"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]}]},"search":{"prompt":"Search docs"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"gtm":{"tagId":"GTM-N32R9R7"},"mixpanel":{"projectToken":"efb544fc5e5319cb4a082b0154e14df2","region":"eu"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enterspeed","hasAudioNarration":false,"actualSubdomain":"enterspeed","customDomains":["docs.enterspeed.com"],"gitSource":{"type":"github","owner":"enterspeedhq","repo":"enterspeed-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"528dd4a1-f406-4d8f-a3a1-420ea5af8b77","liveDeploymentHistoryId":"6ae9c20c98ee2cfbfea836ef","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9c20c98ee2cfbfea836ef"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae9c20c98ee2cfbfea836ef","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Enterspeed","count":136},{"language":"default","tag":"Overview","count":46},{"language":"default","tag":"Integrations","count":43},{"language":"default","tag":"Source integrations","count":30},{"language":"default","tag":"Speedtrain","count":29},{"language":"default","tag":"Key concepts","count":23},{"language":"default","tag":"Umbraco","count":21},{"language":"default","tag":"Tutorials","count":20},{"language":"default","tag":"Schema reference","count":19},{"language":"default","tag":"Getting started","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".integration-logos .card img{background-color:#f0f3f7;border-radius:0.5rem;padding:0.75rem;box-sizing:border-box}.dark .integration-logos .card img{background-color:#000035}"}],"page":{"pagePath":"enterspeed/tutorials/creating-a-simple-site/intro","slug":"/enterspeed/tutorials/creating-a-simple-site/intro","pageMetadata":{"title":"Intro","description":null,"href":"/enterspeed/tutorials/creating-a-simple-site/intro"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`creating-a-simple-site-with-enterspeed-\u0026-vanilla-js`,children:`Creating a simple site with Enterspeed \u0026 Vanilla JS`}),`\n`,_jsxs(_components.p,{children:[`In this tutorial, we’re going to see how we can set up a simple site using Enterspeed and (vanilla) JavaScript. We’ve made a `,_jsx(_components.a,{href:`https://enterspeed-vanilla-js.netlify.app/`,children:`demo website`}),`, which has a list of blog posts.`]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`The demo website is made as a simple SPA (Single Page Application) that renders everything client-side. Internal links only work by “clicking on them” and not by visiting the URL directly (this also includes refreshing and using the history back-button).`}),_jsx(_components.p,{children:`The demo website is purely for illustration purposes. We recommend using a production-ready framework like Next.js for your actual project.`})]}),`\n`,_jsxs(_components.p,{children:[`You can choose to `,_jsx(_components.a,{href:`https://github.com/enterspeedhq/enterspeed-demos/tree/master/vanilla-js`,children:`clone the project from Github`}),` and build this example site, or you can choose to start from scratch and build your own.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To get started you’ll need:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`An Enterspeed account (`,_jsx(_components.a,{href:`https://app.enterspeed.com/signup`,children:`sign up here`}),`)`]}),`\n`,_jsx(_components.li,{children:`An environment to run the application (this can be done locally).`}),`\n`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`If you don’t want to run it locally, we suggest using `,_jsx(_components.a,{href:`https://www.netlify.com/`,children:`Netlify`}),` or `,_jsx(_components.a,{href:`https://vercel.com/`,children:`Vercel`}),` (both have a free tier available).`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Intro","description":null,"href":"/enterspeed/tutorials/creating-a-simple-site/intro"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Creating a simple site with Enterspeed \u0026 Vanilla JS","slug":"creating-a-simple-site-with-enterspeed-\u0026-vanilla-js","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"enterspeed","siteName":"Enterspeed Docs","title":"Intro - Enterspeed Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T06:29:13.735Z","originalFileLocation":"enterspeed/tutorials/creating-a-simple-site/intro.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Intro - Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enterspeed.mintlify.site/_mintlify/api/og/v2?division=Creating+a+simple+site\u0026amp;title=Intro\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=976629801dc93e1a3eacb0aa25bf8279d074de5e8b1373e9d4e2f14b91031740\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Intro - Enterspeed Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enterspeed.mintlify.site/_mintlify/api/og/v2?division=Creating+a+simple+site\u0026amp;title=Intro\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=976629801dc93e1a3eacb0aa25bf8279d074de5e8b1373e9d4e2f14b91031740\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0018ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/enterspeed/tutorials/creating-a-simple-site/intro.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enterspeed.com/#organization\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enterspeed.com#website\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro#webpage\",\"url\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro\",\"name\":\"Intro\",\"dateModified\":\"2026-11-03T06:29:13.735Z\",\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tutorials\",\"item\":\"https://docs.enterspeed.com/enterspeed/tutorials/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Intro\",\"item\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro#article\",\"headline\":\"Intro\",\"name\":\"Intro\",\"url\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/tutorials/creating-a-simple-site/intro#webpage\"},\"dateModified\":\"2026-11-03T06:29:13.735Z\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enterspeed Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enterspeed Docs","nav":{"global":null,"products":[{"product":"Enterspeed","icon":"gear-complex-api","description":"The data orchestration layer","pages":[{"group":"Overview","pages":[{"title":"Enterspeed Documentation","sidebarTitle":"Welcome","href":"/enterspeed/welcome"},{"group":"Getting started","pages":[{"group":"0 - Setup","pages":[{"title":"Intro","href":"/enterspeed/getting-started/intro"},{"title":"Setting up domains","href":"/enterspeed/getting-started/domains"},{"title":"Configuring environments","href":"/enterspeed/getting-started/environments"},{"title":"Using environment clients","href":"/enterspeed/getting-started/environment-clients"},{"title":"Adding data sources","href":"/enterspeed/getting-started/data-sources"}]},{"title":"1 - Ingesting data","href":"/enterspeed/ingest"},{"group":"2 - Transforming data","pages":[{"title":"2 - Transforming data","sidebarTitle":"Intro","href":"/enterspeed/transform/intro"},{"title":"Designing a schema","href":"/enterspeed/transform/designing-a-schema"},{"title":"Schema versioning","sidebarTitle":"Versioning","href":"/enterspeed/transform/schema-versioning"}]},{"title":"3 - Delivering data","href":"/enterspeed/deliver"}]},{"group":"Key concepts","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/enterspeed/key-concepts/overview"},{"title":"Schemas","sidebarTitle":"Schemas","href":"/enterspeed/key-concepts/schemas"},{"title":"Partial schemas","sidebarTitle":"Partial schemas","href":"/enterspeed/key-concepts/partial-schemas"},{"title":"Index schemas","sidebarTitle":"Index schemas","href":"/enterspeed/key-concepts/index-schemas"},{"title":"Referencing schemas","sidebarTitle":"Referencing schemas","href":"/enterspeed/key-concepts/referencing-schemas"},{"title":"Source Entities","sidebarTitle":"Source Entities","href":"/enterspeed/key-concepts/source-entities"},{"title":"Source Groups","sidebarTitle":"Source Groups","href":"/enterspeed/key-concepts/source-groups"},{"title":"Routing","sidebarTitle":"Routing","href":"/enterspeed/key-concepts/routing"},{"title":"Views","sidebarTitle":"Views","href":"/enterspeed/key-concepts/views"},{"title":"Redirects","sidebarTitle":"Redirects","href":"/enterspeed/key-concepts/redirects"},{"title":"Domains \u0026 hostnames","sidebarTitle":"Domains \u0026 hostnames","href":"/enterspeed/key-concepts/domains-hostnames"},{"title":"Reprocessing","sidebarTitle":"Reprocessing","href":"/enterspeed/key-concepts/reprocessing"}]},{"title":"User Login","href":"/enterspeed/user-login"},{"title":"Service Limits","href":"/enterspeed/service-limits"}]},{"group":"Schema reference","icon":"book-open-cover","pages":[{"group":"schemas","pages":[{"group":"JavaScript schemas","pages":[{"title":"Intro","href":"/enterspeed/reference/js/intro"},{"title":"JSDoc","href":"/enterspeed/reference/js/jsdoc"},{"group":"Full schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/full-schema/intro"},{"title":"Triggers","href":"/enterspeed/reference/js/full-schema/triggers"},{"title":"Properties","href":"/enterspeed/reference/js/full-schema/properties"},{"title":"Routes","href":"/enterspeed/reference/js/full-schema/routes"},{"title":"Actions","href":"/enterspeed/reference/js/full-schema/actions"}]},{"group":"Index schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/index-schema/intro"},{"title":"Triggers","href":"/enterspeed/reference/js/index-schema/triggers"},{"title":"Properties","href":"/enterspeed/reference/js/index-schema/properties"},{"title":"Index","href":"/enterspeed/reference/js/index-schema/index-method"}]},{"group":"Partial schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/partial-schema/intro"},{"title":"Properties","href":"/enterspeed/reference/js/partial-schema/properties"}]}]},{"group":"JSON schemas","tag":"Deprecated","pages":[{"title":"Property types","href":"/enterspeed/reference/json/property-types"},{"title":"Expression","href":"/enterspeed/reference/json/expression"},{"title":"Path selector","href":"/enterspeed/reference/json/path-selector"}]}]},{"title":"Filter Expressions","href":"/enterspeed/reference/filter-expressions"},{"group":"Schema example library","pages":[{"title":"Overview","href":"/enterspeed/reference/schema-example-library/overview"}]},{"title":"Organising your schemas","href":"/enterspeed/reference/folders"}]},{"group":"API","icon":"code","pages":[{"title":"Enterspeed API","sidebarTitle":"Overview","href":"/enterspeed/api/overview"},{"group":"Delivery","pages":[{"title":"Get content by URL, IDs, or handles","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /v2","href":"/api-reference/delivery/get-content-by-url-ids-or-handles"},{"title":"Get content by IDs, or handles","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v2","href":"/api-reference/delivery/get-content-by-ids-or-handles"}]},{"group":"Ingest","pages":[{"title":"Save entity","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /ingest/v2/{originId}","href":"/api-reference/ingest/save-entity"},{"title":"Delete entity","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml delete /ingest/v2/{originId}","href":"/api-reference/ingest/delete-entity"},{"title":"Save entities","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /ingest/v2","href":"/api-reference/ingest/save-entities"},{"title":"Delete entities","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml delete /ingest/v2","href":"/api-reference/ingest/delete-entities"}]},{"group":"Routes","pages":[{"title":"Get Routes","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /routes/v1","href":"/api-reference/routes/get-routes"},{"title":"Get Routes v2","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /routes/v2","href":"/api-reference/routes/get-routes-v2"}]},{"group":"Query","pages":[{"title":"Query items","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/{indexAlias}","href":"/api-reference/query/query-items"},{"title":"Multi query items","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1","href":"/api-reference/query/multi-query-items"},{"title":"Query items from Auto Indexing source groups","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/sourceGroupAlias/{sourceGroupAlias}/type/{sourceEntityType}","href":"/api-reference/query/query-items-from-auto-indexing-source-groups"},{"title":"Multi query items from Auto Indexing source groups","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/source","href":"/api-reference/query/multi-query-items-from-auto-indexing-source-groups"}]}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Enterspeed Integrations","sidebarTitle":"Overview","href":"/enterspeed/integrations/overview"},{"group":"Source integrations","pages":[{"title":"Commercetools","href":"/enterspeed/integrations/commercetools"},{"title":"n8n","href":"/enterspeed/integrations/n8n"},{"group":"Umbraco","pages":[{"title":"Getting started","href":"/enterspeed/integrations/umbraco/getting-started"},{"title":"Getting data","href":"/enterspeed/integrations/umbraco/getting-data"},{"title":"Services","href":"/enterspeed/integrations/umbraco/services"},{"title":"Service registration","href":"/enterspeed/integrations/umbraco/service-registration"},{"title":"Value Converter","href":"/enterspeed/integrations/umbraco/enterspeed-value-converter"},{"title":"UmbracoContentEntity","href":"/enterspeed/integrations/umbraco/umbraco-content-entity"},{"title":"Additional properties","href":"/enterspeed/integrations/umbraco/additional-properties"},{"title":"Background tasks","href":"/enterspeed/integrations/umbraco/background-tasks"},{"title":"Content dashboard","href":"/enterspeed/integrations/umbraco/content-dashboard"},{"title":"Culture and hostnames","href":"/enterspeed/integrations/umbraco/culture-and-hostnames"},{"title":"Database","href":"/enterspeed/integrations/umbraco/database"},{"title":"Guards","href":"/enterspeed/integrations/umbraco/enterspeed-guards"},{"title":"Enterspeed Property Service","href":"/enterspeed/integrations/umbraco/enterspeed-propertys-service"},{"title":"Grid Editor Value Converters","href":"/enterspeed/integrations/umbraco/grid-editor-value-converters"},{"title":"Jobs","href":"/enterspeed/integrations/umbraco/jobs"},{"title":"Publishing","href":"/enterspeed/integrations/umbraco/publishing"},{"title":"Redirects","href":"/enterspeed/integrations/umbraco/redirects"},{"title":"Troubleshooting","href":"/enterspeed/integrations/umbraco/troubleshooting"},{"title":"Umbraco Cloud","href":"/enterspeed/integrations/umbraco/umbraco-cloud"},{"title":"Tagging in Umbraco","href":"/enterspeed/integrations/umbraco/umbraco-tagging"},{"title":"Updating package","href":"/enterspeed/integrations/umbraco/updating-package"}]},{"title":"Umbraco \u0026 Cloudinary","href":"/enterspeed/integrations/umbraco-cloudinary"},{"group":"Sitecore","pages":[{"title":"Getting started","href":"/enterspeed/integrations/sitecore/getting-started"},{"title":"Getting data","href":"/enterspeed/integrations/sitecore/getting-data"},{"title":"Services","href":"/enterspeed/integrations/sitecore/services"},{"title":"Processed entities","href":"/enterspeed/integrations/sitecore/processed-entities"},{"title":"SitecoreContentEntity","href":"/enterspeed/integrations/sitecore/sitecorecontententity"},{"title":"Field Value Converter","href":"/enterspeed/integrations/sitecore/enterspeed-value-converter"}]}]},{"group":"Destination integrations","pages":[{"group":"Configuration","pages":[{"title":"Skip unchanged views and resend","sidebarTitle":"Skip unchanged views","href":"/enterspeed/integrations/skip-unchanged-views"}]},{"title":"Webhooks","href":"/enterspeed/integrations/webhooks"},{"title":"Algolia","href":"/enterspeed/integrations/algolia"},{"title":"Clerk.io","href":"/enterspeed/integrations/clerk"},{"title":"Elastic App Search","href":"/enterspeed/integrations/elastic-app-search"},{"title":"Elasticsearch","href":"/enterspeed/integrations/elasticsearch"},{"title":"Enterspeed Ingest","href":"/enterspeed/integrations/ingest"},{"title":"Relewise","href":"/enterspeed/integrations/relewise"},{"title":"Azure Service Bus","href":"/enterspeed/integrations/servicebus"},{"title":"Shopify","href":"/enterspeed/integrations/shopify"},{"title":"Speedtrain","href":"/enterspeed/integrations/speedtrain"},{"title":"Typesense","href":"/enterspeed/integrations/typesense"}]}]},{"group":"Tutorials","icon":"graduation-cap","pages":[{"title":"Tutorials","sidebarTitle":"Overview","description":null,"href":"/enterspeed/tutorials/overview"},{"group":"Creating a simple site","pages":[{"title":"Intro","href":"/enterspeed/tutorials/creating-a-simple-site/intro"},{"title":"1. Sources \u0026 Environments","description":null,"href":"/enterspeed/tutorials/creating-a-simple-site/1-sources-environments"},{"title":"2. Ingesting data","href":"/enterspeed/tutorials/creating-a-simple-site/2-ingesting-data"},{"title":"3. Designing your APIs","href":"/enterspeed/tutorials/creating-a-simple-site/3-designing-your-apis"},{"title":"4. Fetching data","href":"/enterspeed/tutorials/creating-a-simple-site/4-fetching-data"}]},{"group":"Multilevel navigation","pages":[{"title":"1. Getting started","href":"/enterspeed/tutorials/multilevel-navigation/1-getting-started"},{"title":"2. Create schemas","href":"/enterspeed/tutorials/multilevel-navigation/2-create-schemas"},{"title":"3. Going further","href":"/enterspeed/tutorials/multilevel-navigation/3-going-further"},{"title":"4. Wrap up","href":"/enterspeed/tutorials/multilevel-navigation/4-wrap-up"}]},{"group":"Umbraco and Next.js","pages":[{"title":"Intro","href":"/enterspeed/tutorials/umbraco-nextjs/intro"},{"title":"1. Sources \u0026 Environments","href":"/enterspeed/tutorials/umbraco-nextjs/1-sources-environments"},{"title":"2. Configuring Umbraco","href":"/enterspeed/tutorials/umbraco-nextjs/2-configuring-umbraco"},{"title":"3. Designing your APIs","href":"/enterspeed/tutorials/umbraco-nextjs/3-designing-your-apis"},{"title":"4. Fetching data in Next.js","href":"/enterspeed/tutorials/umbraco-nextjs/4-fetching-data-in-nextjs"}]},{"group":"Product list (CMS + PIM)","pages":[{"title":"1. Getting started","href":"/enterspeed/tutorials/product-list-cms-pim/1-getting-started"},{"title":"2. Data sources and environment","href":"/enterspeed/tutorials/product-list-cms-pim/2-data-sources-environment"},{"title":"3. Ingest data","href":"/enterspeed/tutorials/product-list-cms-pim/3-ingest-data"},{"title":"4. Create schemas","href":"/enterspeed/tutorials/product-list-cms-pim/4-create-schemas"},{"title":"5. Wrap up","href":"/enterspeed/tutorials/product-list-cms-pim/5-wrap-up"}]}]},{"group":"Best practices","icon":"compass","pages":[{"title":"Overview","href":"/enterspeed/best-practices/overview"},{"title":"Ingest integrations","href":"/enterspeed/best-practices/ingest-integrations"},{"title":"Schemas","href":"/enterspeed/best-practices/schemas"},{"title":"Indexes","href":"/enterspeed/best-practices/indexes"}]},{"group":"CLI","icon":"terminal","pages":[{"title":"Overview","href":"/enterspeed/tooling/cli/overview"},{"title":"Getting started","href":"/enterspeed/tooling/cli/getting-started"},{"title":"Keep schemas in version control","href":"/enterspeed/tooling/cli/keep-schemas-in-version-control"},{"title":"Continuous Deployment","href":"/enterspeed/tooling/cli/continuous-deployment"},{"title":"Developer setup","href":"/enterspeed/tooling/cli/developer-setup"}]},{"group":"MCP server","icon":"plug","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/overview"},{"title":"Documentation MCP","href":"/enterspeed/mcp-server/documentation-mcp/overview"},{"group":"Query MCP","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/query-mcp/overview"},{"title":"Connecting an agent","href":"/enterspeed/mcp-server/query-mcp/connecting-an-agent"},{"title":"Connecting a client","href":"/enterspeed/mcp-server/query-mcp/connecting-a-client"}]},{"group":"Management MCP","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/management-mcp/overview"},{"title":"Tools","href":"/enterspeed/mcp-server/management-mcp/tools"}]}]}]},{"product":"Speedtrain","icon":"microchip-ai","description":"Governed AI content enrichment","pages":[{"title":"Speedtrain","href":"/speedtrain/intro"}]}]},"basePath":"","title":"Intro - Enterspeed Docs","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":[],"chunks":[]}