Build and Deploy
Learn how to use ao-forge build
for production builds and deployment.
Overview
ao-forge provides a comprehensive build system that optimizes your application for production deployment.
Basic Build Commands
# Build for production
ao-forge build
# Build with specific framework
ao-forge build --framework nextjs
ao-forge build --framework nuxtjs
# Build with optimization
ao-forge build --optimize
# Build and deploy
ao-forge build --deploy
Build Configuration
Production Build
# Standard production build
ao-forge build
# This creates:
# - Optimized frontend bundle
# - Minified assets
# - Production-ready AO processes
# - Deployment artifacts
Build Options
# Custom output directory
ao-forge build --output ./dist
# Skip optimization
ao-forge build --no-optimize
# Include source maps
ao-forge build --source-maps
# Build specific processes only
ao-forge build --process counter,token
Framework-Specific Builds
Next.js Build
# Build Next.js application
ao-forge build --framework nextjs
# Build with static export
ao-forge build --framework nextjs --static
# Build with custom config
ao-forge build --framework nextjs --config ./next.config.js
Nuxt.js Build
# Build Nuxt.js application
ao-forge build --framework nuxtjs
# Build with static generation
ao-forge build --framework nuxtjs --static
# Build with custom config
ao-forge build --framework nuxtjs --config ./nuxt.config.ts
AO Process Build
Process Optimization
# Build AO processes
ao-forge build --process
# Optimize Lua code
ao-forge build --process --optimize
# Minify Lua files
ao-forge build --process --minify
Process Deployment
# Deploy processes to Arweave
ao-forge build --process --deploy
# Deploy with specific wallet
ao-forge build --process --deploy --wallet ./wallet.json
# Deploy to testnet
ao-forge build --process --deploy --testnet
Deployment Options
Static Deployment
# Build for static hosting
ao-forge build --static
# Deploy to Vercel
ao-forge build --deploy --platform vercel
# Deploy to Netlify
ao-forge build --deploy --platform netlify
# Deploy to GitHub Pages
ao-forge build --deploy --platform github
Server Deployment
# Build for server deployment
ao-forge build --server
# Deploy to Docker
ao-forge build --deploy --platform docker
# Deploy to AWS
ao-forge build --deploy --platform aws
# Deploy to GCP
ao-forge build --deploy --platform gcp
Build Configuration
ao.config.yml
# Build configuration
build:
output: './dist'
optimize: true
sourceMaps: false
minify: true
# Process configuration
processes:
- name: 'counter'
file: './ao/counter.lua'
optimize: true
- name: 'token'
file: './ao/token.lua'
optimize: true
# Deployment configuration
deploy:
platform: 'vercel'
environment: 'production'
domain: 'my-app.vercel.app'
Environment-Specific Builds
Development Build
# Development build
ao-forge build --env development
# With debugging
ao-forge build --env development --debug
Staging Build
# Staging build
ao-forge build --env staging
# With staging configuration
ao-forge build --env staging --config ./config/staging.yml
Production Build
# Production build
ao-forge build --env production
# With production optimization
ao-forge build --env production --optimize
Build Optimization
Frontend Optimization
- Code splitting - Automatic code splitting for better performance
- Tree shaking - Remove unused code
- Minification - Compress JavaScript and CSS
- Asset optimization - Optimize images and fonts
- Bundle analysis - Analyze bundle size
AO Process Optimization
- Lua minification - Remove whitespace and comments
- Dead code elimination - Remove unused functions
- Constant folding - Optimize constant expressions
- Function inlining - Inline small functions
Deployment Platforms
Vercel
# Deploy to Vercel
ao-forge build --deploy --platform vercel
# With custom domain
ao-forge build --deploy --platform vercel --domain my-app.com
Netlify
# Deploy to Netlify
ao-forge build --deploy --platform netlify
# With custom build command
ao-forge build --deploy --platform netlify --build-command "ao-forge build"
GitHub Pages
# Deploy to GitHub Pages
ao-forge build --deploy --platform github
# With custom branch
ao-forge build --deploy --platform github --branch gh-pages
Docker
# Build Docker image
ao-forge build --deploy --platform docker
# With custom Dockerfile
ao-forge build --deploy --platform docker --dockerfile ./Dockerfile
Build Scripts
package.json Scripts
{
"scripts": {
"build": "ao-forge build",
"build:prod": "ao-forge build --env production",
"build:staging": "ao-forge build --env staging",
"deploy": "ao-forge build --deploy",
"deploy:vercel": "ao-forge build --deploy --platform vercel",
"deploy:netlify": "ao-forge build --deploy --platform netlify"
}
}
CI/CD Integration
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- run: npm ci
- run: ao-forge build --deploy
Best Practices
Build Optimization
- Use production builds for deployment
- Enable optimization for better performance
- Minify assets to reduce bundle size
- Use source maps for debugging
- Test builds before deployment
Deployment
- Use staging environment for testing
- Automate deployment with CI/CD
- Monitor deployment status
- Rollback quickly if issues occur
- Use CDN for static assets
AO Processes
- Optimize Lua code before deployment
- Test processes thoroughly
- Use proper error handling
- Monitor process performance
- Backup important data
Troubleshooting
Common Issues
- Build fails
# Check for errors ao-forge build --verbose # Clean build ao-forge build --clean
- Deployment fails
# Check deployment status ao-forge deploy --status # Retry deployment ao-forge deploy --retry
- Process deployment fails
# Check process status ao-forge process --status # Validate process ao-forge process --validate
Getting Help
# Get help with build commands
ao-forge build --help
# Check build status
ao-forge build --status
# View build logs
ao-forge build --logs