Skip to content

History

Revisions

  • Record that workers.dev is not a reliable origin A freshly deployed workers.dev URL answered three consecutive claims correctly and then missed milliseconds later with error code 1042. Edge locations learn the route independently, so waiting longer lowers the odds without removing them. It matters beyond CI: a media worker makes a long sequence of requests per job and one miss fails it. Clients need to retry, and production should use a custom domain.

    @davidtorcivia davidtorcivia committed Aug 4, 2026
    d42df8e
  • Correct the free-tier claim: Workers Paid is required Measured in workerd: the PBKDF2 settings this app uses cost 66 ms of CPU to hash a password and 65 ms to verify one. The Workers free plan allows 10 ms per request. So signing in does not work on the free plan, and nor does creating the first account. The page said a small deployment costs nothing, which is wrong: $5 is the floor, not an upgrade. The R2 and D1 free tiers still apply on top. 600,000 iterations is OWASP's floor for this KDF, so the answer is the plan rather than weaker hashing.

    @davidtorcivia davidtorcivia committed Aug 4, 2026
    ec8166b
  • Measure bytes moved when streaming, instead of counting reads Counting invocations overstated it. The poster input-seeks with -ss before -i, so it decodes a short window rather than the file, and other passes do the same. Measured against a counting HTTP server: 5.67x the source, not 8x. A 40 GB master streams in about 227 GB rather than 320. The better result is that a full transcode ran against an HTTP URL and produced every rendition. ffmpeg seeks by Range and does not need the file, so the adaptive-source design works before any of it is written.

    @davidtorcivia davidtorcivia committed Aug 4, 2026
    5096eb6
  • Correct the framing on eight source reads Called it a prerequisite for streaming. It is not: R2 egress is free and eight sequential reads cost cents in Class B operations, so the bill is effectively unchanged. What eight reads spend is wall-clock and bandwidth. The measurement still matters, for a different reason: it says a worker with disk should download once and read locally, and only a worker that cannot hold the source should stream. Folding the passes makes the streaming case reasonable and shortens every job either way.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    79f8422
  • Measure source reads per transcode: eight, not one Counted with a logging wrapper around ffmpeg on a real transcode. Every one of the eight invocations reads the source. Free on a shared volume, where the file is in page cache after the first pass. Not free streamed: a 40 GB master read eight times is 320 GB per job. Folding the passes is therefore a prerequisite for streaming rather than a follow-up, which is the opposite of how it looks.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    98eaa79
  • Say that switching stores is free, and when it is worth it R2 egress is free, B2 ingress and API calls are free, and the two peer, so moving 10 TB between them costs nothing. That is the fact that makes an assisted migration worth building: there is no lock-in to escape, only time. Includes the savings table and the floor below which the advice is to do nothing, because Cloudflare's free tier already covers it.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    ae3da8c
  • Factor the free tiers into the numbers A small deployment costs nothing: 10 GB R2, 10M reads, 1M writes, 100k Workers requests a day and D1's allowances all compose. The earlier tables quoted $5 plus storage as though it always applied, which overstated the entry cost. The first thing to break is R2 storage at 10 GB, since one master can exceed it. The request budget may break sooner for a busy team, but that is unmeasured and is flagged as such.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    baee9a5
  • Preset against quality: the timing holds, the quality numbers do not veryfast is 2.1x faster than medium on a grainy source and 2.3x on a clean one, so the speed ratio is real. SSIM says quality is equal, and that is not usable evidence: medium spent 20% more bits and scored lower, which is what psy-rd, AQ and trellis look like to SSIM. The metric measures the wrong thing across presets. The source is also far grainier than any camera master. So the default stays where it is until this is settled on real footage with VMAF. The lever should ship as a configurable profile instead.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    4273ead
  • Cheaper storage, and realistic volumes in the comparison B2 is $6.95/TB against R2's $15, with free egress to Cloudflare under the Bandwidth Alliance and free API calls. The blob store is a port, so this is an implementation away rather than a redesign, and it is the same SigV4 work as presigning R2. Also drops the 30 TB row, which nobody actually stores, and adds the four levers worth pulling: cheaper bucket, cold originals in Infrequent Access on a lifecycle rule, dedup on the content hash already computed, and an explicit option not to keep originals at all.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    52d4407
  • Add the Frame.io comparison and where the crossover sits Onelight's advantage grows with seats and its disadvantage grows with storage, because Frame.io bundles 2 TB per seat and Onelight charges for storage alone. Includes the uncomfortable number: Frame.io's marginal storage is $7.50/TB against R2's $15/TB. Storage is not where this wins, and saying otherwise would not survive a spreadsheet.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    fbfc683
  • First measurement: x264 preset for software proxies veryfast is 2.3x faster than the medium currently used, at our real proxy settings. superfast gains 9% more for double the size, so veryfast is the knee. Sizes are from synthetic content and will not generalise; the timing ratio will.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    0f1e398
  • Rewrite pricing and benchmarks, add encoding Both pages were overwritten prose. Rewritten as tables and short statements. Adds the Workers free tier, which the rates table had left out, and an Encoding page: Cloudflare Containers can run ffmpeg, cap at 4 vCPU and 20 GB disk with no GPU, and the disk cap blocks the current design because the worker downloads whole sources.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    27483f2
  • Add pricing and benchmark pages Pricing is derived from Cloudflare's published rates, read 2026-08-03 and linked, with the arithmetic kept simple enough to redo. Everything that is an assumption says so, and the four numbers that need measuring before the request and CPU terms mean anything are listed rather than guessed at. Benchmarks is a methodology with no results yet, on purpose: it says what to measure and which conditions have to be recorded with each number, so the first real run lands somewhere with its context attached.

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    8d85843
  • Initial Home page

    @davidtorcivia davidtorcivia committed Aug 3, 2026
    3c1fd81