{"eid":"surge","name":"surge.sh as","domain":"surge.sh","resolved_by":"domain","topics":["storage"],"n_records":2,"best_vorder":1,"review":null,"aliases":["Surge.sh","surge.sh","surge.sh as","surge.sh as a bulk archive (naive)"],"records":[{"rid":"storage/surge-sh","card":{"rid":"storage/surge-sh","eid":"surge","topic":"storage","slug":"surge-sh","provider":"Surge.sh","url":"https://surge.sh","domain":"surge.sh","category":"paas","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"per-object-cap","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest,cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":4,"usd_month":null,"usd_per_tb_month":null,"summary":"Free plan: unlimited projects and unlimited publishes; each project capped at 450 MB and 10,100 files. No account-level byte quota.","duplicate_of":null,"n_unknown":4},"record":{"topic":"storage","slug":"surge-sh","provider":"Surge.sh","url":"https://surge.sh","category":"paas","free_tier":{"stated":"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","source_url":"https://surge.sh/docs/cli/publishing","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"no per-file cap documented but it inherits the project cap","source_url":"https://surge.sh/docs/cli/publishing","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://surge.sh/docs/cli/publishing","notes":"not stated"},"egress":{"terms":"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').","metered":false},"interface":["rest","cli"],"interface_detail":"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.","chaining":"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.","limits":[{"kind":"per-ip-shaping","value":"1 TiB/day","source":"https://surge.sh/docs/cli/publishing"},{"kind":"write-gated","value":"Application too large')","source":"https://surge.sh/docs/cli/publishing"},{"kind":"per-object-cap","value":"no per-file cap documented but it inherits the project cap","source":"https://surge.sh/docs/cli/publishing"}],"limits_note":"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.","identity_cost":{"kind":"anonymous","detail":"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","country":null},"reliability_note":"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.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://surge.sh/docs/cli/publishing","date":"2026-10-21","proved":"'Projects are limited to 10,100 files and 450 MB.'"},{"url":"https://surge.sh/docs/platform/plans","date":"2026-10-21","proved":"'The core of Surge costs nothing, without trial windows or project caps: Unlimited projects and publishes'"},{"url":"https://surge.sh/docs/api/deploys","date":"2026-10-21","proved":"'PUT /:domain ... The body is a gzipped tar archive ... file-count / project-size headers'"},{"url":"https://surge.sh/","date":"2026-10-21","proved":"probe: curl -D - -> HTTP/1.1 200, Server: cloudflare, Accept-Ranges: bytes (edge is CF-fronted)"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"Free plan: unlimited projects and unlimited publishes; each project capped at 450 MB and 10,100 files. No account-level byte quota.","extras":{},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":450.0,"unit":"MB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-ip-shaping","num":1.0,"unit":"TiB","per":"day","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:write-gated","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[2].value","kind":"limit:per-object-cap","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/surge-sh-as-a-bulk-archive","card":{"rid":"storage/surge-sh-as-a-bulk-archive","eid":"surge","topic":"storage","slug":"surge-sh-as-a-bulk-archive","provider":"surge.sh as a bulk archive (naive)","url":"https://surge.sh/docs/cli/publishing","domain":"surge.sh","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"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 ...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"surge-sh-as-a-bulk-archive","provider":"surge.sh as a bulk archive (naive)","url":"https://surge.sh/docs/cli/publishing","category":"rejected-provider","free_tier":{"stated":"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","source_url":"https://surge.sh/docs/cli/publishing","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://surge.sh/docs/cli/publishing","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://surge.sh/docs/cli/publishing","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"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","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://surge.sh/docs/cli/publishing","date":"2026-10-21","proved":"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"},{"url":"https://surge.sh/docs/api/deploys","date":"2026-10-21","proved":"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"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","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","extras":{"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"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":450.0,"unit":"MB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.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"]],"history":[],"drift":[]}]}