Recipes
Deploy Any File Type
deplo.sh isn't just for websites — deploy CSVs, images, log files, markdown, and any other artifact to a shareable URL.
deplo.sh deploys any file to a URL. Not just HTML sites — CSV exports, images, log files, JSON data, PDFs, markdown documents, and anything else your workflow produces.
Supported file types
| Type | Example use case | Content-Type served |
|---|---|---|
| HTML | Reports, dashboards, landing pages | text/html |
| JSON | Mock APIs, config snapshots, data exports | application/json |
| Invoices, contracts, certificates | application/pdf | |
| CSV | Data exports, spreadsheet downloads | text/csv |
| Images | Screenshots, generated charts, diagrams | image/png, image/jpeg, etc. |
| Markdown | Documentation, READMEs, notes | text/markdown |
| Plain text | Logs, scripts, config files | text/plain |
| ZIP | Bundled artifacts, code packages | application/zip |
| XML | Feeds, SOAP responses, sitemaps | application/xml |
CLI examples
# Deploy a CSV data export
deplo deploy users-export.csv --project user-data --ttl 7d
# Deploy a screenshot
deplo deploy screenshot.png --project bug-screenshot --ttl 24h
# Deploy log files for debugging
deplo deploy app.log --project debug-logs --ttl 12h
# Deploy a markdown document
deplo deploy README.md --project project-docs --ttl 30d
# Deploy a ZIP archive
deplo deploy build-artifacts.zip --project release-v2 --ttl 90dTypeScript SDK
Deploy a CSV
import { DeploClient } from '@deplo/typescript-sdk';
const client = new DeploClient({ apiKey: process.env.DEPLO_KEY! });
const csvData = `name,email,role,joined
Alice,[email protected],admin,2024-01-15
Bob,[email protected],editor,2024-03-22
Charlie,[email protected],viewer,2024-06-01`;
const { url } = await client.deploy({
project: 'team-roster',
files: [{ path: 'team.csv', content: csvData, encoding: 'utf8' }],
ttl: '30d',
});
// → https://team-roster.deplo.sh/team.csvDeploy an image (binary file)
import { readFileSync } from 'fs';
const imageBuffer = readFileSync('./chart.png');
const { url } = await client.deploy({
project: 'weekly-chart',
files: [{
path: 'chart.png',
content: imageBuffer.toString('base64'),
encoding: 'base64',
}],
ttl: '7d',
});
// → https://weekly-chart.deplo.sh/chart.pngDeploy multiple file types together
const { url } = await client.deploy({
project: 'data-export',
files: [
{ path: 'index.html', content: summaryPage, encoding: 'utf8' },
{ path: 'data.csv', content: csvExport, encoding: 'utf8' },
{ path: 'data.json', content: JSON.stringify(jsonExport), encoding: 'utf8' },
{ path: 'chart.png', content: chartBase64, encoding: 'base64' },
],
ttl: '14d',
});
// index.html can link to all the other filesWith Claude Desktop (MCP)
Ask your AI to deploy non-site files:
Export this data as a CSV and deploy it so I can share the download link:
Name: Alice, Role: Admin, Department: Engineering Name: Bob, Role: Editor, Department: Marketing
Take this error log and deploy it so the on-call engineer can review it: [paste log output]
Generate a PNG chart of our monthly signups and deploy it.
Ephemeral artifacts
Use TTL to auto-clean temporary files:
# Debug logs — expire in 12 hours
deplo deploy debug.log --project debug-session-42 --ttl 12h
# CI test results — expire in 3 days
deplo deploy test-results.xml --project ci-run-1234 --ttl 3d
# Temporary data share — expire in 1 hour
deplo deploy dataset.csv --project quick-share --ttl 1hWhat's next?
- AI-generated reports — deploy HTML reports with charts
- Generate and deploy PDFs — invoices, contracts, certificates
- Ship a JSON mock API — deploy data as a REST endpoint
- Core Concepts — understand deployment types and TTL