Deployment Overview
Deploying Juntos Applications
Juntos applications can deploy to any JavaScript runtime. Choose based on your needs.
Table of Contents
Deployment Targets
| Target | Best For | Database Options |
|---|---|---|
| Browser | Offline-first, demos, local-first | Dexie, sql.js, PGlite |
| Node.js | Traditional hosting, VPS, containers | SQLite, PostgreSQL, MySQL |
| Vercel | Serverless, global edge, auto-scaling | Neon, Turso, PlanetScale |
| Cloudflare | Edge computing, D1, maximum distribution | D1, Turso |
Quick Comparison
| Aspect | Browser | Node.js | Vercel | Cloudflare |
|---|---|---|---|---|
| Infrastructure | None (static) | Server/container | Serverless | Serverless |
| Scaling | N/A | Manual | Automatic | Automatic |
| Cold starts | None | N/A | ~50-250ms | ~5-50ms |
| Database | Client-side | TCP/file | HTTP APIs | D1 binding |
| Cost model | Hosting only | Server time | Per-request | Per-request |
Choosing a Target
Choose Browser if:
- Your app works offline
- Data stays on the user’s device
- You want zero infrastructure
Choose Node.js if:
- You need traditional server capabilities
- You’re self-hosting or using containers
- You need TCP database connections
Choose Vercel if:
- You want serverless with PostgreSQL/MySQL
- You need Git-based deployments
- You’re already in the Vercel ecosystem
Choose Cloudflare if:
- You want SQLite simplicity at scale
- You need maximum global distribution
- You’re already using Cloudflare
Default Target Inference
When you don’t specify a target, Juntos infers it from your database:
bin/juntos up -d dexie # → browser
bin/juntos up -d sqlite # → node
bin/juntos up -d neon # → vercel
bin/juntos up -d d1 # → cloudflare
Override with -t:
bin/juntos up -t node -d neon # Force Node.js with Neon