From website-deployment
Analyzes an existing Node.js/Express app and creates a migration plan. Use when the user wants to migrate, convert, or deploy their app.
npx claudepluginhub schuettc/website-deployment-plugin --plugin website-deploymentThis skill uses the workspace's default tool permissions.
You are analyzing the user's existing Node.js/Express application to create a migration plan for AWS serverless deployment.
Guides migration from AWS Lambda, Vercel, Express, and Node.js to Cloudflare Workers with decision trees, error fixes, and code patterns.
Deploys applications to AWS: analyzes codebases for frameworks/databases, recommends services, estimates costs, generates secure IaC with CDK/CloudFormation/Terraform, and deploys.
Migrates Heroku apps to Render by reading local Procfile, dependency files like package.json and requirements.txt, and optionally Heroku MCP data to generate Render services or Blueprint YAML. Triggers on Heroku migration mentions.
Share bugs, ideas, or general feedback.
You are analyzing the user's existing Node.js/Express application to create a migration plan for AWS serverless deployment.
.migration/plan.md exists yetBefore making any changes, make sure the user's work is safe. This migration creates a lot of new files and modifies the project structure significantly — if something goes wrong, the user needs an easy way to get back to where they started.
Check git is initialized — Run git status. If the project isn't a git repo, suggest initializing one:
"Before we start, let's set up version control so you can always get back to your current working app if needed. Want me to run git init and make an initial commit?"
Check for uncommitted changes — If there are uncommitted changes, ask the user to commit them first: "I see you have uncommitted changes. Let's save those before we start the migration — that way you can always roll back to exactly where you are now. Want me to commit these for you?"
Create a migration branch — Create a new branch so all migration work is isolated:
"I'll create a migration branch to work on. Your main branch stays untouched, so you can always switch back."
git checkout -b migration
Check Node.js version — Run node --version. The migration targets Node.js 20.x for Lambda. If the user is on Node 16 or older, warn them:
"You're running Node.js [version]. AWS Lambda uses Node.js 20, and some of the tools we'll use (like Vite and CDK) need Node.js 18 or newer. I'd recommend upgrading before we continue — otherwise you may hit confusing errors later."
Check if git is configured — Verify git config user.name and git config user.email are set so commits work.
Once safety checks pass, proceed to exploration.
Thoroughly read the existing application:
app.js, index.js, server.js, or package.json main fieldexpress.static() calls, HTML/CSS/JS files, assets.env files, process.env usagePresent findings to the user in plain language:
Routes Summary: "I found [N] Express routes. Here's what each one does:"
GET / — Serves the main pageGET /api/items — Returns a list of items from [data source]POST /api/items — Creates a new itemData Storage: "Your app currently stores data in [method]. In AWS, we'll move this to DynamoDB, a cloud database that scales automatically."
Static Files: "You have [N] HTML files and [N] CSS/JS files. We'll migrate these into a modern React frontend built with Vite, then host the production build on CloudFront, a global CDN."
Authentication: "Your app [does/doesn't] have authentication. [If yes: We'll move this to Cognito. If no: We can add it later if you need it.]"
Ask the user targeted questions:
Create .migration/plan.md with:
# Migration Plan
## App Summary
- **Entry point**: [file]
- **Framework**: Express [version]
- **Node.js version**: [version]
## Routes to Migrate
| Method | Path | Description | Auth Required | Lambda Handler |
|--------|------|-------------|---------------|----------------|
| GET | / | Main page | No | N/A (static) |
| GET | /api/items | List items | No | get-items |
| POST | /api/items | Create item | Yes | create-item |
## Data Model
- **Current storage**: [method]
- **Target**: DynamoDB
- **Tables needed**: [list with key design]
## Frontend
- **Current files**: [list of HTML/CSS/JS files]
- **Target**: Vite + React (TypeScript) → built to static files → hosted on S3 + CloudFront
## Authentication
- **Needed**: Yes/No
- **Protected routes**: [list]
## Migration Steps
1. ✅ Analyze — Complete
2. 🔲 Scaffold — Create CDK project
3. 🔲 Create API — [N] Lambda handlers needed
4. 🔲 Add Database — [if needed]
5. 🔲 Add Auth — [if needed]
6. 🔲 Setup Frontend — Create Vite + React app, host on S3 + CloudFront
7. 🔲 Deploy
8. 🔲 Test