.do

Deploy

Deploy MDXLD applications to production

Deploy

Deploy your MDXLD applications to Cloudflare, Vercel, or Netlify with zero configuration.

Quick Deploy

Deploy to Cloudflare (default):

mdxe deploy

Deploy to specific platform:

mdxe deploy --target vercel
mdxe deploy --target netlify

Authentication

Using DO_TOKEN

Set your API token as an environment variable:

export DO_TOKEN=your-token-here
mdxe deploy

Using OAuth

Authenticate via OAuth.do:

mdxe login
mdxe deploy

OAuth provides secure authentication without storing tokens locally.

Deployment Options

Production Deployment

Deploy to production:

mdxe deploy --production

Custom Domain

Deploy with custom domain:

mdxe deploy --domain example.com

Preview Deployment

Deploy preview (default):

mdxe deploy

Preview deployments get a unique URL like https://preview-abc123.do

Cloudflare Workers

MDXLD deploys to Cloudflare Workers Static Assets (not Cloudflare Pages, which is deprecated).

mdxe deploy --target cloudflare

Features:

  • Global edge network
  • Instant cache purging
  • Automatic HTTPS
  • DDoS protection
  • Zero cold starts

See: Cloudflare Workers Static Assets

Build Before Deploy

The deploy command automatically builds your application:

mdxe deploy
# Runs: mdxe build
# Then: deploys to target platform

To build separately:

mdxe build
mdxe deploy --skip-build

Environment Variables

Set environment variables for deployment:

mdxe deploy --env DO_TOKEN=xxx --env API_URL=https://api.do

Or use .env file:

# .env
DO_TOKEN=your-token-here
API_URL=https://api.do

Deployment Targets

Cloudflare

mdxe deploy --target cloudflare
  • Edge computing platform
  • Global CDN
  • Static assets with Workers
  • Automatic SSL

Vercel

mdxe deploy --target vercel
  • Edge network
  • Automatic previews
  • Git integration
  • Serverless functions

Netlify

mdxe deploy --target netlify
  • Continuous deployment
  • Edge functions
  • Form handling
  • Identity management

Continuous Deployment

GitHub Actions

name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2
      - uses: actions/setup-node@v3
        with:
          node-version: 20
          cache: pnpm
      - run: pnpm install
      - run: pnpm test
      - run: mdxe deploy --production
        env:
          DO_TOKEN: ${{ secrets.DO_TOKEN }}

Publishing to .do Platform

Publish your MDX documents to the .do platform:

mdxdb publish

This makes your documents available via:

  • API: https://api.do/your-collection/your-doc
  • SDK: $.YourCollection.get('your-doc')
  • MCP: mcp.do/your-collection/your-doc

Publish Options

# Publish all documents
mdxdb publish

# Publish specific type
mdxdb publish --type BlogPost

# Publish as draft
mdxdb publish --draft

# Schedule publication
mdxdb publish --schedule "2024-12-25T00:00:00Z"

Rollback

Rollback to previous deployment:

mdxe rollback

List previous deployments:

mdxe deployments list

Rollback to specific deployment:

mdxe rollback abc123

Deployment Status

Check deployment status:

mdxe status

View deployment logs:

mdxe logs

Custom Build Configuration

Customize the build process:

// mdxe.config.ts
export default {
  build: {
    outDir: 'dist',
    minify: true,
    sourcemap: true,
    target: 'worker'
  },
  deploy: {
    target: 'cloudflare',
    domain: 'example.com'
  }
}

Post-Deploy Verification

After deployment, verify:

  1. Site loads: Visit deployment URL
  2. MDX renders: Check MDX documents display correctly
  3. Types work: Verify $type discrimination works
  4. API calls: Test calls to .do platform
  5. Authentication: Verify OAuth/token auth works

Troubleshooting

Build Fails

mdxe build --verbose

Deploy Fails

mdxe deploy --verbose --debug

Invalid Token

mdxe login  # Re-authenticate
mdxe deploy