GoDaddy Node.js Hosting
Help users build or fix Node.js apps for
GoDaddy Node.js Hosting (upload → install →
→
). Package manager:
npm,
pnpm, or
yarn (lockfile determines platform choice).
Rules: contract.md. Recipes: examples.md. Errors: troubleshooting.md. Validator: scripts/validate-paas.mjs.
When to use which path
Audience routing
Non-technical user (no jargon, “I built this in Lovable”, “how do I upload”):
- Output the pre-upload checklist first in plain language.
- Follow Adapting an existing app (existing zip or export).
- Prefer the static SPA + Express or static only recipe when there is no server.
- One small change at a time; explain what to zip and upload.
- Run the validator before saying the app is ready.
Technical user - existing app: follow
Adapting an existing app; use the matching framework recipe for
/
only; do not re-explaining basics.
Technical user - new app: follow
New app workflow; use the matching framework recipe from
Framework detection.
Deploy contract (summary)
- Root with , , (file exists), , and
- may be when nothing compiles; frameworks need real build commands (examples.md)
- Listen on ; use when the framework needs a host
- Runtime deps in ; do not upload
- Secrets via ; no in zip; zip under 100 MB
- One app per upload; lockfile when possible
- Outbound HTTP/HTTPS only; platform MySQL via env + if using a database (contract.md)
Adapting an existing app
Use this path when the user already has a project (local repo, zip export, or app that failed on Node.js Hosting). Goal: hosting compatibility only — not new features, refactors, or framework changes.
Principles
- Do not add or remove product features; do not refactor unrelated code.
- Smallest diff: prefer (, , , , ), listen/bind lines, and a static server file when missing — not rewriting app logic.
- Keep the detected framework; align , , and with examples.md for that stack only.
Adaptation workflow
Audit against
contract.md (nine platform requirements:
fields,
/
, PORT, deps, env vars, Vite, zip size, network, MySQL). For each item: check compliance, apply the smallest fix, preserve all existing behaviour.
Copy and track progress:
- [ ] Run validator on project root (baseline)
- [ ] Map each error/warning to contract rule (see table below)
- [ ] Apply minimal fix per ID; use framework recipe for script names only
- [ ] Re-run validator until exit 0 (or document warnings if not --strict)
- [ ] install → build → start locally (match lockfile package manager)
- [ ] Pre-upload checklist complete
Validator (required before done):
bash
node scripts/validate-paas.mjs /path/to/project
Run from this skill directory (e.g. after
or symlink to
~/.cursor/skills/godaddy-nodejs-hosting
). From a clone of
nodejs-hosting-agent-skill:
npm run validate -- /path/to/project
.
Symptom detail: troubleshooting.md.
| ID | Typical minimal fix |
|---|
| E001 | Add root |
| E002 | Add or fix per recipe |
| E003 | Fix entry path or add missing file |
| E004 | Use ; remove hardcoded |
| E005 | Add ( or framework recipe) |
| E006 | Move runtime packages to |
| E007 | Add and to |
| E008 | Add pointing at an existing entry file |
| W001 | Remove from upload; use hosting UI for env vars |
| W002 | Optional: add |
| W004 | Remove from upload zip |
Special cases
- Monorepo (C1): extract a single app folder with its own root before adapting; do not restructure packages in place unless the user asks.
- Frontend-only / no server: vite-react-vue-spa and AI export quick fixes.
- Migrating from another host: same steps; focus on , /, , and lockfile.
For Replit, Lovable, and Bolt patterns, see
AI export quick fixes after applying this workflow.
Adaptation is complete under the same
done criteria as a new app (validator
, checklist, zip the project root).
New app workflow
Copy and track progress:
- [ ] Detect framework (package.json)
- [ ] Apply recipe from examples.md
- [ ] install && run build (if exists) && run start (npm, pnpm, or yarn — match user's lockfile)
- [ ] node scripts/validate-paas.mjs <project-dir>
- [ ] Pre-upload checklist complete
Run the validator as in
Adapting an existing app.
Framework detection
| Signal in | Recipe |
|---|
| in dependencies | examples.md#nextjs |
| in dependencies | examples.md#nuxtjs |
| or | examples.md#remix |
| examples.md#nestjs |
| examples.md#fastify |
| (SPA) | examples.md#vite-react-vue-spa |
| examples.md#create-react-app |
| , , or plain server | examples.md#express-koa-hono |
| Frontend-only / unknown export | examples.md#vite-react-vue-spa (static server) |
Do not invent
commands for known frameworks; use the recipe exactly.
AI export quick fixes
| Source | Fix |
|---|
| Replit | Remove , ; ensure root script |
| Lovable / Bolt | Add Express static server for or ; add to |
| Missing | Create with ; run install (npm/pnpm/yarn) to generate lockfile |
| Hardcoded port | Use |
| Wrong deps section | Move runtime packages to |
For Lovable/Bolt static hosting, use the vite-react-vue-spa recipe.
Pre-upload checklist
Done criteria
Task is complete only when:
- exits on the project directory.
- Pre-upload checklist is satisfied.
- User knows to zip the project root (single app folder) for upload.