I have built an Angular SSR app using Angular 19, and I'm trying to deploy it on AWS Amplify. Below is my setup and the challenges I'm facing: Package.json { "name": "ssr-app", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "serve:ssr:ssr-app": "node dist/ssr-app/server/server.mjs", }, "private": true, "dependencies": { "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", "@angular/platform-browser-dynamic": "^19.0.0", "@angular/platform-server": "^19.0.0", "@angular/router": "^19.0.0", "@angular/ssr": "^19.0.6", "aws-amplify": "^6.12.0", "express": "^4.18.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.6", "@angular/cli": "^19.0.6", "@angular/compiler-cli": "^19.0.0", "@aws-amplify/backend": "^1.12.0", "@aws-amplify/backend-cli": "^1.4.6", "@types/express": "^4.17.17", "@types/jasmine": "~5.1.0", "@types/node": "^18.18.0", "aws-cdk": "^2.173.4", "aws-cdk-lib": "^2.173.4", "constructs": "^10.4.2", "esbuild": "^0.24.2", "jasmine-core": "~5.4.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "tsx": "^4.19.2", "typescript": "^5.6.3" } } Build folder structure dist/ ssr-app/ browser/ # Contains client-side files server/ # Contains server-side files, including `server.mjs` Aws ampliy.yml version: 1 frontend: phases: preBuild: commands: - nvm install 20 - nvm use 20 - npm install build: commands: - | if [ "$AWS_BRANCH" == "master" ]; then npm run build else echo "Branch not configured for specific build commands." exit 1 fi artifacts: baseDirectory: dist/ssr-app files: - '**/*' cache: paths: - .npm/**/* runtime: nodejs: 20 Build Logs 134 2024-12-31T10:32:53.727Z [INFO]: Output location: /codebuild/output/src2186657907/src/g99-landingpages-ui-copy/dist/ssr-app 135 2024-12-31T10:32:53.843Z [INFO]: # Completed phase: build 136 ## Completed Frontend Build 137 2024-12-31T10:32:53.857Z [INFO]: ## Build completed successfully 138 2024-12-31T10:32:53.858Z [INFO]: # Starting caching... 139 2024-12-31T10:32:53.862Z [INFO]: # Creating cache artifact... 140 2024-12-31T10:32:53.865Z [INFO]: # Created cache artifact 141 2024-12-31T10:32:53.865Z [INFO]: # Uploading cache artifact... 142 2024-12-31T10:32:53.947Z [INFO]: # Uploaded cache artifact 143 2024-12-31T10:32:53.947Z [INFO]: # Caching completed 144 2024-12-31T10:32:53.967Z [WARNING]: !! No index.html detected in deploy folder: /codebuild/output/src2186657907/src/g99-landingpages-ui-copy/dist/ssr-app 145 2024-12-31T10:32:53.969Z [INFO]: # Starting build artifact upload process... 146 2024-12-31T10:32:54.072Z [INFO]: # Uploading build artifact '__artifacts.zip'... 147 2024-12-31T10:32:54.171Z [INFO]: # Build artifact upload completed 148 2024-12-31T10:32:54.172Z [INFO]: # Starting environment caching... 149 2024-12-31T10:32:54.172Z [INFO]: # Uploading environment cache artifact... 150 2024-12-31T10:32:54.239Z [INFO]: # Uploaded environment cache artifact 151 2024-12-31T10:32:54.239Z [INFO]: # Environment caching completed Problem: After the build completes, AWS Amplify expects an index.html file in the deployment folder, but my app is an SSR application. Instead of serving static files, the app needs to run the server file (dist/ssr-app/server/server.mjs) to handle requests. What I Need Help With: How can I configure AWS Amplify to run the server-side file (server.mjs) instead of looking for index.html? Is it possible to override the build and start commands in AWS Amplify to suit an SSR application? Below is my folder structure after build Continue reading...