Deploys web applications on Render with automatic builds, managed databases, and zero-config SSL. Use when deploying web services, static sites, or setting up managed infrastructure.
Deploys web services, static sites, and databases to Render using render.yaml blueprints. Use when users want to deploy applications with automatic Git builds, managed databases, and zero-config SSL.
/plugin marketplace add mgd34msu/goodvibes-plugin/plugin install goodvibes@goodvibes-marketThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/configuration.mdCloud platform for deploying web services, static sites, and databases with automatic builds from Git.
Long-running HTTP servers:
# render.yaml
services:
- type: web
name: api
runtime: node
buildCommand: npm install && npm run build
startCommand: npm start
envVars:
- key: NODE_ENV
value: production
Frontend applications:
services:
- type: web
name: frontend
runtime: static
buildCommand: npm install && npm run build
staticPublishPath: ./dist
Non-HTTP processes:
services:
- type: worker
name: worker
runtime: node
buildCommand: npm install && npm run build
startCommand: npm run worker
Scheduled tasks:
services:
- type: cron
name: daily-cleanup
runtime: node
buildCommand: npm install
startCommand: npm run cleanup
schedule: "0 0 * * *"
# render.yaml
services:
- type: web
name: my-app
runtime: node
region: oregon
# Build
buildCommand: npm ci && npm run build
startCommand: npm start
# Environment
envVars:
- key: NODE_ENV
value: production
- key: DATABASE_URL
fromDatabase:
name: mydb
property: connectionString
# Health check
healthCheckPath: /health
# Scaling
plan: starter
numInstances: 1
# Auto-deploy
autoDeploy: true
# Branch
branch: main
databases:
- name: mydb
plan: starter
databaseName: myapp
user: myuser
envVarGroups:
- name: shared-settings
envVars:
- key: LOG_LEVEL
value: info
envVars:
# Static value
- key: API_KEY
value: my-secret-key
# Sync from group
- key: LOG_LEVEL
fromGroup: shared-settings
# From database
- key: DATABASE_URL
fromDatabase:
name: mydb
property: connectionString
# From service
- key: API_URL
fromService:
name: api
type: web
property: host
{
"scripts": {
"build": "tsc",
"start": "node dist/index.js"
},
"engines": {
"node": "20"
}
}
const port = process.env.PORT || 10000;
app.listen(port, '0.0.0.0', () => {
console.log(`Server running on port ${port}`);
});
services:
- type: web
name: nextjs-app
runtime: node
buildCommand: npm ci && npm run build
startCommand: npm start
envVars:
- key: NODE_ENV
value: production
Render auto-detects Next.js and configures appropriately.
services:
- type: web
name: react-app
runtime: static
buildCommand: npm ci && npm run build
staticPublishPath: ./dist
routes:
- type: rewrite
source: /*
destination: /index.html
services:
- type: web
name: static-site
runtime: static
staticPublishPath: ./dist
headers:
- path: /*
name: X-Frame-Options
value: DENY
routes:
- type: redirect
source: /old-path
destination: /new-path
status: 301
databases:
- name: mydb
plan: starter # starter, standard, pro
databaseName: myapp
user: myuser
region: oregon
services:
- type: redis
name: cache
plan: starter
maxmemoryPolicy: allkeys-lru
envVars:
- key: DATABASE_URL
fromDatabase:
name: mydb
property: connectionString
- key: REDIS_URL
fromService:
name: cache
type: redis
property: connectionString
| Plan | RAM | CPU |
|---|---|---|
| Free | 512 MB | Shared |
| Starter | 512 MB | 0.5 |
| Standard | 2 GB | 1 |
| Pro | 4 GB | 2 |
| Pro Plus | 8 GB | 4 |
services:
- type: web
name: api
plan: standard
numInstances: 3
Configure in dashboard:
# A record
@ -> render IP
# CNAME for subdomain
www -> your-app.onrender.com
services:
- type: web
healthCheckPath: /health
app.get('/health', (req, res) => {
res.status(200).json({ status: 'ok' });
});
services:
- type: web
name: docker-app
runtime: docker
dockerfilePath: ./Dockerfile
dockerContext: .
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 10000
CMD ["node", "dist/index.js"]
Enable in service settings:
services:
- type: web
name: api
rootDir: apps/api
buildCommand: npm ci && npm run build
startCommand: npm start
services:
- type: web
name: web
rootDir: apps/web
buildCommand: npm ci && npm run build
staticPublishPath: ./dist
- type: web
name: api
rootDir: apps/api
buildCommand: npm ci && npm run build
startCommand: npm start
services:
- type: web
name: app
disk:
name: data
mountPath: /data
sizeGB: 10
Internal services not exposed to internet:
services:
- type: pserv # Private service
name: internal-api
runtime: node
buildCommand: npm ci && npm run build
startCommand: npm start
Access via internal DNS: internal-api:10000
# Install
npm install -g @render/cli
# Login
render login
# Deploy
render deploy
# Logs
render logs --service my-app
# SSH
render ssh my-app
See references/configuration.md for complete render.yaml options.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.