{"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,"unit":"MB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-ip-shaping","num":1,"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":[]}