CtrlK
BlogDocsLog inGet started
Tessl Logo

gamma-deploy-integration

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".

74

Quality

70%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./plugins/saas-packs/gamma-pack/skills/gamma-deploy-integration/SKILL.md
SKILL.md
Quality
Evals
Security

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

set -euo pipefail
# 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) };  # HTTP 200 OK
}

Step 3: SAM Template

# 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

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

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

ErrorCauseSolution
Secret not foundMissing secretCreate secret in platform
TimeoutFunction too slowIncrease timeout limit
Cold startLambda initializationUse provisioned concurrency
Permission deniedIAM misconfiguredUpdate IAM policies

Resources

  • Vercel Documentation
  • AWS Lambda Documentation
  • Google Cloud Run

Next Steps

Proceed to gamma-webhooks-events for event handling.

Repository
jeremylongshore/claude-code-plugins-plus-skills
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.