AI-Generated Reports — Deploy to a Shareable URL
Let your AI agent generate an HTML report from data and deploy it instantly to a public URL with deplo.sh.
Your AI analyzes data, builds a polished HTML report, and deploys it — all in one conversation. No manual steps, no infrastructure.
The workflow
Data (CSV, JSON, DB query) → AI generates HTML report → deplo deploy → Share the URLWith Claude Desktop (MCP)
Just ask:
Here's our Q1 sales data. Generate a professional HTML report with charts and deploy it so I can share it with the board.
Revenue: Jan $42k, Feb $58k, Mar $63k Costs: Jan $31k, Feb $35k, Mar $38k New customers: Jan 120, Feb 145, Mar 189
Claude will:
- Build an HTML page with inline CSS and chart.js
- Call the deplo
deploytool - Return a URL like
https://q1-sales-report.deplo.sh
Send that link to your team — no attachments, no PDFs to download.
With the TypeScript SDK
Build report generation into your own scripts:
import { DeploClient } from '@deplo/typescript-sdk';
import { generateReport } from './report-builder'; // your logic
const client = new DeploClient({ apiKey: process.env.DEPLO_KEY! });
// 1. Pull data
const data = await fetch('https://api.internal.com/metrics').then(r => r.json());
// 2. Generate HTML report
const html = generateReport({
title: 'Weekly Infrastructure Report',
metrics: data,
generatedAt: new Date().toISOString(),
});
// 3. Deploy
const { url } = await client.deploy({
project: 'infra-report',
files: [{ path: 'index.html', content: html, encoding: 'utf8' }],
ttl: '7d',
});
console.log(`Report live at: ${url}`);
// → Report live at: https://infra-report.deplo.shRun this on a cron job to publish weekly reports automatically.
With the CLI
Pipe HTML from any tool into deplo:
# Generate report with Python, deploy with deplo
python generate_report.py --format html | deplo deploy - \
--project weekly-report --ttl 7d
# Or from a file
deplo deploy report.html --project monthly-metrics --ttl 30dReal-world examples
| Scenario | What the AI generates | TTL |
|---|---|---|
| Board meeting report | Revenue charts, KPI tables, trend analysis | 30d |
| Sprint retrospective | Velocity charts, burndown, ticket summaries | 14d |
| Incident postmortem | Timeline, root cause analysis, action items | 90d |
| A/B test results | Conversion funnels, statistical significance | 7d |
| Daily standup summary | Auto-generated from Jira/Linear tickets | 24h |
| CI/CD build report | Test results, coverage, deploy artifacts | 7d |
Multi-file reports
Deploy reports with separate CSS and assets:
const { url } = await client.deploy({
project: 'detailed-report',
files: [
{ path: 'index.html', content: htmlContent, encoding: 'utf8' },
{ path: 'styles.css', content: cssContent, encoding: 'utf8' },
{ path: 'chart-data.json', content: JSON.stringify(chartData), encoding: 'utf8' },
],
ttl: '30d',
});Automatic updates
Redeploying to the same project updates the report at the same URL:
# Monday's report
python generate_report.py | deplo deploy - --project weekly-report
# Friday's report — same URL, fresh data
python generate_report.py | deplo deploy - --project weekly-reportYour team always bookmarks one URL and sees the latest version.
What's next?
- Deploy a PDF — generate and share PDF documents
- Slack notification workflow — post deploy URLs to Slack automatically
- Deploy from Claude Desktop — zero-config MCP setup
- Core Concepts — understand projects, versions, and TTL