web-development

Web frontend project development rules. Use this skill when developing web frontend pages, deploying static hosting, and integrating CloudBase Web SDK.

$ Installer

git clone https://github.com/TencentCloudBase/CloudBase-MCP /tmp/CloudBase-MCP && cp -r /tmp/CloudBase-MCP/config/.claude/skills/web-development ~/.claude/skills/CloudBase-MCP

// tip: Run this command in your terminal to install the skill


name: web-development description: Web frontend project development rules. Use this skill when developing web frontend pages, deploying static hosting, and integrating CloudBase Web SDK. alwaysApply: false

When to use this skill

Use this skill for Web frontend project development when you need to:

  • Develop web frontend pages and interfaces
  • Deploy static websites to CloudBase static hosting
  • Integrate CloudBase Web SDK for database, cloud functions, and authentication
  • Set up modern frontend build systems (Vite, Webpack, etc.)
  • Handle routing and build configurations for static hosting

Do NOT use for:

  • Mini-program development (use miniprogram-development skill)
  • Backend service development (use cloudrun-development skill)
  • UI design only (use ui-design skill, but may combine with this skill)

How to use this skill (for a coding agent)

  1. Follow project structure conventions

    • Frontend source code in src directory
    • Build output in dist directory
    • Cloud functions in cloudfunctions directory
    • Use modern frontend build systems (Vite, etc.)
  2. Use CloudBase Web SDK correctly

    • Always use SDK built-in authentication features
    • Never implement login logic in cloud functions
    • Use envQuery tool to get environment ID
  3. Deploy and preview properly

    • Build project first (ensure npm install is executed)
    • Use relative paths for publicPath configuration
    • Use hash routing for better static hosting compatibility
    • Deploy to subdirectory if user doesn't specify root directory

Web Frontend Development Rules

Project Structure

  1. Directory Organization:

    • Frontend source code should be stored in src directory
    • Build output should be placed in dist directory
    • Cloud functions should be in cloudfunctions directory
  2. Build System:

    • Projects should use modern frontend build systems like Vite
    • Install dependencies via npm
  3. Routing:

    • If the frontend project involves routing, use hash routing by default
    • Hash routing solves the 404 refresh issue and is more suitable for static website hosting deployment

Deployment and Preview

  1. Static Hosting Deployment:

    • For frontend projects, after building, you can use CloudBase static hosting
    • First start local preview, then confirm with user if deployment to CloudBase static hosting is needed
    • When deploying, if user has no special requirements, generally do not deploy directly to root directory
    • Return deployed address in markdown link format
  2. Local Preview:

    • To preview static web pages locally, navigate to the specified output directory and use npx live-server
  3. Public Path Configuration:

    • When web projects are deployed to static hosting CDN, since paths cannot be known in advance, publicPath and similar configurations should use relative paths instead of absolute paths
    • This solves resource loading issues

CloudBase Web SDK Usage

  1. SDK Integration:
    • If user's project needs database, cloud functions, and other features, need to introduce @cloudbase/js-sdk@latest in the web application

Important: Authentication must use SDK built-in features. It is strictly forbidden to implement login authentication logic using cloud functions!

import cloudbase from "@cloudbase/js-sdk";

const app = cloudbase.init({
  env: "xxxx-yyy", // Can query environment ID via envQuery tool
});
const auth = app.auth();

// Check current login state
let loginState = await auth.getLoginState();

if (loginState && loginState.user) {
  // Logged in
  const user = await auth.getCurrentUser();
  console.log("Current user:", user);
} else {
  // Not logged in - use SDK built-in authentication features
    
  // Collect user's phone number into variable `phoneNum` by providing a input UI

  // Send SMS code
  const verificationInfo = await auth.getVerification({
    phone_number: `+86 ${phoneNum}`,
  });
  
  // Collect user's phone number into variable `verificationCode` by providing a input UI 
  
  // Sign in
  await auth.signInWithSms({
    verificationInfo,
    verificationCode,
    phoneNum,
  });
}

Initialization rules (Web, @cloudbase/js-sdk):

  • Always use synchronous initialization with the pattern above
  • Do not lazy-load the SDK with import("@cloudbase/js-sdk")
  • Do not wrap SDK initialization in async helpers such as initCloudBase() with internal initPromise caches
  • Keep a single shared app/auth instance in your frontend app; reuse it instead of re-initializing

Web SDK API usage rules

  • Only use documented CloudBase Web SDK methods
  • Before calling any method on app, auth, db, or other SDK objects, confirm it exists in the official CloudBase Web SDK documentation
  • If a method or option is not mentioned in the official docs (for example some guessed method name), do NOT invent or use it

Authentication Best Practices

  1. Must use SDK built-in authentication: CloudBase Web SDK provides complete authentication features, including login by SMS, anonymous login, custom login, etc.

  2. Forbidden to implement login using cloud functions: Do not create cloud functions to handle login logic, this is the wrong approach

  3. User data management: After login, user information can be obtained via auth.getCurrentUser(), then stored to database

  4. Error handling: All authentication operations should include complete error handling logic

Build Process

Web project build process: Ensure npm install command has been executed first, then refer to project documentation for building