@deplo/typescript-sdk
v0.2.0
Published
TypeScript SDK for deplo.sh — deploy files and sites from code
Maintainers
Readme
@deplo/typescript-sdk
Typed, promise-based TypeScript SDK for deplo.sh — deploy files, sites, and JSON APIs from code.
Why deplo.sh?
Your agent or application generates output — HTML reports, JSON data, dashboards, PDFs. Getting that output to a live URL typically means configuring S3 buckets, CloudFront distributions, TLS certificates, and DNS records. Or setting up a Git repo with Vercel/Netlify and pushing through a build pipeline.
deplo.sh reduces all of that to one function call:
const { url } = await client.deploy({
project: 'weekly-report',
files: [{ path: 'index.html', content: html, encoding: 'utf8' }],
});
// → https://weekly-report.deplo.sh — live, TLS, CDNWhy the SDK over manual API calls?
| | @deplo/typescript-sdk | Raw fetch/axios |
| ----------------------- | -------------------------------------------------- | -------------------------------- |
| Type safety | Full TypeScript types for all params and responses | You write your own interfaces |
| Error handling | DeploError with typed status and code | Manual HTTP status parsing |
| Convenience methods | deployDir(), deployJSON() | Build multipart uploads yourself |
| Auto-retry | Built-in retry on transient failures | Implement your own |
Why deplo.sh over traditional hosting?
| | deplo.sh | S3 + CloudFront | Vercel/Netlify |
| ------------------ | ----------------------------------- | ----------------------------------- | -------------------------------- |
| Deploy method | One API call | 5+ AWS API calls | Git push + build pipeline |
| Config | Zero | Bucket policies, CORS, ACM, Route53 | vercel.json + framework config |
| Time to URL | < 5 seconds | Minutes | Minutes |
| Git required | No | No | Yes |
| Agent-friendly | Yes — designed for programmatic use | Possible but complex | No |
Install
npm install @deplo/typescript-sdkQuick start
import { DeploClient } from '@deplo/typescript-sdk';
const client = new DeploClient({
apiKey: process.env.DEPLO_KEY!,
});
// Deploy a single file
const dep = await client.deploy({
project: 'weekly-report',
type: 'static_file',
files: [{ path: 'index.html', content: '<h1>Hello</h1>', encoding: 'utf8' }],
ttl: '7d',
});
console.log(dep.url); // https://weekly-report.deplo.sh
// Deploy a directory
const site = await client.deployDir('./dist', {
project: 'my-app',
type: 'static_site',
ttl: 'forever',
});
// Deploy JSON as a live API
const api = await client.deployJSON(data, {
project: 'enriched-leads',
ttl: '24h',
});
// GET https://enriched-leads.deplo.sh → returns data as JSONReal-world use cases
- AI agents that generate reports and need to share them via URL
- CI/CD pipelines that publish test coverage or build artifacts
- Internal tools that create ad-hoc dashboards and status pages
- Prototyping — ship a landing page in seconds, no repo needed
API Reference
See the full SDK documentation for:
- Project management (
client.projects.list(),.create(),.delete()) - Deployment management (
client.deployments.list(),.promote(),.archive()) - Error handling with
DeploError - All TypeScript type exports
Links
- Documentation
- CLI — for terminal and CI/CD
- REST API Reference
- Website
License
MIT
