askill
app-platform-migration

app-platform-migrationSafety 98Repository

Migrate applications from Heroku, AWS, Render, Railway, Fly.io, or Docker Compose to DigitalOcean App Platform. Use when converting existing apps, mapping services, refactoring platform-specific code, or creating app specs from other platform configurations.

1 stars
1.2k downloads
Updated 2/20/2026

Package Files

Loading files...
SKILL.md

App Platform Migration Skill

Migrate existing applications to DigitalOcean App Platform with honest capability assessment.

Philosophy

This skill is an honest partner, not a magic wand. It:

  1. Analyzes thoroughly before proposing changes
  2. Maps what it can with confidence
  3. Acknowledges gaps clearly and specifically
  4. Asks before proceeding when uncertain
  5. Never guesses or ignores incompatibilities

Tip: For complex multi-step migrations, use the planner skill first. For all available skills, see root SKILL.md.


Quick Decision

What's your source platform?
├── Heroku (Procfile, app.json) → See Quick Start below
├── Docker Compose → See Quick Start below
├── Render/Railway/Fly.io → See Quick Start below
├── AWS ECS/App Runner → Complex migration, see reference
└── Just Dockerfile → See Quick Start below

Supported Platforms

PlatformConfig FilesSupport Level
HerokuProcfile, app.jsonFull
Docker Composedocker-compose.ymlFull
Renderrender.yamlFull
Railwayrailway.json, railway.tomlFull
Fly.iofly.tomlFull
AWS ECSTask Definition JSONPartial
AWS App Runnerapprunner.yamlPartial
Generic DockerDockerfile onlyFull

Migration Workflow

Phase 1: DISCOVERY
├── Clone/access repository
├── Detect source platform
├── Analyze architecture
└── Inventory all services

Phase 2: MAPPING
├── Map services → App Platform components
├── Map databases → Managed databases
├── Map storage → Spaces
├── Map secrets → GitHub Secrets
└── Identify unmappable items → REPORT TO USER

Phase 3: REFACTORING
├── Create target branch(es)
├── Update environment variables
├── Remove platform-specific code
├── Update Dockerfile if needed
└── Generate app spec

Phase 4: VALIDATION
├── Validate: doctl apps spec validate
├── Review changes with user
└── Generate migration checklist

Phase 5: HANDOFF
├── Push branches to repo
├── Provide manual steps checklist
└── Suggest deployment skill

Quick Start

Basic Migration

# User provides repo URL
"Migrate this app to App Platform: https://github.com/myorg/myapp"

# AI will:
# 1. Clone and analyze
# 2. Detect platform
# 3. Present mapping proposal
# 4. Ask for approval
# 5. Create branch with refactored code + app spec

With Branch Specification

"Migrate my Heroku app. Put test config in 'migrate/test', prod in 'migrate/prod'"

Full workflows: See workflow-examples.md


Quick Mapping Reference

Heroku

HerokuApp Platform
web processservices
worker processworkers
release phasejobs (PRE_DEPLOY)
heroku-postgresqlManaged Postgres
heroku-redisManaged Valkey
Config VarsGitHub Secrets

Docker Compose

Docker ComposeApp Platform
services.<name>.portsservices
services.<name> (no ports)workers
services.postgresManaged Postgres
services.redisManaged Valkey
volumesSpaces (no persistent volumes)

Full mapping tables: See platform-mappings.md


Unmappable Items (Quick Reference)

SourceIssueOptions
CloudFront CDNNo DO CDNExternal CDN (Cloudflare) or skip
AWS Secrets ManagerDifferent modelGitHub Secrets
Persistent volumesNot supportedSpaces for files, managed DB for data
ARM containersAMD64 onlyRebuild for AMD64

Full list: See platform-mappings.md


Output Artifacts

FilePurpose
.do/app.yamlApp Platform specification
.do/deploy.template.yamlDeploy to DO button
MIGRATION.mdMigration checklist and status
.env.exampleEnvironment variable template

App spec templates: See app-spec-generation.md


Scripts

ScriptPurpose
scripts/detect_platform.pyDetect source platform from files
scripts/analyze_architecture.pyAnalyze application architecture
scripts/generate_app_spec.pyGenerate .do/app.yaml
scripts/generate_checklist.pyGenerate migration checklist

Reference Files


Common Issues (Quick Fixes)

IssueCauseFix
App spec validation failsInvalid YAMLCheck indentation, doctl apps spec validate
Database connection failsWrong URL formatUse ${db.DATABASE_URL} binding
Build failsMissing dependenciesCheck Dockerfile build deps
Port binding failsWrong PORT handlingBind to $PORT or 0.0.0.0:8080
Health check failsWrong pathVerify /health endpoint exists

Full troubleshooting: See code-refactoring.md


Integration with Other Skills

  • → deployment: GitHub Actions workflow after migration
  • → postgres: Complex database setup, schema isolation
  • → devcontainers: Local dev environment post-migration
  • → troubleshooting: Debug container for migration issues

Documentation Links

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/11/2026

An exceptionally well-documented skill for migrating applications to DigitalOcean App Platform, featuring clear workflows, mapping references, and safety-first principles.

98
96
80
95
92

Metadata

Licenseunknown
Version1.0.0
Updated2/20/2026
Publisherdigitalocean-labs

Tags

ci-cddatabasegithubgithub-actionstesting