Getting Started
What is EZLaunch?
EZLaunch is a static site hosting platform built for AI-generated websites. If you built your site with Claude Code, Cursor, Bolt, v0, Lovable, or any other AI coding tool — EZLaunch is where it lives.
Every site gets a free subdomain (yoursite.ezlaunch.app), automatic SSL, built-in analytics, and a form backend. No servers, no config, no DevOps.
What EZLaunch supports
- ✓ HTML, CSS, JavaScript
- ✓ Single-page apps (React build output, Vue build output)
- ✓ Static site generators (Astro, Hugo, Jekyll, Eleventy, Gatsby — export only)
- ✓ Next.js with
output: 'export' - ✗ Next.js SSR / Server Components
- ✗ PHP, Python, Ruby, or any server-side language
- ✗ Databases or backend APIs
Quick start
Option A — Upload a ZIP
- Go to app.ezlaunch.app and create an account
- Click "New Project"
- Enter a project name — this becomes your subdomain
- Drag and drop your ZIP file (max 50MB on free plan)
- Your site is live at
yourname.ezlaunch.app
Option B — CLI
npm install -g ezlaunch
ezlaunch login
cd my-site
ezlaunch deploy
# ✓ Live at my-site.ezlaunch.app
Option C — GitHub
- Click "New Project" → select GitHub tab
- Paste your public GitHub repo URL
- Select branch (default:
main) - Click Deploy
Supported file types
| File type | Extension |
|---|---|
| HTML | .html |
| CSS | .css |
| JavaScript | .js |
| JSON | .json |
| Images | .png .jpg .gif .svg .webp .ico |
| Fonts | .woff .woff2 .ttf |
.pdf |
Note: Any other file type is ignored during upload for security reasons.
Deploy
Upload a ZIP
Your ZIP file should contain your site files at the root level — not inside a subfolder.
✓ Correct structure:
mysite.zip
├── index.html
├── css/
│ └── styles.css
└── images/
└── logo.png
✗ Wrong structure (files inside a folder):
mysite.zip
└── mysite/
├── index.html
└── css/
Max file sizes per plan
| Plan | Max ZIP size |
|---|---|
| Free | 50MB |
| Starter | 100MB |
| Pro | 500MB |
| Agency | 1GB |
Connect GitHub
EZLaunch can clone any public GitHub repository and serve it as a static site.
- Click "New Project" → GitHub tab
- Paste the full repo URL:
https://github.com/username/repo - Enter the branch name (default:
main) - Click Deploy
Redeploying: When you push changes to GitHub, go to your project dashboard and click "Redeploy". EZLaunch will re-clone the latest commit and update your site.
Note: Only public repositories are supported. Private repo support is coming soon.
Using the CLI
The EZLaunch CLI lets you deploy directly from your terminal.
Install
npm install -g ezlaunch
Login
ezlaunch login
# Opens your browser to authenticate
# ✓ Logged in as you@email.com
Deploy
cd my-project
ezlaunch deploy
# Or with a custom name:
ezlaunch deploy --name my-portfolio
Other commands
| Command | Description |
|---|---|
ezlaunch list | List all your projects |
ezlaunch open | Open the most recent deploy in your browser |
ezlaunch whoami | Show logged in account |
ezlaunch logout | Log out |
.ezlaunchignore
Create a .ezlaunchignore file to exclude files from deployment (same syntax as .gitignore):
node_modules/
.env
*.log
.DS_Store
Forms
How forms work
EZLaunch provides a form backend for your static site. When a visitor submits a form, the data is stored in your EZLaunch dashboard and optionally sent to your email or a webhook.
No JavaScript required — standard HTML forms work out of the box.
Adding data-ezlaunch
Add the data-ezlaunch attribute to any <form> tag and give it a name:
<form data-ezlaunch name="contact">
<input name="name" type="text" placeholder="Your name" required>
<input name="email" type="email" placeholder="Your email" required>
<textarea name="message" placeholder="Message" required></textarea>
<button type="submit">Send</button>
</form>
Then go to your project dashboard → Forms tab → click "Scan for forms". EZLaunch will detect the form and wire up the endpoint automatically.
How it works under the hood
EZLaunch injects an action attribute pointing to https://ezlaunch.app/api/forms/{formId} and a hidden honeypot field for spam protection. You don't need to add these manually.
Anti-spam
EZLaunch automatically filters spam using:
- Honeypot field (hidden input bots fill out)
- Rate limiting (max 5 submissions per IP per 10 minutes)
Viewing submissions
Go to your project → Forms tab. Click any form to see its submissions. Each submission shows the date, all field values, and whether it was flagged as spam.
Export submissions as CSV from the submissions panel.
Webhooks
Send form submissions to any URL in real time.
In your form settings (Forms tab → Edit form):
- Webhook URL: The endpoint to POST to (e.g.
https://hooks.zapier.com/...) - Webhook Secret: Optional. Used to verify the request with HMAC-SHA256.
Payload format:
{
"event": "form.submission",
"form": { "id": "uuid", "name": "contact" },
"entry": { "name": "John", "email": "john@example.com" },
"submitted_at": "2026-05-16T12:00:00Z"
}
Verifying the signature:
const crypto = require('crypto')
const signature = req.headers['x-webhook-signature']
const expected = 'sha256=' + crypto
.createHmac('sha256', YOUR_SECRET)
.update(JSON.stringify(req.body))
.digest('hex')
if (signature !== expected) return res.status(401).send('Invalid signature')
Analytics
How analytics work
Every site on EZLaunch automatically tracks pageviews, unique visitors, bounce rate, and average visit duration. No setup required — analytics are enabled on all plans.
Data is powered by Umami, a privacy-friendly analytics platform. No cookies, no personal data collected, GDPR compliant.
View your analytics at: Project dashboard → Analytics tab
Tracking & domains
Analytics are tracked per subdomain. If you have a custom domain connected, analytics will automatically track under that domain once DNS is verified.
Custom Domains
Connecting a domain
- Go to Project → Settings → Custom Domain
- Enter your domain (e.g.
mysite.com) - Click Save
- Add an A record to your DNS provider:
| Type | Name | Value | TTL |
|---|---|---|---|
| A | @ | 87.99.143.176 | Auto |
- Click "Check DNS" — EZLaunch will verify the record automatically
- Once verified, SSL provisions in under 2 minutes
Note: DNS propagation can take up to 24 hours, though it usually happens within 5 minutes.
SSL & verification
SSL certificates are provisioned automatically using Let's Encrypt via Caddy's On-Demand TLS. The first visitor to your custom domain triggers the certificate generation — subsequent visitors get instant HTTPS.
You don't need to renew certificates. EZLaunch handles renewal automatically.
AI SEO
Using the SEO optimizer
The AI SEO optimizer analyzes your HTML and suggests improvements to help your site rank better in search engines.
Available on: Starter, Pro, and Agency plans.
How to use
- Go to Project → Files
- Click any
.htmlfile to open the code editor - Click the "AI SEO" button in the toolbar
- EZLaunch analyzes your HTML and returns a score + issue list
- Click "Apply fix" on any issue to apply it directly
- Click "Save changes" to push the updated file to your site
What it checks
- Page title (missing, too short, too long)
- Meta description
- Open Graph tags (
og:title,og:description,og:image) - Heading structure (missing h1, multiple h1s)
- Image alt attributes
- Lang attribute on
<html> - Canonical URL
- Viewport meta tag
Usage limits
| Plan | Analyses per month |
|---|---|
| Free | Not available |
| Starter | 10 |
| Pro | 50 |
| Agency | 200 |
Plans & Billing
Plan comparison
| Feature | Free | Starter | Pro | Agency |
|---|---|---|---|---|
| Price | $0 | $5/mo | $10/mo | $19/mo |
| Sites | 2 | 5 | 20 | Unlimited |
| Storage | 500MB | 2GB | 10GB | 50GB |
| Custom domains | — | 1 | 5 | Unlimited |
| Form submissions/mo | 100 | 1,000 | Unlimited | Unlimited |
| AI SEO analyses/mo | — | 10 | 50 | 200 |
| Max ZIP size | 50MB | 100MB | 500MB | 1GB |
| Support | Community | Priority | White-glove |
Annual plans save 2 months: Starter $40/yr · Pro $100/yr · Agency $190/yr
Upgrading & canceling
Upgrade: Go to Settings → Billing → click Upgrade. You'll be redirected to Stripe Checkout. Your plan activates immediately after payment.
Manage subscription: Settings → Billing → Manage subscription. From the Stripe portal you can update your payment method, view invoices, or cancel.
Canceling: You can cancel anytime from the Stripe portal. Your plan stays active until the end of the current billing period, then reverts to Free.
Refunds: We don't offer refunds, but you can cancel before your next billing date to avoid future charges.