# Hosting and SCORM Wrap

> Host whole eLearning packages and static websites on devlin.ai, or wrap a single HTML course as a SCORM package.

- Plans: All plans
- Canonical: https://docs.devlin.ai/publish-and-embed/hosting-and-scorm-wrap

Two course-delivery tools that are separate from simulations. "Hosting" here means hosting whole eLearning packages and static websites. A simulation reaches learners through its embed link, embed snippet, or SCORM/xAPI export instead.

## Hosting
Upload an eLearning package (Articulate Storyline or Rise output, or any static HTML course) or a static website (the build output of a front-end project), and devlin.ai serves it on a public link, ready to share or link from an LMS. An upload can be a zip file, a single HTML file, or a folder.

- **Where**: **Publish → Hosting**. Each upload is a "project" with a live URL on its own devlin.host subdomain; new versions can be uploaded to the same URL. The address can be renamed, and the old address keeps redirecting to the new one. After a rename there is a waiting period before the address can change again; a rename attempted too soon is refused with the next available date.
- **Display: Framed or Direct.** Courses (Storyline, Rise, SCORM packages) are served Framed, which is what lets them pass scores and completion through to an LMS. Websites and single-page apps are served Direct, so page routing, folder links such as /docs/, and assets referenced from the site root work the way they do on other static hosts. devlin.ai picks the mode automatically when a project is first uploaded, and it can be changed under Display on the project's page; the link stays the same. Uploading a new version never changes a project's mode.
- **What can be uploaded**: static files only (HTML, CSS, JavaScript, images, fonts, audio, video, 3D models, web manifests, and similar). devlin.ai does not run a build, so upload the built folder (often dist, build, or out), not source code. Common junk files (.DS_Store, __MACOSX, Thumbs.db, .git, README and LICENSE files, and similar) are skipped automatically and named after upload, and a single wrapping folder is unwrapped. A file type that is not supported stops the upload with a message that names the file, instead of publishing a half-working site.
- **Custom domains**: workspaces on these plans can serve projects from their own domain: Starter, Core, Team, Enterprise. Add the domain, then create two DNS records at the domain's DNS provider: a TXT record at `_devlin-verify.<your domain>` that proves ownership, and a connection record (a CNAME for a subdomain such as learn.yourcompany.com, or an A record for a root domain such as yourcompany.com). devlin.ai shows the exact values and checks for the records automatically. DNS changes can take a few minutes or longer to show up. Once the domain is verified, choose which project it serves and at what path; one project can be the domain's home page.
- **Who can manage domains**: only workspace owners and admins can add, verify, or remove a custom domain. Members see the domain list and can put a project on a domain that is already verified. In a personal workspace the owner can do everything.
- **Quotas by plan**: total storage, monthly bandwidth (resets each calendar month, UTC), a maximum project count, a maximum single-upload size, and a maximum number of custom domains. Every workspace has hosting, including on the Free plan, and the allowances grow with the plan.
- **LMS tracking**: a Framed project can be downloaded as a SCORM 1.2 or SCORM 2004 package that reports completion and scores back to an LMS. The package points at the project's link, so new versions uploaded later reach learners without re-importing it. LMS packages are available on these plans: Core, Team, Enterprise. A Direct project must be switched to Framed before a package can be downloaded.
- **From an AI tool**: an AI tool connected through the devlin.ai MCP server can publish a page or site, rename its address, and walk an owner or admin through connecting a custom domain.
- If an upload is rejected, the usual causes are an unsupported file type, the single-upload size limit, too many files in one package, the storage quota, the monthly bandwidth quota, the project count limit, or a package without a recognizable entry file (e.g. missing story.html/index.html).

## SCORM Wrap
A free utility (**Publish → SCORM Wrap**) that wraps a single HTML file as a downloadable SCORM 1.2 or SCORM 2004 package so virtually any LMS can launch and track it.

- Wrapping runs entirely in the browser: the file is read and zipped on the designer's own device and never uploaded, so there is nothing server-side to meter or report about it.
- Completion can be marked when the course reports a score, as soon as it opens, or after a set time on the page. For score-based completion, a score snippet added to the course lets it report pass/fail against a passing score set when wrapping. A completion from the as-soon-as-it-opens or timed setting never replaces a pass or a fail the LMS already holds.
- Use SCORM Wrap when the designer already has an HTML course and just needs LMS tracking; use Hosting when they need the course served on a link.
