From gamma-pack
Deploys Gamma-integrated apps to Vercel, AWS Lambda, or GCP Cloud Run with API key secret management and production configs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gamma-pack:gamma-deploy-integrationThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deploy Gamma-integrated applications to various cloud platforms with proper configuration and secret management.
Deploy Gamma-integrated applications to various cloud platforms with proper configuration and secret management.
set -euo pipefail
# Install Vercel CLI
npm i -g vercel
# Link project
vercel link
# Set environment variable
vercel env add GAMMA_API_KEY production
{
"framework": "nextjs",
"buildCommand": "npm run build",
"env": {
"GAMMA_API_KEY": "@gamma_api_key"
},
"functions": {
"api/**/*.ts": {
"maxDuration": 30
}
}
}
# Preview deployment
vercel
# Production deployment
vercel --prod
aws secretsmanager create-secret \
--name gamma/api-key \
--secret-string '{"apiKey":"your-gamma-api-key"}'
// lambda/gamma-handler.ts
import { SecretsManager } from '@aws-sdk/client-secrets-manager';
import { GammaClient } from '@gamma/sdk';
const secretsManager = new SecretsManager({ region: 'us-east-1' });
let gamma: GammaClient;
async function getGammaClient() {
if (!gamma) {
const secret = await secretsManager.getSecretValue({
SecretId: 'gamma/api-key',
});
const { apiKey } = JSON.parse(secret.SecretString!);
gamma = new GammaClient({ apiKey });
}
return gamma;
}
export async function handler(event: any) {
const client = await getGammaClient();
const result = await client.presentations.create({
title: event.title,
prompt: event.prompt,
});
return { statusCode: 200, body: JSON.stringify(result) }; # HTTP 200 OK
}
# template.yaml
AWSTemplateFormatVersion: '2010-09-09' # 2010 = configured value
Transform: AWS::Serverless-2016-10-31 # 2016 = configured value
Resources:
GammaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: dist/gamma-handler.handler
Runtime: nodejs20.x
Timeout: 30
MemorySize: 256 # 256 bytes
Policies:
- SecretsManagerReadWrite
Environment:
Variables:
NODE_ENV: production
echo -n "your-gamma-api-key" | \
gcloud secrets create gamma-api-key --data-file=-
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
CMD ["node", "dist/server.js"]
set -euo pipefail
gcloud run deploy gamma-service \
--image gcr.io/$PROJECT_ID/gamma-service \
--platform managed \
--region us-central1 \
--set-secrets GAMMA_API_KEY=gamma-api-key:latest \
--allow-unauthenticated
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: npm ci && npm run build
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--prod'
| Error | Cause | Solution |
|---|---|---|
| Secret not found | Missing secret | Create secret in platform |
| Timeout | Function too slow | Increase timeout limit |
| Cold start | Lambda initialization | Use provisioned concurrency |
| Permission denied | IAM misconfigured | Update IAM policies |
Proceed to gamma-webhooks-events for event handling.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin gamma-packConfigures Gamma API for dev, staging, prod with env-specific keys, mock servers for dev, and secret manager integration via TypeScript client.
Deploys Vercel apps to production via CLI/API/deploy hooks, promotes previews, rolls back instantly, configures rolling releases and multi-region strategies.
Generates deployment configurations for hosting providers like Vercel, Railway, AWS, covering env vars, domains, SSL, strategies, rollback plans, and health checks. Useful for production deploys.