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

  1. Use production builds for deployment
  2. Enable optimization for better performance
  3. Minify assets to reduce bundle size
  4. Use source maps for debugging
  5. Test builds before deployment

Deployment

  1. Use staging environment for testing
  2. Automate deployment with CI/CD
  3. Monitor deployment status
  4. Rollback quickly if issues occur
  5. Use CDN for static assets

AO Processes

  1. Optimize Lua code before deployment
  2. Test processes thoroughly
  3. Use proper error handling
  4. Monitor process performance
  5. Backup important data

Troubleshooting

Common Issues

  1. Build fails
    # Check for errors
    ao-forge build --verbose
    
    # Clean build
    ao-forge build --clean
    
  2. Deployment fails
    # Check deployment status
    ao-forge deploy --status
    
    # Retry deployment
    ao-forge deploy --retry
    
  3. 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