Deplo
Recipes

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 URL

With 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:

  1. Build an HTML page with inline CSS and chart.js
  2. Call the deplo deploy tool
  3. 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.sh

Run 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 30d

Real-world examples

ScenarioWhat the AI generatesTTL
Board meeting reportRevenue charts, KPI tables, trend analysis30d
Sprint retrospectiveVelocity charts, burndown, ticket summaries14d
Incident postmortemTimeline, root cause analysis, action items90d
A/B test resultsConversion funnels, statistical significance7d
Daily standup summaryAuto-generated from Jira/Linear tickets24h
CI/CD build reportTest results, coverage, deploy artifacts7d

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-report

Your team always bookmarks one URL and sees the latest version.

What's next?

On this page