Claude Code Plugins

Community-maintained marketplace

Feedback

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name gamma-deploy-integration
description Deploy Gamma-integrated applications to production environments. Use when deploying to Vercel, AWS, GCP, or other cloud platforms with proper secret management and configuration. Trigger with phrases like "gamma deploy", "gamma production", "gamma vercel", "gamma AWS", "gamma cloud deployment".
allowed-tools Read, Write, Edit, Bash(vercel:*), Bash(aws:*), Bash(gcloud:*)
version 1.0.0
license MIT
author Jeremy Longshore <jeremy@intentsolutions.io>

Gamma Deploy Integration

Overview

Deploy Gamma-integrated applications to various cloud platforms with proper configuration and secret management.

Prerequisites

  • Completed CI integration
  • Cloud platform account (Vercel, AWS, or GCP)
  • Production Gamma API key

Instructions

Vercel Deployment

Step 1: Configure Vercel Project

# Install Vercel CLI
npm i -g vercel

# Link project
vercel link

# Set environment variable
vercel env add GAMMA_API_KEY production

Step 2: Create vercel.json

{
  "framework": "nextjs",
  "buildCommand": "npm run build",
  "env": {
    "GAMMA_API_KEY": "@gamma_api_key"
  },
  "functions": {
    "api/**/*.ts": {
      "maxDuration": 30
    }
  }
}

Step 3: Deploy

# Preview deployment
vercel

# Production deployment
vercel --prod

AWS Lambda Deployment

Step 1: Store Secret in AWS Secrets Manager

aws secretsmanager create-secret \
  --name gamma/api-key \
  --secret-string '{"apiKey":"your-gamma-api-key"}'

Step 2: Lambda Configuration

// 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) };
}

Step 3: SAM Template

# template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Resources:
  GammaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: dist/gamma-handler.handler
      Runtime: nodejs20.x
      Timeout: 30
      MemorySize: 256
      Policies:
        - SecretsManagerReadWrite
      Environment:
        Variables:
          NODE_ENV: production

Google Cloud Run Deployment

Step 1: Store Secret

echo -n "your-gamma-api-key" | \
  gcloud secrets create gamma-api-key --data-file=-

Step 2: Dockerfile

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
CMD ["node", "dist/server.js"]

Step 3: Deploy

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 Actions Deployment

# .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'

Output

  • Production deployment on chosen platform
  • Secrets securely stored
  • Environment variables configured
  • Automated deployment pipeline

Error Handling

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

Resources

Next Steps

Proceed to gamma-webhooks-events for event handling.