$npx -y skills add aws/agent-toolkit-for-aws --skill launch-with-awsMigrates vibe-coded web applications to AWS. Handles the full workflow from analysis through migration to deployment, producing deployable AWS Blocks infrastructure code. Supports full-stack apps built with vibe-coding platforms (Lovable, Bolt.new, Replit) and frontend web applic
| 1 | # Launch with AWS |
| 2 | |
| 3 | Drives an AWS migration end-to-end using CLI scripts. Takes a user's web application, analyzes it, generates a migration plan with cost estimate, and delivers deployable [AWS Blocks](https://docs.aws.amazon.com/blocks/latest/devguide/what-is-blocks.html) infrastructure code. |
| 4 | |
| 5 | The AWS MCP server is recommended but is not required. This skill works standalone via its CLI scripts in any agent environment. |
| 6 | |
| 7 | ## Script Invocation |
| 8 | |
| 9 | All commands are run via: |
| 10 | |
| 11 | ```bash |
| 12 | python3 scripts/launch_with_aws.py <command> [args...] |
| 13 | ``` |
| 14 | |
| 15 | where `scripts/` is relative to this skill directory. The agent MUST set the working directory to the skill root before invoking commands. |
| 16 | |
| 17 | Required files: [launch_with_aws.py](scripts/launch_with_aws.py), [launch_config.py](scripts/launch_config.py), [auth.py](scripts/auth.py), [auth_callback_server.py](scripts/auth_callback_server.py), [launch_api_client.py](scripts/launch_api_client.py), [archive.py](scripts/archive.py), [service model](references/launchwithaws-2026-06-15.json). When loaded via MCP, fetch all and write to a temp directory preserving structure before invoking. |
| 18 | |
| 19 | Each command outputs JSON to stdout on success, or exits non-zero with a JSON error on stderr. |
| 20 | |
| 21 | Dependencies: Python 3.10+ and `boto3`. The script checks both on startup and exits with a clear error if either is missing. |
| 22 | |
| 23 | ## Supported Application Types |
| 24 | |
| 25 | Full-stack apps built with vibe-coding platforms, and frontend web applications and websites (static sites, SPAs, and SSR frameworks with static export). |
| 26 | |
| 27 | | Origin Platform | What it covers | |
| 28 | |----------------|---------------| |
| 29 | | Lovable | Lovable-generated full-stack apps (React + Supabase) | |
| 30 | | Bolt.new | Bolt.new-generated full-stack apps (React + Supabase) | |
| 31 | | Replit | Replit-hosted full-stack apps (React + Express.js + PostgreSQL) | |
| 32 | |
| 33 | | Framework | Examples | |
| 34 | |-----------|---------| |
| 35 | | React ecosystem | React, CRA, Vite + React, Gatsby, Docusaurus | |
| 36 | | Vue ecosystem | Vue, Nuxt (static export), VitePress | |
| 37 | | Angular | Angular | |
| 38 | | Svelte ecosystem | Svelte, SvelteKit (static export) | |
| 39 | | SSR with static export | Next.js, Nuxt, Astro, SvelteKit | |
| 40 | | Other modern frameworks | Astro, Solid, Preact, Lit, Eleventy | |
| 41 | | Vite (generic) | Any Vite-based app | |
| 42 | |
| 43 | Other frameworks may also work. If the user's app doesn't match these, see **Unsupported Application Handling** below. |
| 44 | |
| 45 | ### What Gets Migrated vs. What Stays |
| 46 | |
| 47 | **Lovable / Bolt.new apps (Supabase-backed):** |
| 48 | |
| 49 | | Component | What happens | |
| 50 | |-----------|-------------| |
| 51 | | Frontend & hosting | Migrated to AWS (S3 + CloudFront + Lambda) | |
| 52 | | Edge functions / server functions | Migrated to AWS Lambda | |
| 53 | | AI calls (e.g. Lovable AI Gateway) | Migrated to Amazon Bedrock | |
| 54 | | Database (Supabase DB) | Stays on Supabase — not migrated | |
| 55 | | Auth (Supabase Auth) | Stays on Supabase — not migrated | |
| 56 | | Storage & Realtime | Stays on Supabase — not migrated | |
| 57 | |
| 58 | The app continues to call Supabase for database, auth, storage, and realtime from the AWS-hosted application. |
| 59 | |
| 60 | **Replit apps (Express.js + PostgreSQL):** |
| 61 | |
| 62 | | Component | What happens | |
| 63 | |-----------|-------------| |
| 64 | | Frontend & hosting | Migrated to AWS (S3 + CloudFront + Lambda) | |
| 65 | | Server logic (Express.js) | Migrated to AWS Lambda (API Gateway) | |
| 66 | | Database (PostgreSQL) | Schema and code migrated to AWS (Aurora Serverless / DynamoDB). Existing data is NOT migrated — customers must export and import their data separately. | |
| 67 | | Auth (Replit Auth) | Code migrated to AWS (Cognito). Existing user accounts are NOT migrated — customers must re-create or invite users in Cognito. | |
| 68 | | Realtime (WebSockets) | Migrated to AWS (AppSync Events) | |
| 69 | | File storage | Migrated to AWS (S3). Existing files are NOT migrated. | |
| 70 | |
| 71 | Replit app infrastructure and code are migrated to AWS-native services, but existing data, user accounts, and files must be migrated separately by the customer. |
| 72 | |
| 73 | ## Input Resolution |
| 74 | |
| 75 | Resolve the user's input to a local directory path or GitHub URL: |
| 76 | |
| 77 | - If the user provides a **local path**: pass that path directly. |
| 78 | - If the user provides a **GitHub URL**: pass it directly (the service clones it server-side). |
| 79 | - If neither is provided: use the current working directory. If it doesn't look like an |