Ship Web Service
Ship API+SPA using research, browser, and deploy.
Skill metadata
| Source | Bundled (installed by default) |
| Path | skills/software-development/ship-web-service |
| Version | 1.2.0 |
| Author | VibeOS |
| License | MIT |
| Platforms | linux, macos |
| Tags | web, fullstack, deploy, research, browser, language-pack |
| Related skills | internet-starter, popular-web-designs, browser-e2e, browser-network-assert, design-to-code-loop, desktop-local-preview, lang-typescript, lang-python, codebase-navigate, deploy-presets |
Reference: full SKILL.md
info
The following is the complete skill definition that VibeOS loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Ship Web Service Skill
Glue for fullstack internet projects: scaffold → port check → index → browser smoke → deploy recipe. Uses existing packs/skills — no new core tools.
When to Use
- User wants an API + SPA (or landing) that can be deployed
- After
internet-starterscaffold, before production hardening
Prerequisites
vibeos pack apply project-intelligence --apply
vibeos pack apply lang-typescript --apply # SPA
# and/or
vibeos pack apply lang-python --apply # FastAPI / backend
vibeos pack apply research-pro --apply # optional competitive brief
Browser toolset available for smoke (browser_navigate). Deploy credentials
only via .env / hosting docs — never invent secrets.
How to Run
- Scaffold:
vibeos project new fullstack ./app(ornext/fastapi). - Apply language + project-intelligence packs;
vibeos project index build. - Optional brand:
design-to-code-loop(extract tokens) +popular-web-designs. - Dev-server awareness:
vibeos project servers --free 3000(and--free 8000for API). If busy, reuse — do not duplicate. - Start local servers via
terminal(background). - Confirm:
vibeos project servers --expect 3000 --health(and API port). - Desktop:
/previewor markdown[Preview:…](#preview/…)(desktop-local-preview). - Browser smoke: health URL, then one primary page (
browser-e2e). - Network assert:
browser-network-assertprobes for/health(and API). - Deploy: project
scripts/deploy*.sh, ordeploy-presets/cloudflare-temporary-deploy/ optionalfly-deploy/docker-vps-ship— do not invent CI.
Quick Reference
| Goal | Surface |
|---|---|
| Scaffold | vibeos project new / internet-starter |
| Port / health | vibeos project servers [--free|--expect|--health] |
| Navigate | vibeos project index query |
| Design look | design-to-code-loop + popular-web-designs |
| Desktop preview | /preview / desktop-local-preview |
| Research | vibeos pack apply research-pro |
| Browser smoke | browser_navigate + snapshot (browser-e2e) |
| Network assert | browser-network-assert / assert_network.py |
| Durable host | optional fly-deploy or docker-vps-ship |
| Language doctor | vibeos language doctor |
Procedure (monorepo)
- Keep roots clear:
apps/web(SPA) andapps/api(API); one language pack per root. - Cite index
path:linewhen changing handlers/routes. - Health check (
--expect+--health) before any deploy; staging first when a staging URL exists. - Never enable billing/prod payment as part of this skill.
Verify checklist
[ ] scaffold created with /health (or /api/health)
[ ] vibeos project servers --free <port> passed (or reused existing)
[ ] vibeos project servers --expect <port> --health → ok
[ ] browser: health + primary page
[ ] assert_network.py probes → ok
[ ] vibeos language doctor (when packs applied)
[ ] deploy only after health green; no .env committed
Pitfalls
- Do not add core tools for “deploy” or “browser verify”.
- Do not commit
.env; use host secrets and example files only. - Do not start a second Next/uvicorn when the port is already listening.
Verification
vibeos project servers --health
vibeos language doctor
vibeos doctor --project
# curl or browser: /health returns ok