surge.sh as
surge.sh · Storage · 2 records · JSON
- Surge.sh Storagecaveatanonymousno cardRper-object-cap
- surge.sh as a bulk archive (naive) Storagefails: quotaemail?card?R
Surge.sh Storage
caveatanonymousno cardRper-object-cap
| Free tier | Free plan: unlimited projects and unlimited publishes; each project capped at 450 MB and 10,100 files. No account-level byte quota. unit objects; metered on unstated |
|---|---|
| Price | none stated |
| Per-object cap | no per-file cap documented but it inherits the project cap |
| Retention | not stated |
| Egress | No bandwidth quota or metering is documented anywhere on the free plan; every project is served from all 10 of Surge's own edge nodes ('Every project—free or paid—serves from all of them'). |
| Identity | anonymous derived from the record's prose, not from an identity field, and no signup was executed: publishes; each project capped at 450 MB and 10,100 files. No account-level byte quota. Deploy is full-replace, not incremental — a slow link makes each publish expensive. Free tier has |
| Limits |
450 MB and 10,100 files per project (hard: 'Aborted - Unable to publish. Application too large'); no bandwidth figure published; no per-file cap documented but it inherits the project cap. Re-publishing replaces the whole project (full-sync deploy), so appending one file re-uploads the directory. |
| Binding | per-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota |
| Interface | rest, cli rest |
| Tooling | Official surge CLI (npm, ~free) and a documented raw REST deploy API: PUT /:domain with Basic auth, Content-Type: application/gzip, a gzipped tarball body plus file-count and project-size headers. That is directly scriptable, no CLI needed. |
| Composes with | Unlimited projects x 450 MB = arbitrary total per account; unlimited free accounts (email+password in-terminal, no card). 20 TiB archive = ~45,500 projects of 450 MB. Sharding is natural because each project is just a folder. |
| Reliability | Deploy is full-replace, not incremental — a slow link makes each publish expensive. Free tier has no stated SLA and no published bandwidth ceiling, so behaviour at 1 TiB/day is unproven. |
| Notes | Free plan: unlimited projects and unlimited publishes; each project capped at 450 MB and 10,100 files. No account-level byte quota. |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
| Parsed numbers |
|
Evidence (4)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | surge.sh/docs/cli/publishing | 'Projects are limited to 10,100 files and 450 MB.' |
| 2026-10-21 | surge.sh/docs/platform/plans | 'The core of Surge costs nothing, without trial windows or project caps: Unlimited projects and publishes' |
| 2026-10-21 | surge.sh/docs/api/deploys | 'PUT /:domain ... The body is a gzipped tar archive ... file-count / project-size headers' |
| 2026-10-21 | surge.sh/ | probe: curl -D - -> HTTP/1.1 200, Server: cloudflare, Accept-Ranges: bytes (edge is CF-fronted) |
Unknown or withheld values (4)
$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.retention.notesnot-extracted$.retention.statednot-extracted
surge.sh as a bulk archive (naive) Storage
fails: quotaemail?card?R
| Free tier | 450 MB / 10,100 files per project and every publish is a full gzipped-tarball replace, so a 450 MB project costs 450 MB of upload per change. Only viable if projects are written once and sha unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | 450 MB / 10,100 files per project and every publish is a full gzipped-tarball replace, so a 450 MB project costs 450 MB of upload per change. Only viable if projects are written once and sha |
| Notes | 450 MB / 10,100 files per project and every publish is a full gzipped-tarball replace, so a 450 MB project costs 450 MB of upload per change. Only viable if projects are written once and sha |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | surge.sh/docs/cli/publishing | 450 MB / 10,100 files per project and every publish is a full gzipped-tarball replace, so a 450 MB project costs 450 MB of upload per change. Only viable if projects are written once and sha |
| 2026-10-21 | surge.sh/docs/api/deploys | cited as the basis of the rejection: 450 MB / 10,100 files per project and every publish is a full gzipped-tarball replace, so a 450 MB project costs 450 MB of upload per change. Only viable if projects are written once and sha |
More fields (1)
{
"dead_end": {
"failure_class": "quota",
"why": "450 MB / 10,100 files per project and every publish is a full gzipped-tarball replace, so a 450 MB project costs 450 MB of upload per change. Only viable if projects are written once and sha",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded