Install
openclaw skills install develop-and-deploy-web-appBuild, run, and share a simple full-stack web application with a TypeScript Express backend, React frontend, and SQLite database. Use when a user wants a working web app or explicitly asks for a LiteApp / 轻应用 scaffolded in the current workspace, started locally, and exposed through a public URL for demos, testing, or review.
openclaw skills install develop-and-deploy-web-appBuild a simple full-stack web app in the current workspace, run it locally as its own isolated process, and provide a URL that another person can open from outside the machine.
If the user says "轻应用" or "LiteApp", treat that as an explicit request to use this skill.
workspaces/web-apps/{userName}/{token}.{token} as an 8-character random identifier made only of uppercase letters and digits.{token} is globally unique across all generated apps.userName is available in the runtime context, use it directly. If it is not discoverable from the environment or user request, ask the user before scaffolding.{token} as both the folder name and the URL segment.33333 to route /{token}/... traffic to the correct app process.client/ for the React app and server/ for the Express API.better-sqlite3 for SQLite access unless the workspace already uses another SQLite library./api endpoints from the same server process..ai.md file first.references/ui-style.md when designing the frontend. Capture the visual principles from Huashu Design's web examples without copying its original assets or branded content./{token}/, not just at /.33333.33334-39999. Start at 33334 and increment until a free port is found.<web-app-url-prefix>:33333/{token}.../platform_data/web-app-registry.json synchronized relative to the .openclaw root directory. Each record must include name, token, file_path, port, created_at, modified_at, and user_name.scripts/ for app initialization, internal port allocation, shared-host startup, registry maintenance, shutdown, and doc synchronization instead of re-implementing those flows ad hoc.workspaces/web-apps/{userName}/{token} and create it if needed.scripts/init-app.js.scripts/scaffold-app.js.scripts/sync-docs.js.scripts/deploy-app.js for ordered deployment. It installs dependencies, builds the app, starts it, syncs docs, and updates the registry without race conditions.install-app.js -> build-app.js -> start-app.js -> sync-docs.js -> update-registry.js.status-app.js and restart-app.js for lifecycle checks and controlled restarts.restore-apps.js for post-reboot recovery, and bootstrap-host.js to print the command that a host-level startup mechanism should run.references/stack.md.references/scaffold.md when building a new app from scratch.scripts/.references/scripts.md.references/autoload.md.references/ui-style.md.51733000 or 30013333333334-39999/api.client/dist from Express under the base path and keep API routes under /{token}/api.server/data/app.db.<web-app-url-prefix>:33333/{token}.33333.33334 upward and using the first free port up to 39999.scripts/update-registry.js.scripts/init-app.js and scripts/sync-docs.js..ai.md in every app directory to record user requirements and AI design notes.config.json inside generated app directories.Always finish with:
a fixed, explicit final app info block with all four fields present and non-empty:
Id: {token}
Name: {appName}
Description: {appSummary}
Url template: <web-app-url-prefix>:33333/{token}
do not omit any of the four fields above, even if other delivery details are also included
keep the field names exactly as written above
if additional sections are included, place this four-field block at the end of the response
the generated project path
the app summary
the main files or folders created or updated
install and run commands
the final URL in the form <web-app-url-prefix>:33333/{token}
the assigned public port 33333 and the internal app port
the registry and app-doc files that were created or updated
any limitations, such as the URL depending on the local process remaining alive