/
Documentation

Deployment

Deploy your add-on to production hosting. Any platform that serves HTTPS works.

HTTPS required

SyncBooks will NOT load add-ons over HTTP. Your Launch URL must use HTTPS in production.

Vercel (Recommended — Free)

1

Install Vercel CLI

Terminal
npm install -g vercel
2

Build and deploy

Terminal
npm run build
vercel deploy --prod

Follow the prompts. Your URL will be something like: https://my-addon.vercel.app

3

Connect to GitHub (auto-deploy)

Link your GitHub repo to Vercel. Every push to main auto-deploys. Every PR gets a preview URL.

Netlify

Terminal
npm run build
npx netlify deploy --prod --dir dist

Railway

Terminal
# Push to GitHub, then connect to Railway
railway init
railway up

Self-Hosted (Nginx)

Terminal
# Build
npm run build

# Copy dist/ to your server
scp -r dist/ user@server:/var/www/my-addon/

# Nginx config
server {
    listen 443 ssl;
    server_name my-addon.example.com;
    root /var/www/my-addon;
    index index.html;
    
    location / {
        try_files $uri $uri/ /index.html;
    }
}

Environment Variables

If your add-on has a backend (webhook server, external APIs), you may need env vars:

Vercel Dashboard → Settings → Environment Variables
# Example environment variables
WHATSAPP_API_KEY=sk_live_123456
WEBHOOK_SECRET=my_webhook_secret
DATABASE_URL=mongodb+srv://...

Static add-ons don't need env vars

If your add-on only uses the SyncBooks SDK (no external backend), you don't need any environment variables. The SDK handles authentication via the session token.

Performance Tips

  • Keep bundle size small — aim for <200KB gzipped. Users wait for your iframe to load.
  • Lazy-load heavy dependencies — chart libraries, PDF generators, etc.
  • Use code splitting — Vite does this automatically for dynamic imports.
  • Target load time <3 seconds — slow add-ons get poor reviews.

After Deployment

Once deployed, update your add-on's Launch URL in the marketplace:

  1. Go to /developers → Marketplace Add-ons
  2. Click Edit on your add-on
  3. Set Launch URL to your production URL
  4. Save

Next Steps