https://github.com/digitalocean-labs/do-app-platform-skills
Claude/Agent Skills for DigitalOcean App Platform - deployment, migration, networking, database configuration, and troubleshooting
https://github.com/digitalocean-labs/do-app-platform-skills
ai-skills app-platform claude deployment devops digitalocean paas
Last synced: 4 months ago
JSON representation
Claude/Agent Skills for DigitalOcean App Platform - deployment, migration, networking, database configuration, and troubleshooting
- Host: GitHub
- URL: https://github.com/digitalocean-labs/do-app-platform-skills
- Owner: digitalocean-labs
- License: mit
- Created: 2025-12-28T08:54:16.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-31T00:05:44.000Z (4 months ago)
- Last Synced: 2026-01-31T15:50:09.415Z (4 months ago)
- Topics: ai-skills, app-platform, claude, deployment, devops, digitalocean, paas
- Language: Python
- Size: 315 KB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# DigitalOcean App Platform Skills
[](https://github.com/bikramkgupta/do-app-platform-skills/actions/workflows/test.yml)
[](https://codecov.io/gh/bikramkgupta/do-app-platform-skills)
[](https://www.python.org/downloads/)
[](LICENSE)
Claude/Agent skills for DigitalOcean App Platform - deployment, migration, networking, database configuration, and troubleshooting.
## Version Compatibility
### Tool Requirements
| Tool | Minimum Version | Recommended | Notes |
|------|-----------------|-------------|-------|
| doctl | 1.82.0+ | 1.100.0+ | App spec v2 support |
| Python | 3.11+ | 3.12+ | For scripts |
| Node.js | 20+ | 22+ | LTS versions |
| PostgreSQL | 15+ | 16 | Default: 16 |
### Skills Version
All skills in this repository are versioned. Check each skill's frontmatter for:
- `version`: Semantic version (MAJOR.MINOR.PATCH)
- `min_doctl_version`: Minimum doctl CLI version required
```yaml
# Example from SKILL.md frontmatter
---
name: app-platform-designer
version: 1.0.0
min_doctl_version: "1.82.0"
---
```
### API Compatibility Matrix
| Skills Version | doctl Version | App Spec Version | Status |
|----------------|---------------|------------------|--------|
| 1.0.x | 1.82.0+ | v2 | ✅ Current |
### Checking Your doctl Version
```bash
doctl version
# doctl version 1.100.0-release
# Update if needed
brew upgrade doctl # macOS
snap refresh doctl # Linux
```
## What Are Skills?
Skills are structured prompts and documentation that help AI assistants (like Claude) perform specialized tasks. Each skill contains domain knowledge, best practices, code patterns, and decision trees for a specific area of App Platform.
## Prerequisites
Before using these skills, ensure you have:
| Tool | Required | Purpose |
|------|----------|---------|
| **doctl** | ✅ Yes | DigitalOcean CLI for deployments and management |
| **DO API Token** | ✅ Yes | Authentication ([create one here](https://cloud.digitalocean.com/account/api/tokens)) |
| **git** | ✅ Yes | Clone repos, manage deployments |
| **gh** | Optional | GitHub CLI for creating repos, PRs, workflows |
| **docker** | Optional | Local testing, building container images |
### Quick Setup
```bash
# Install doctl (macOS)
brew install doctl
# Or on Linux
snap install doctl
# Authenticate with your API token
doctl auth init
# Verify it works
doctl account get
```
## Getting Started
### Step 1: Set Up Skills Directory
Create a skills directory for your AI assistant of choice:
```bash
# For Claude Code
mkdir -p ~/.claude/skills
# For Codex
mkdir -p ~/.codex/skills
# For Cursor
mkdir -p ~/.cursor/skills
# Or in your project root
mkdir -p .claude/skills
```
### Step 2: Clone This Repository
```bash
# Clone into your skills directory
cd ~/.claude/skills # or your preferred location
git clone https://github.com/bikramkgupta/do-app-platform-skills.git
# Or clone into your project
cd your-project
git clone https://github.com/bikramkgupta/do-app-platform-skills.git .claude/skills/do-app-platform
```
### Step 3: Start Using Skills
Just describe what you want and ask to use App Platform skills:
```
"I want to deploy my Python FastAPI app with PostgreSQL. Use the App Platform skills."
"Migrate my Heroku app to DigitalOcean. Use App Platform skills to help."
"My app is crashing on startup. Use App Platform troubleshooting skills to debug."
```
### For Complex Tasks
For larger projects, ask for a detailed plan:
```
"I need to set up a multi-service architecture with API, worker, and database.
Use App Platform skills and create a detailed plan in the /plan folder before implementing."
```
This creates structured plan files you can review before execution.
## Example Prompts
| What You Want | Example Prompt |
|--------------|----------------|
| **Create a new app** | "Create an App Spec for my Node.js API with Redis caching. Use App Platform skills." |
| **Migrate from Heroku** | "Migrate this Heroku app to App Platform. Use the migration skill." |
| **Troubleshoot issues** | "My database connections are timing out. Use App Platform troubleshooting to diagnose." |
| **Set up CI/CD** | "Set up GitHub Actions to deploy on push to main. Use deployment skills." |
| **Configure networking** | "I need custom domain with SSL and CORS headers. Use networking skills." |
| **Database setup** | "Configure PostgreSQL with connection pooling for my Django app. Use postgres skills." |
## Available Skills
| Skill | Description | Key Artifacts |
|-------|-------------|---------------|
| [**designer**](skills/designer/) | Natural language → production-ready App Spec | `.do/app.yaml` |
| [**deployment**](skills/deployment/) | GitHub Actions CI/CD and deployment workflows | `.github/workflows/` |
| [**migration**](skills/migration/) | Migrate from Heroku, AWS, Docker Compose, etc. | `.do/app.yaml`, checklist |
| [**networking**](skills/networking/) | Domains, routing, CORS, VPC, static IPs | App spec snippets |
| [**postgres**](skills/postgres/) | PostgreSQL configuration, security, multi-tenant | SQL scripts |
| [**managed-db-services**](skills/managed-db-services/) | MySQL, MongoDB, Valkey, Kafka, OpenSearch | App spec snippets |
| [**spaces**](skills/spaces/) | S3-compatible object storage | CORS config |
| [**ai-services**](skills/ai-services/) | Gradient AI serverless inference | App spec snippets |
| [**troubleshooting**](skills/troubleshooting/) | Debug running apps with container access | Diagnostic reports |
| [**devcontainers**](skills/devcontainers/) | Local development with production parity | `.devcontainer/` |
## Alternative Usage Methods
### With Claude Projects (claude.ai)
1. Create a new Claude Project
2. Add the relevant `SKILL.md` files to the project knowledge
3. Start chatting about your App Platform needs
### Direct Context Injection
Copy the contents of any `SKILL.md` file into your conversation with any AI assistant as context.
## Philosophy
These skills are **opinionated playbooks**, not documentation replicas:
- They make decisions (VPC by default, GitHub Actions for CI/CD)
- They generate artifacts (app specs, workflows, scripts)
- They defer to docs only for edge cases
- They never handle credentials directly
**Key principle**: Skills only contain DO-specific knowledge the LLM doesn't have from training.
## Skill Structure
```
skills/
├── skill-name/
│ ├── README.md # Quick overview and when to use
│ ├── SKILL.md # Concise router (150-350 lines)
│ ├── reference/ # Detailed docs (loaded on-demand)
│ ├── templates/ # (optional) Reusable templates
│ └── scripts/ # (optional) Helper scripts
```
## Skill Dependency Graph
```
┌─────────────┐
│ designer │
└──────┬──────┘
│ produces .do/app.yaml
▼
┌─────────────┐ ┌─────────────┐ ┌───────────────┐
│ migration │────▶│ deployment │────▶│troubleshooting│
└─────────────┘ └─────────────┘ └───────────────┘
┌──────────┐ ┌────────────┐ ┌────────────┐
│ postgres │ │managed-db │ │ networking │
└──────────┘ └────────────┘ └────────────┘
└──────────────┼──────────────┘
▼
(referenced by designer)
```
## Credential Safety
All skills follow this priority:
1. **GitHub Secrets** — Recommended, agent never sees credentials
2. **Bindable Variables** — `${db.DATABASE_URL}` injected automatically
3. **External Systems** — User manages entirely
## Contributing
Contributions welcome! Please:
1. Follow the existing skill structure
2. Include practical examples and code snippets
3. Document limitations and gotchas
4. Test with Claude before submitting
## License
MIT License - See [LICENSE](LICENSE) for details.
## Resources
- [App Platform Documentation](https://docs.digitalocean.com/products/app-platform/)
- [App Spec Reference](https://docs.digitalocean.com/products/app-platform/reference/app-spec/)
- [doctl CLI](https://docs.digitalocean.com/reference/doctl/)