Publish and host web applications from your sandbox
Your assistant can build and publish web applications directly from your sandbox. Published apps get a public URL accessible through your Coral dashboard — no separate hosting needed.
Your sandbox has limited resources, so lightweight frameworks work best:
Backend: Express.js (~30 MB RAM)
Database: sql.js (pure WebAssembly SQLite — zero native dependencies)
Frontend: Vanilla HTML/CSS/JS or Alpine.js
Avoid heavy frameworks like Next.js or React dev servers — they consume too much memory for the sandbox environment. Use vanilla HTML served by Express instead.
Published apps are served through Coral’s authenticated proxy at:
https://app.coral.inc/api/apps/{app-id}/
All requests are authenticated with your Coral session cookie. The proxy forwards requests to your sandbox’s local server. JavaScript in the browser can only make requests to relative URLs (enforced by Content Security Policy).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Coral","colors":{"primary":"#D45B5B","light":"#DE7676","dark":"#B94A4A"},"logo":{"light":"https://mintcdn.com/coral-4bdba8dc/EPpCLAfgzyO7tTm0/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=EPpCLAfgzyO7tTm0\u0026q=85\u0026s=f649b9b7501264e9b316400a31e4d37c","dark":"https://mintcdn.com/coral-4bdba8dc/EPpCLAfgzyO7tTm0/assets/logo-dark.svg?fit=max\u0026auto=format\u0026n=EPpCLAfgzyO7tTm0\u0026q=85\u0026s=cec43338078da0ea4caf3f67b10c42d7","href":"https://coral.inc"},"favicon":"https://mintcdn.com/coral-4bdba8dc/EPpCLAfgzyO7tTm0/assets/favicon.svg?fit=max\u0026auto=format\u0026n=EPpCLAfgzyO7tTm0\u0026q=85\u0026s=a8fd8e7ee66a0d1f833bc8f981d41396","navbar":{"primary":{"type":"button","label":"Open Coral","href":"https://app.coral.inc"}},"footer":{"socials":{"github":"https://github.com/Keplogic/coral"}},"fonts":{"heading":{"family":"Fraunces","weight":700},"body":{"family":"Outfit","weight":400}},"integrations":{"posthog":{"apiKey":"phc_SBMeRO9lH8W0RpaYHlyjDZlzzR5jcP0rZDwjlOdJdle"}},"contextual":{"options":["copy","view","claude","chatgpt","cursor","vscode","mcp","add-mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.coral.inc"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"coral-4bdba8dc","hasAudioNarration":false,"actualSubdomain":"coral-4bdba8dc","customDomains":["docs.coral.inc"],"gitSource":{"type":"github","owner":"keplogic","repo":"coral","deployBranch":"main","contentDirectory":"docs-public","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a72de376a442ded37fe2853","collectionId":"855c6e61-75a9-48fe-8bdb-9409fdc9554c","schemaVersion":"v2","latestBuiltDeploymentHistoryId":"6a72de376a442ded37fe2853"},"entitlements":{},"buildId":"6a72de376a442ded37fe2853:success","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"Features","count":19},{"language":"default","tag":"Security","count":13},{"language":"default","tag":"Terminate Your Instance","count":10},{"language":"default","tag":"Manage","count":7},{"language":"default","tag":"Connect","count":6},{"language":"default","tag":"Chat \u0026 AI","count":5},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"Overview","count":3},{"language":"default","tag":"Setup","count":2},{"language":"default","tag":"Developers","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"isAtlas":false,"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"features/app-hosting","slug":"/features/app-hosting","pageMetadata":{"title":"App Hosting","description":"Publish and host web applications from your sandbox","href":"/features/app-hosting","hidden":false},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Publish and host web applications from your sandbox\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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={code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Your assistant can build and publish web applications directly from your sandbox. Published apps get a public URL accessible through your Coral dashboard — no separate hosting needed.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Ask your assistant to build a web app (e.g., “Build me a CRM to track my leads”).`}),`\n`,_jsxs(_components.li,{children:[`The assistant writes the code, starts a server, and calls the `,_jsx(_components.code,{children:`publish_app`}),` tool.`]}),`\n`,_jsx(_components.li,{children:`Coral registers the app and provides a public URL.`}),`\n`,_jsx(_components.li,{children:`Access the app through the link — authenticated with your Coral session.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-can-build`,children:`What you can build`}),`\n`,_jsx(_components.p,{children:`Apps run inside your sandbox with full access to its filesystem. Common examples:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`CRM / contact trackers`}),` — Manage leads, contacts, and sales pipelines`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dashboards`}),` — Visualize data from files or APIs`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Project management tools`}),` — Kanban boards, task trackers`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Internal tools`}),` — Custom calculators, data entry forms, admin panels`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Personal utilities`}),` — Habit trackers, bookmark managers, note-taking apps`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`managing-published-apps`,children:`Managing published apps`}),`\n`,_jsxs(_components.p,{children:[`Published apps are managed from the `,_jsx(_components.strong,{children:`Settings`}),` page under `,_jsx(_components.strong,{children:`Published Apps`}),`. Each app card shows its name, port, status (running/stopped), and URL.`]}),`\n`,_jsx(Heading,{level:`3`,id:`custom-subdomains`,children:`Custom subdomains`}),`\n`,_jsx(_components.p,{children:`Each published app can be assigned a custom subdomain, giving it a clean URL like:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://my-crm.coral.inc`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Set the subdomain from the app card in Settings. Subdomain availability is first-come, first-served.`}),`\n`,_jsx(Heading,{level:`3`,id:`visibility-settings`,children:`Visibility settings`}),`\n`,_jsx(_components.p,{children:`Control who can access your published app:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Public`}),` — Anyone with the link can access the app (still requires Coral authentication).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Invite only`}),` — Only users you explicitly grant access can open the app.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Toggle visibility from the app card in Settings.`}),`\n`,_jsx(Heading,{level:`3`,id:`access-control`,children:`Access control`}),`\n`,_jsx(_components.p,{children:`For invite-only apps, manage access by email:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open the app card in `,_jsx(_components.strong,{children:`Settings`}),` > `,_jsx(_components.strong,{children:`Published Apps`}),`.`]}),`\n`,_jsx(_components.li,{children:`Add email addresses of users you want to grant access.`}),`\n`,_jsx(_components.li,{children:`Granted users can access the app when signed in to Coral.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Remove access at any time by clicking the remove button next to an email.`}),`\n`,_jsx(Heading,{level:`2`,id:`technical-details`,children:`Technical details`}),`\n`,_jsx(Heading,{level:`3`,id:`recommended-stack`,children:`Recommended stack`}),`\n`,_jsx(_components.p,{children:`Your sandbox has limited resources, so lightweight frameworks work best:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Backend`}),`: Express.js (~30 MB RAM)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Database`}),`: sql.js (pure WebAssembly SQLite — zero native dependencies)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Frontend`}),`: Vanilla HTML/CSS/JS or Alpine.js`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Avoid heavy frameworks like Next.js or React dev servers — they consume too much memory for the sandbox environment. Use vanilla HTML served by Express instead.`})}),`\n`,_jsx(Heading,{level:`3`,id:`constraints`,children:`Constraints`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Maximum 5 apps`}),` per sandbox`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ports 3000–9999`}),` available for app servers (ports 18789–18799 are reserved)`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Bind to `,_jsx(_components.code,{children:`127.0.0.1`})]}),` only (not `,_jsx(_components.code,{children:`0.0.0.0`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use relative paths`}),` in HTML (`,_jsx(_components.code,{children:`./api/data`}),`, not `,_jsx(_components.code,{children:`/api/data`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data persistence`}),`: Store data in `,_jsx(_components.code,{children:`/data/apps/{slug}/`}),` — the workspace directory doesn’t survive restarts`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`how-the-proxy-works`,children:`How the proxy works`}),`\n`,_jsx(_components.p,{children:`Published apps are served through Coral’s authenticated proxy at:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://app.coral.inc/api/apps/{app-id}/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`All requests are authenticated with your Coral session cookie. The proxy forwards requests to your sandbox’s local server. JavaScript in the browser can only make requests to relative URLs (enforced by Content Security Policy).`})]})}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":"App Hosting","description":"Publish and host web applications from your sandbox","href":"/features/app-hosting","hidden":false}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"What you can build","slug":"what-you-can-build","depth":2,"children":[]},{"title":"Managing published apps","slug":"managing-published-apps","depth":2,"children":[{"title":"Custom subdomains","slug":"custom-subdomains","depth":3,"children":[]},{"title":"Visibility settings","slug":"visibility-settings","depth":3,"children":[]},{"title":"Access control","slug":"access-control","depth":3,"children":[]}]},{"title":"Technical details","slug":"technical-details","depth":2,"children":[{"title":"Recommended stack","slug":"recommended-stack","depth":3,"children":[]},{"title":"Constraints","slug":"constraints","depth":3,"children":[]},{"title":"How the proxy works","slug":"how-the-proxy-works","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"coral-4bdba8dc","siteName":"Coral","title":"App Hosting - Coral","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-06T19:33:19.064Z","originalFileLocation":"features/app-hosting.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=\"description\" content=\"Publish and host web applications from your sandbox\">\u003cmeta data-mint-head name=\"application-name\" content=\"Coral\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"App Hosting - Coral\">\u003cmeta data-mint-head property=\"og:description\" content=\"Publish and host web applications from your sandbox\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Coral\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.coral.inc/features/app-hosting\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://coral-4bdba8dc.mintlify.app/_mintlify/api/og/v2?division=Manage\u0026amp;title=App+Hosting\u0026amp;description=Publish+and+host+web+applications+from+your+sandbox\u0026amp;theme=b00bf2058a54d77c23a50735\u0026amp;signature=59b1db693522d235e2e5a7ff91af7253923776ea28dd18f0310aacacd68546e1\">\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=\"App Hosting - Coral\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Publish and host web applications from your sandbox\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://coral-4bdba8dc.mintlify.app/_mintlify/api/og/v2?division=Manage\u0026amp;title=App+Hosting\u0026amp;description=Publish+and+host+web+applications+from+your+sandbox\u0026amp;theme=b00bf2058a54d77c23a50735\u0026amp;signature=59b1db693522d235e2e5a7ff91af7253923776ea28dd18f0310aacacd68546e1\">\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/coral-4bdba8dc/UPH7o-ftRMXaCIYL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Coral\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#D45B5B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.coral.inc/features/app-hosting\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/app-hosting.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.coral.inc/#organization\",\"name\":\"Coral\",\"url\":\"https://docs.coral.inc\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/coral-4bdba8dc/EPpCLAfgzyO7tTm0/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=EPpCLAfgzyO7tTm0\u0026q=85\u0026s=f649b9b7501264e9b316400a31e4d37c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.coral.inc#website\",\"name\":\"Coral\",\"url\":\"https://docs.coral.inc\",\"publisher\":{\"@id\":\"https://docs.coral.inc/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.coral.inc/features/app-hosting#webpage\",\"url\":\"https://docs.coral.inc/features/app-hosting\",\"name\":\"App Hosting\",\"description\":\"Publish and host web applications from your sandbox\",\"dateModified\":\"2026-03-06T19:33:19.064Z\",\"isPartOf\":{\"@id\":\"https://docs.coral.inc#website\"},\"breadcrumb\":{\"@id\":\"https://docs.coral.inc/features/app-hosting#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.coral.inc/features/app-hosting#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Manage\",\"item\":\"https://docs.coral.inc/features/skills\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"App Hosting\",\"item\":\"https://docs.coral.inc/features/app-hosting\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.coral.inc/features/app-hosting#article\",\"headline\":\"App Hosting\",\"name\":\"App Hosting\",\"description\":\"Publish and host web applications from your sandbox\",\"url\":\"https://docs.coral.inc/features/app-hosting\",\"mainEntityOfPage\":{\"@id\":\"https://docs.coral.inc/features/app-hosting#webpage\"},\"dateModified\":\"2026-03-06T19:33:19.064Z\",\"publisher\":{\"@id\":\"https://docs.coral.inc/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.coral.inc#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Coral\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Coral","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.coral.inc"}]},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":""}]},{"tab":"Security","pages":[{"title":"Security","href":"/security/overview"}]},{"tab":"Features","groups":[{"group":"Chat \u0026 AI","pages":[{"title":"Chat","href":"/features/chat"},{"title":"Models","href":"/features/models"},{"title":"Bring Your Own Key","href":"/features/bring-your-own-key"},{"title":"Image Generation","href":"/features/image-generation"},{"title":"Use Cases","href":"/features/use-cases"}]},{"group":"Manage","pages":[{"title":"Skills","description":"Extend your assistant with domain-specific capabilities","href":"/features/skills"},{"title":"App Hosting","href":"/features/app-hosting"},{"title":"Environment Variables","description":"Configure key-value environment variables for your assistant and skills","href":"/features/environment-variables"},{"title":"Control UI","href":"/features/control-ui"},{"title":"Web Terminal","href":"/features/terminal"},{"title":"Remote Desktop","href":"/features/remote-desktop"},{"title":"Backups \u0026 Restore","href":"/features/backups"}]},{"group":"Connect","pages":[{"title":"Integrations","href":"/features/integrations"},{"title":"Discord","href":"/features/integrations/discord"},{"title":"Telegram","href":"/features/integrations/telegram"},{"title":"WhatsApp","href":"/features/integrations/whatsapp"},{"title":"Slack","href":"/features/integrations/slack"},{"title":"App Integrations","href":"/features/integrations/composio"}]},{"group":"Developers","pages":[{"title":"Agentic Access","href":"/developers/agentic-access"}]}]}]},"title":"App Hosting - Coral","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":[],"chunks":[]}