Create production-ready apps with built-in cloud deployment
npm install create-fde-app> Create production-ready applications with built-in cloud deployment configurations š




create-fde-app is a powerful CLI tool designed for Forward Deploy Engineers (FDEs) to quickly scaffold modern web applications with production-ready cloud deployment configurations. It leverages official framework creation tools to ensure you always get the latest version of your chosen framework.
- šÆ Multiple Frameworks: Next.js, Nuxt.js, Remix, and more
- āļø Multi-Cloud Support: AWS App Runner, Vercel, Google Cloud Run
- š³ Docker Ready: Optimized Dockerfiles for each framework
- š CI/CD Built-in: GitHub Actions workflows included
- šļø Infrastructure as Code: Optional Terraform configurations
- š Extensible: Add databases, authentication, monitoring, and more
- š¦ Always Latest: Uses official create commands for frameworks
bash
npx create-fde-app@latest
`$3
`bash
yarn global add create-fde-app
create-fde-app my-app
`$3
`bash
create-fde-app --version
`Quick Start
`bash
npx create-fde-app@latest my-app
`This will guide you through an interactive setup process to:
1. Choose your framework
2. Select deployment target
3. Configure optional features
4. Add advanced capabilities (databases, auth, monitoring)
Supported Technologies
$3
- Next.js - React framework with server-side rendering
- Nuxt.js - Vue.js framework with server-side rendering
- Remix - Full-stack web framework focused on web standards$3
- AWS App Runner - Fully managed container service
- Vercel - Platform for frontend developers
- Google Cloud Run - Serverless container platform$3
- Docker - Containerization with optimized multi-stage builds
- GitHub Actions - Automated CI/CD workflows
- Terraform - Infrastructure as Code (for AWS/GCP)Framework-Specific Features
$3
- App Router - Modern React Server Components architecture
- TypeScript - Full TypeScript support out of the box
- Tailwind CSS - Utility-first CSS framework pre-configured
- API Routes - Built-in API endpoints with automatic health check
- Optimizations - Image optimization, font optimization, and more$3
- Nitro Server - Universal deployment with edge rendering
- Auto-imports - Components, composables, and utilities auto-imported
- Vue 3 - Latest Vue.js with Composition API
- Server Routes - File-based server API with health endpoint
- Module System - Extensible with rich ecosystem$3
- Web Standards - Built on Web Fetch API and Web Streams
- Nested Routing - File-based routing with nested layouts
- Progressive Enhancement - Works without JavaScript
- Form Actions - Native form handling with server-side validation
- Error Boundaries - Granular error handling per route$3
#### Databases
- PostgreSQL with Prisma ORM
- MySQL with Prisma ORM
- MongoDB with Mongoose ODM
#### Authentication
- NextAuth.js (Next.js only)
- Auth0 Integration
- AWS Cognito
#### Monitoring & Utilities
- Datadog APM & RUM
- Sentry Error Tracking
- Winston Logging
- Rate Limiting
- CORS Configuration
Usage Examples
$3
`bash
npx create-fde-app@latest my-nextjs-app
Select: Next.js ā Vercel ā Docker
`$3
`bash
npx create-fde-app@latest my-fullstack-app
Select: Next.js ā AWS App Runner ā All features
Then select: PostgreSQL, NextAuth.js, Monitoring
`$3
`bash
Skip interactive prompts
npx create-fde-app@latest my-app \
--framework nextjs \
--deploy aws-apprunner \
--skip-git \
--skip-install
`$3
`bash
Set environment variables for CI/CD
export CI=true
export CREATE_FDE_APP_FRAMEWORK=nextjs
export CREATE_FDE_APP_DEPLOY_TARGET=vercel
export CREATE_FDE_APP_FEATURES=docker,github-actions
export CREATE_FDE_APP_AUGMENTATIONS=database:postgres,auth:nextauthnpx create-fde-app@latest my-app --no-git --no-install
`Interactive CLI Experience
When you run
create-fde-app, you'll be guided through an interactive setup:`
create-fde-app v0.1.0
Welcome to create-fde-app!
Let's create a production-ready app with cloud deployment.? What is your project name? my-awesome-app
? Which framework would you like to use? (Use arrow keys)
⯠Next.js - Full-stack React framework
Nuxt.js - Full-stack Vue framework
Remix - Full-stack web framework
? Where would you like to deploy?
⯠AWS App Runner
Vercel
Google Cloud Run
? Select features to include: (Press to select, to toggle all)
āÆā Docker containerization
ā GitHub Actions CI/CD
⯠Terraform Infrastructure
? Select advanced features (optional):
āÆāÆ PostgreSQL with Prisma
⯠MySQL with Prisma
⯠MongoDB with Mongoose
āāāāāāāāāāāāā
⯠NextAuth.js (Next.js only)
⯠Auth0 Integration
⯠AWS Cognito
āāāāāāāāāāāāā
⯠Datadog APM & RUM
⯠Sentry Error Tracking
⯠Winston Logging
⯠Rate Limiting
⯠CORS Configuration
? Initialize a git repository? Yes
? Install dependencies? Yes
ā Creating project with official framework command...
ā Processing project...
ā Adding deployment configurations...
ā Installing dependencies...
ā Initializing git repository...
⨠Your project is ready!
Next steps:
cd my-awesome-app
yarn dev
To deploy:
git push origin main
Happy coding! š
`Project Structure
After creation, your project will have:
`
my-app/
āāā [Framework files] # Next.js/Nuxt.js/Remix application
āāā Dockerfile # Optimized for your framework
āāā .dockerignore
āāā .github/
ā āāā workflows/
ā āāā deploy.yml # CI/CD pipeline
āāā terraform/ # If Terraform selected
ā āāā main.tf
ā āāā variables.tf
ā āāā outputs.tf
āāā [Augmentation files] # Database, auth, monitoring configs
`Deployment Guide
Each project comes with deployment instructions tailored to your chosen platform:
$3
`bash
Automated deployment via GitHub Actions
git push origin mainOr manual Terraform deployment
cd terraform
terraform init
terraform plan
terraform apply
`Required GitHub Secrets:
-
AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- APPRUNNER_SERVICE_ARN (after first deployment)$3
`bash
Install Vercel CLI
yarn global add vercelDeploy
vercel
`Required for automated deployments:
-
VERCEL_TOKEN
- VERCEL_ORG_ID
- VERCEL_PROJECT_ID$3
`bash
Automated deployment via GitHub Actions
git push origin main
`Required GitHub Secrets:
-
GCP_SA_KEY (Service Account JSON)
- GCP_PROJECT_IDDocker & Container Support
$3
Each framework gets an optimized Dockerfile with:
- Multi-stage builds - Smaller production images
- Layer caching - Faster rebuilds
- Security hardening - Non-root user, minimal base images
- Health checks - Container health monitoring
$3
`dockerfile
Dependencies stage
FROM node:20-alpine AS deps
WORKDIR /app
COPY package*.json ./
RUN yarn install --frozen-lockfile --productionBuild stage
FROM node:20-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN yarn buildProduction stage
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjsCOPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["node", "server.js"]
`$3
`bash
Build the image
docker build -t my-app .Run the container
docker run -p 3000:3000 my-appRun with environment variables
docker run -p 3000:3000 --env-file .env my-appView logs
docker logs Execute commands in container
docker exec -it sh
`$3
Create a docker-compose.yml for local development:
`yaml
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
env_file:
- .env
# Add database service if using database augmentation
postgres:
image: postgres:15-alpine
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydb
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/datavolumes:
postgres_data:
`Advanced Configuration
$3
When you select a database augmentation, the tool will:
1. Install required dependencies (Prisma/Mongoose)
2. Create database schema files
3. Set up connection utilities
4. Add migration scripts
5. Configure environment variablesExample with PostgreSQL:
`bash
After project creation
cd my-app
npx prisma migrate dev --name init
npm run dev
`$3
Authentication augmentations provide:
- Pre-configured auth providers
- Protected route examples
- Session management
- User profile pages$3
Monitoring options include:
- APM (Application Performance Monitoring)
- Error tracking with session replay
- Custom metrics and alerts
- Performance dashboardsEnvironment Variables
$3
`env
Application
NODE_ENV=development
PORT=3000Database (if using database augmentation)
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"Authentication (if using auth augmentation)
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key-hereOAuth Providers
GITHUB_ID=your-github-client-id
GITHUB_SECRET=your-github-client-secret
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secretAWS (if using AWS services)
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-keyMonitoring (if using monitoring augmentation)
DATADOG_API_KEY=your-datadog-api-key
SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-idDeployment
VERCEL_TOKEN=your-vercel-token
VERCEL_ORG_ID=your-org-id
VERCEL_PROJECT_ID=your-project-id
`$3
#### Local Development
1. Copy
.env.example to .env
2. Fill in your values
3. Never commit .env to version control#### Production Deployment
- Vercel: Set via dashboard or CLI
- AWS App Runner: Set in service configuration
- Google Cloud Run: Set via gcloud CLI or console
- GitHub Actions: Add as repository secrets
Development
$3
- Node.js 18+
- Git
- Docker (optional)
- Terraform (optional)
- Cloud provider CLI tools (optional)$3
`bash
Clone the repository
git clone https://github.com/fde/create-fde-app.git
cd create-fde-appInstall dependencies
yarn installRun locally
node bin/create-fde-app.js my-test-app
`$3
`bash
Run unit tests
yarn testRun integration tests
yarn test:integrationRun with coverage
yarn test:coverage
`Contributing
We welcome contributions! Please see our Contributing Guide for details.
$3
1. Add framework configuration to config/frameworks.json
2. Create post-processor in post-processors/[framework]/
3. Add Docker template in deploy-templates/docker/[framework]/
4. Update documentation$3
1. Add configuration to config/deploy-targets.json
2. Create GitHub Actions template
3. Add Terraform modules if applicable
4. Update deployment documentationTroubleshooting
$3
#### "Directory already exists" error
`bash
Error: Directory my-app already exists
`
Solution: Remove the existing directory or choose a different name:
`bash
rm -rf my-app
or
npx create-fde-app@latest my-new-app
`#### Framework creation fails
`bash
Error: Failed to create nextjs project
`
Solutions:
- Check your internet connection
- Clear yarn cache: yarn cache clean
- Try with a different package manager: yarn create fde-app
- Verify Node.js version: node --version (must be 18+)#### Permission errors
`bash
Error: EACCES: permission denied
`
Solutions:
- On macOS/Linux: Use sudo npx create-fde-app@latest
- Use a Node version manager (nvm, fnm, volta) to avoid permission issues
- Use a Node version manager (nvm, fnm, volta)#### Deployment fails
`bash
Error: Deployment to AWS App Runner failed
`
Solutions:
- Verify AWS credentials: aws sts get-caller-identity
- Check all required GitHub Secrets are set
- Review GitHub Actions logs for specific errors
- Ensure Docker builds locally: docker build .#### Database connection errors
`bash
Error: Can't reach database server
`
Solutions:
- Verify DATABASE_URL format
- Check if database server is running
- For local dev, ensure PostgreSQL/MySQL is installed
- For cloud databases, check firewall rules#### Authentication provider errors
`bash
Error: Invalid OAuth callback URL
`
Solutions:
- Update callback URLs in provider settings
- Ensure NEXTAUTH_URL matches your domain
- Check CLIENT_ID and CLIENT_SECRET are correct
- Verify redirect URIs include /api/auth/callback/[provider]#### Build failures
`bash
Error: Build optimization failed
`
Solutions:
- Check for TypeScript errors: yarn type-check
- Verify all dependencies are installed: yarn install
- Clear .next/dist folder: rm -rf .next dist
- Check for conflicting dependencies$3
#### Next.js
- Module not found: Check import paths and tsconfig.json paths
- Hydration errors: Ensure server and client render the same content
- API route errors: Verify route exports correct HTTP methods
#### Nuxt.js
- Nitro build errors: Clear
.nuxt folder and rebuild
- Auto-import issues: Check components are in correct directories
- Module conflicts: Review nuxt.config.ts for duplicate modules#### Remix
- Loader errors: Ensure loaders return Response or serializable data
- Action errors: Check form data parsing and validation
- Route conflicts: Verify no duplicate route files
Security
- All dependencies are regularly updated
- Security scanning via GitHub Dependabot
- OWASP compliance checks for generated applications
- Secrets management best practices enforced
License
MIT Ā© FDE Team
Acknowledgments
Built with ā¤ļø by Forward Deploy Engineers for Forward Deploy Engineers.
Special thanks to:
- The Next.js, Nuxt.js, and Remix teams for their amazing frameworks
- The open-source community for continuous inspiration
---
Complete Example: Building a Full-Stack App
Here's a complete walkthrough of creating a production-ready application:
$3
`bash
npx create-fde-app@latest taskmaster-pro
`Selections:
- Framework: Next.js
- Deployment: AWS App Runner
- Features: Docker, GitHub Actions, Terraform
- Augmentations: PostgreSQL, NextAuth.js, Sentry
$3
`bash
cd taskmaster-pro
cp .env.example .env
`Edit
.env:
`env
DATABASE_URL="postgresql://postgres:password@localhost:5432/taskmaster"
NEXTAUTH_SECRET="generate-with-openssl-rand-base64-32"
GITHUB_ID="your-github-oauth-app-id"
GITHUB_SECRET="your-github-oauth-app-secret"
SENTRY_DSN="your-sentry-project-dsn"
`$3
`bash
Start PostgreSQL (using Docker)
docker run -d --name taskmaster-db \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_DB=taskmaster \
-p 5432:5432 \
postgres:15-alpineRun migrations
yarn db:migrate
`$3
`bash
Start development server
yarn devIn another terminal, run Prisma Studio
yarn db:studio
`Visit:
- App: http://localhost:3000
- Database: http://localhost:5555
$3
`bash
Build and test locally
yarn build
yarn startTest Docker build
docker build -t taskmaster-pro .
docker run -p 3000:3000 --env-file .env taskmaster-pro
`$3
`bash
git init
git add .
git commit -m "Initial commit"
gh repo create taskmaster-pro --public
git push -u origin main
`$3
Add these secrets in GitHub repository settings:
`
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
DATABASE_URL=your-production-db-url
NEXTAUTH_SECRET=your-production-secret
GITHUB_ID=your-github-id
GITHUB_SECRET=your-github-secret
SENTRY_DSN=your-sentry-dsn
`$3
`bash
cd terraform
terraform init
terraform plan
terraform apply
`Save the output
apprunner_service_arn and add it as APPRUNNER_SERVICE_ARN in GitHub Secrets.$3
`bash
git push origin main
`GitHub Actions will:
1. Run tests
2. Build Docker image
3. Push to Amazon ECR
4. Deploy to App Runner
$3
- Application Logs: AWS CloudWatch
- Error Tracking: Sentry Dashboard
- Database: RDS Console
- Scaling: App Runner auto-scales based on traffic$3
- App: https://your-service.region.awsapprunner.com
- Health: https://your-service.region.awsapprunner.com/api/health`---
Created and maintained by BrainFiber Inc.
Need help?
- š Documentation
- š Report Issues
- š¬ Discussions
MIT Ā© BrainFiber Inc.