TL;DR: In the Mac IDE, click the Cloud button in the toolbar. Give the app a name, set a build command and output directory (or leave both blank for a plain static site), and hit Deploy. LingCode builds your project, uploads the static output, and gives you a live https://lingcode.dev/apps/<id>/ URL with HTTPS — no host account, no deploy token, no DNS. Re-deploying updates the same URL; attach a custom domain when you're ready.
Most people who can build a website can't, off the top of their head, ship one — the gap isn't the code, it's the pile of host accounts, build settings, tokens, and DNS that sit between "it runs on my machine" and "my friends can open it." LingCode Cloud is the shortcut: one button in the IDE turns the project you're looking at into a public URL. This walks through what that button actually does, when to use it, and where its edges are.
It helps to be precise about what "LingCode Cloud" hosting is, because the name covers two independent things. This tutorial is about Cloud apps — hosting the front end: the built HTML, CSS, and JavaScript of a web app, served from LingCode's edge at a real URL. That is separate from a managed backend (a per-project Postgres with auth, storage, and realtime), which is its own feature with its own tutorial. You can use either alone or both together — deploy a static front end here, and (optionally) point it at a managed backend for data.
The reason it's one click is that the IDE already has everything it needs: it knows your project folder, it can run your build, and you're already signed into your LingCode account. So instead of asking you to create a Netlify/Vercel/AWS account and paste a token, it builds locally, packages the output, and uploads it straight to LingCode-operated hosting. No third-party credential ever enters the picture.
LingCode Cloud apps serve pre-built static files. Whatever your project compiles down to — a single index.html, or a Vite/React/Svelte/Vue build that emits an HTML file plus JS/CSS chunks and assets — those files are what get hosted. There is no server process running your code on the other side; requests are answered by serving files, with a single-page-app fallback (unknown paths serve index.html so client-side routing works). That's the right model for landing pages, docs, dashboards, games, and SPAs. It is not the model for an Express/Next-SSR server that needs to run Node per request — for that you either deploy the server elsewhere or give the static front end a managed backend for its data.
Cloud app = your front end, hosted at lingcode.dev/apps/<id>/. Managed backend = a private database + auth + storage your app talks to. Deploying an app does not create a backend, and connecting a backend does not deploy an app — they're separate buttons for separate jobs. Most apps want the front end first; add a backend when you need to remember something.
npm install && npm run build. Leave it blank if the project is already plain static files (an index.html you can open directly).dist for Vite, build for Create React App, etc.). For a blank build command, this is just the folder that contains your index.html (often the project root)..xcodeproj) is flagged as incompatible ("LingCode Cloud hosts static web apps"), a Node server/SSR project gets a heads-up that only its static build can be hosted, and a missing index.html in the output is a blocking error. The Deploy button stays disabled until the name is filled and no blocking issue remains.https://lingcode.dev/apps/<id>/ — with Copy and Open.Knowing the pipeline makes failures obvious instead of mysterious:
index.html at its root, then tars + gzips the contents of that directory.The result is a versioned, public app. Because hosting is file-based, what you see locally after a successful build is what goes live.
Re-deploy by clicking Cloud again on the same project and hitting Deploy — it updates the same app (same id, same URL), bumps the version, and keeps any attached domains. There's nothing to "promote"; the live URL always reflects your latest deploy.
Custom domain: right in the deploy popover there's a Custom domain section. Attach app.yourdomain.com (and optionally its www counterpart), point one DNS record at LingCode, and HTTPS is issued automatically. The full walkthrough — apex vs www, the exact records, and the Cloudflare proxy gotcha — is in Connect a custom domain to your Cloud app.
Data: a hosted front end that needs accounts or storage can be wired to a managed backend — the two compose cleanly.
node_modules in the output dir.express or next start. You can still deploy — but only the static build output is hosted, not the server. For a Next.js app, that means a static export; for an Express API, the server belongs elsewhere (or becomes a managed backend). Deploying the server's source folder will produce a site with no index.html, which the preflight will block.