fshy

fshy / Storage

surge.sh as

surge.sh · Storage · 2 records · JSON

Surge.sh Storage

caveatanonymousno cardRper-object-cap

surge.sh · paas · storage/surge-sh · JSON · compare

Free tierFree 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
Pricenone stated
Per-object capno per-file cap documented but it inherits the project cap
Retentionnot stated
EgressNo 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').
Identityanonymous 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
  • per-ip-shaping 1 TiB/day source
  • write-gated Application too large') source
  • per-object-cap no per-file cap documented but it inherits the project cap source
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.
Bindingper-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
Interfacerest, cli rest
ToolingOfficial 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 withUnlimited 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.
ReliabilityDeploy 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.
NotesFree plan: unlimited projects and unlimited publishes; each project capped at 450 MB and 10,100 files. No account-level byte quota.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[0].value limit:per-ip-shaping 1.0 TiB / day
Evidence (4)
datesourcewhat it proved
2026-10-21surge.sh/docs/cli/publishing'Projects are limited to 10,100 files and 450 MB.'
2026-10-21surge.sh/docs/platform/plans'The core of Surge costs nothing, without trial windows or project caps: Unlimited projects and publishes'
2026-10-21surge.sh/docs/api/deploys'PUT /:domain ... The body is a gzipped tar archive ... file-count / project-size headers'
2026-10-21surge.sh/probe: curl -D - -> HTTP/1.1 200, Server: cloudflare, Accept-Ranges: bytes (edge is CF-fronted)
Unknown or withheld values (4)
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted

surge.sh as a bulk archive (naive) Storage

fails: quotaemail?card?R

surge.sh/docs/cli/publishing · rejected-provider · storage/surge-sh-as-a-bulk-archive · JSON · compare

Free tier450 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
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
Reliability450 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
Notes450 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 rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21surge.sh/docs/cli/publishing450 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-21surge.sh/docs/api/deployscited 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)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded