Compare

NudgeHost vs Cloudflare Pages (2026)

Published 6 September 2026

Where the two differ on what you can hand them, on what has to exist before anything is live, and on what an agent can do with either.

Figures last verified 6 September 2026

Cloudflare Pages takes a site. Drag a ZIP or a folder of prebuilt assets onto their dashboard, or push one with Wrangler, and it serves. NudgeHost takes a file, and that is the whole difference: a PDF, a CSV, a Word document, an image or a video is not a Pages deployment, and each one is a page at its own address here.

nudgehost.com/your-file

What you can hand each one

NudgeHost
Any file

Up to 25MB on the free plan, rendered at its own address in a viewer built for the type

A ZIP

Unpacked and served as a site at its own subdomain when it carries an index.html

Nothing to build

The address answers as soon as the bytes land, with nothing to prepare first

Cloudflare Pages
A ZIP or a folder

Drag and drop takes either; Wrangler takes a single folder and does not accept ZIP files

Prebuilt assets

Their prerequisites say to run the build command before deploying, because Direct Upload uploads prebuilt assets

25 MiB a file

The maximum size for a single site asset

What has to exist first

NudgeHost
A file and a browser

Drag it in signed out and it publishes, up to 25MB and 3 links, each running 7 days

No project

Nothing to name, nothing to create, and no decision that cannot be taken back

Cloudflare Pages
An account and a project

Workers and Pages, Create application, Get started, Drag and drop your files, then a project name, then Deploy site

your-project.pages.dev

The address the project is served at

A one-way choice

A Direct Upload project cannot later switch to Git integration; their docs say a new project with Git integration is required instead

Where the meter is

  • A plain Pages site is unmetered. Static asset requests are free and unlimited on both plans, and a request counts as static when it does not invoke a Function.
  • A Function moves it onto the Workers budget. Workers Free is 100,000 requests a day, resetting at midnight UTC, with 10 ms of CPU per request. Requests to Pages Functions count against that quota, including a Function's own calls to KV or Durable Objects.
  • Their own example. 50,000 Functions requests and 50,000 Workers requests uses the whole daily budget.
  • Nothing here counts requests. No NudgeHost plan meters visitors, bandwidth or requests, and the free plan holds 10 active links.

Summary

NudgeHost and Cloudflare Pages summarised by theme, with the side that comes out ahead on each
ThemeNudgeHostCloudflare PagesWinner
What you hand itA file, of any typeA site, as a ZIP or a folder of prebuilt assetsNudgeHost
What has to exist firstA file and a browserAn account and a named projectNudgeHost
Publishing without an accountYes, up to 25MBNo. The dashboard flow starts by creating an applicationNudgeHost
A single file's ceiling25MB on the free plan25 MiB for a single site assetEven
Custom domains on a free plan0 custom domains100 a projectCloudflare Pages
Static requestsNot countedFree and unlimited on both plansEven
Once a Function is involvedNot applicable, there are no functions100,000 requests a day on Workers Free, at 10 ms of CPU eachNudgeHost
One call takes a file and returns a linkYes, on the free planNo. Their MCP servers manage and document CloudflareNudgeHost

At a glance

NudgeHost

  • Any file up to 25MB free, rendered rather than downloaded
  • 25MB signed out, 3 links at once, each running 7 days
  • No project to create and no choice that cannot be reversed
  • The REST API and the MCP server on the free plan, at 2 keys and 20 requests a minute

Cloudflare Pages

  • Direct Upload publishes prebuilt assets with no Git, by Wrangler or by dragging onto the dashboard
  • 20,000 files a site on Free, 100,000 on a paid plan
  • 100 custom domains a project on Free, and unlimited preview deployments
  • Static asset requests free and unlimited, on both plans

The quick verdict

What to pick between NudgeHost and Cloudflare Pages, by what you want most
If you wantChoose
A link to a PDF, a CSV or a videoNudgeHost
A built site served at a project addressCloudflare Pages
A published address before an account existsNudgeHost
100 custom domains at no costCloudflare Pages
Unlimited preview deploymentsCloudflare Pages
One API call that returns a live addressNudgeHost
A static site that serves any amount of traffic freeCloudflare Pages

What each one takes

What each one takes, comparing NudgeHost and Cloudflare Pages
FeatureNudgeHostCloudflare Pages
The inputA file. Any type, and the viewer follows from the typeA site. Drag and drop takes a ZIP or a folder; Wrangler takes a folder and refuses a ZIP
Whether it builds for youThere is nothing to buildNo. Their prerequisites say to run the build command first, because Direct Upload uploads prebuilt assets
A PDF, a CSV, a Word document or a videoA page at its own address, in a viewer built for the typeNot a deployment. Pages serves the site you upload
A single file's ceiling25MB on the free plan, rising to 1GB on Studio25 MiB for a single site asset, on any plan
Functions in a dragged deploymentNot applicableNot compiled. Drag and drop from the dashboard skips a functions folder, and deploying Functions requires Wrangler

WinnerNudgeHost

This is the section the rest of the page rests on, and it is not a criticism of Pages. Dragging a folder onto their dashboard and getting a served site out of it is a good flow, and it needs no repository, no push and no build on their side.

It is a flow for a site. The thing most people are holding is a scanned contract, a slide deck, a spreadsheet exported as CSV or a recording, and none of those is a site to serve. Ours renders each at its own address; theirs has nothing to deploy.

The two file ceilings are close enough to call even. Their maximum for a single site asset is 25 MiB and our free plan takes 25MB, which is the same order of size, and the paid plans here are where that separates.

What has to exist first

What has to exist first, comparing NudgeHost and Cloudflare Pages
FeatureNudgeHostCloudflare Pages
An accountNo. Signed out publishing takes 25MB and 3 linksYes. The dashboard flow starts at Workers and Pages, Create application
A named projectNo. A link is the whole objectYes. A project name is entered before Deploy site, and the project is served at your-project.pages.dev
Can the choice be reversedThere is no choice to reverseNo. A Direct Upload project cannot later switch to Git integration, and their docs say a new project with Git integration is required instead
Dragging onto an existing projectAny file, at any timeNot onto a Git-integrated one. Drag and drop cannot be used on an existing Git-integrated project
Time from input to a live addressNothing in between. The address answers once the bytes are storedThe upload, after the build you ran yourself

WinnerNudgeHost

Every row here is a step that exists on one side and not the other. None of them is difficult, and together they are the difference between sending a file and setting something up.

The one worth reading twice is the third. Choosing Direct Upload closes the door on Git integration for that project permanently, and their own documentation says the fix is a new project. It is a decision taken at the start, on the information you have at the start, and nothing on this side has an equivalent.

The limits each side publishes

The three NudgeHost plans

What each plan carries, before the comparison starts on price.

The three NudgeHost plans
PlanMonthlyAnnualA fileLive linksAPI accessDomains
Free$025MB10 active links2 API keys at 20 requests a minute0 custom domains
Pro$12/mo$120/yr250MB10 API keys at 60 requests a minute1 custom domain
Studio$29/mo$290/yr1GB30 API keys at 150 requests a minute5 custom domains

A Cloudflare plan changes four things for Pages. The file count in one site goes from 20,000 on Free to 100,000 on a paid plan, and only with PAGES_WRANGLER_MAJOR_VERSION=4 set in the project settings. Custom domains a project go from 100 on Free to 250 on Pro and 500 on Business. On the Workers side, which is what a Pages Function is billed against, Free is 100,000 requests a day at 10 ms of CPU each and Paid removes the daily request limit and raises CPU to 5 minutes with a 30 second default. Subrequests go from 50 a request to 10,000, and static asset files a Worker version from 20,000 to 100,000. Memory stays at 128 MB an isolate on both, and a single static asset stays at 25 MiB on both.

The limits each side publishes, comparing NudgeHost and Cloudflare Pages
FeatureNudgeHostCloudflare Pages
BuildsNone, so nothing to limit500 a month on Free, one concurrent, 20 minutes each
Files in one siteOne file a link, and a ZIP unpacks to a site20,000 on Free, 100,000 on paid, and only with PAGES_WRANGLER_MAJOR_VERSION=4 set
Custom domains on a free plan0 custom domains, rising to 1 custom domain on Pro100 a project, 250 on Pro and 500 on Business
Preview deploymentsNone. There is nothing to previewUnlimited
Redirects and headersNot applicableA _headers file takes up to 100 rules, _redirects 2,000 static and 100 dynamic

WinnerCloudflare Pages

Two of these five rows go to Cloudflare outright and the table says so. 100 custom domains on a free plan against ours, and preview deployments with no cap, are both figures we have no answer to.

The other rows are not a contest so much as a difference in kind. There is no build here to limit, no site-wide file count because a link is one file, and no redirect rules because there is no site configuration to write. Where a custom domain is what you need, use your own domain arrives on Pro.

Where the meter actually is

Where the meter actually is, comparing NudgeHost and Cloudflare Pages
FeatureNudgeHostCloudflare Pages
A plain static siteNothing countedStatic asset requests are free and unlimited, both plans
Once a request invokes a FunctionNot applicableIt counts against the Workers quota, 100,000 requests a day on Free
CPU per requestNot applicable10 ms on Workers Free, 5 minutes on Paid with a 30 second default
A Function's own calls to KV or Durable ObjectsNot applicableAlso counted against the same quota
Visitors to a published linkNever counted, on any planFree and unlimited while the request stays static

Even

A plain Pages site is genuinely unmetered, and this page will not pretend otherwise. Static asset requests are free and unlimited on both of their plans, and a request counts as static when it does not invoke a Function. That row goes to them.

The other half is their second published fact rather than a catch. Once a request invokes a Function it is on the Workers budget: 100,000 requests a day on Workers Free, resetting at midnight UTC, at 10 ms of CPU each, with a Function's own calls to KV or Durable Objects counted too. Their own worked example is 50,000 Functions requests and 50,000 Workers requests using the whole daily budget. That ceiling is Workers' rather than Pages', and it applies the moment a site stops being purely static.

Nothing on this side has an equivalent, because there is nothing to invoke. A NudgeHost link serves a stored file and no plan counts visitors, bandwidth or requests against it.

For developers and agents

For developers and agents, comparing NudgeHost and Cloudflare Pages
FeatureNudgeHostCloudflare Pages
An MCP serverYes, on every plan, at https://www.nudgehost.com/api/mcp with four toolsYes, and guides for building and deploying your own on Cloudflare
TransportStreamable HTTP, on an OAuth 2.0 protected resourceStreamable HTTP, with or without authentication, per their guides
What the tools doCreate an upload URL, complete the upload, share text, list linksTheir documentation server exposes search_cloudflare_documentation and migrate_pages_to_workers_guide
One call takes a file and returns its addressYesNo, on the reading of those two tool names below
The command-line routeThe REST API on the free plan, at 2 keys and 20 requests a minuteWrangler, which takes a folder of prebuilt assets and is the only way to deploy Functions

WinnerNudgeHost

Cloudflare's agent surface is real and it is not small. They publish guides for building and deploying a remote MCP server on their platform over Streamable HTTP, with or without authentication, and their documentation server exposes search_cloudflare_documentation and migrate_pages_to_workers_guide.

Reading those two names, neither takes a file and gives back a live address; they search documentation and describe a migration. That is a reading of the tool list rather than a sentence of Cloudflare's, and it is worth saying which it is. For an agent that has just produced a file and needs somewhere to put it, ours does the job in one call, and you can host an HTML file the same way from a script or a conversation.

The same upload from a script

The v1 REST API is open on the free plan, at 2 keys and 20 requests a minute, so this runs before any money changes hands.

bash
curl -X POST https://www.nudgehost.com/api/v1/uploads \
  -H "Authorization: Bearer nh_sk_REPLACE_WITH_YOUR_OWN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "report.pdf",
    "contentType": "application/pdf",
    "fileSize": 182734
  }'

That answers with the slug, the address the file will have, and a URL to PUT the bytes to. A second call to /api/v1/uploads/{id}/complete finishes it and returns the address the file is actually reachable at. The MCP server answers at https://www.nudgehost.com/api/mcp with four tools, share_text, create_upload_url, complete_upload and list_links, so an AI client can do the same job inside one conversation. Both request and response shapes are set out in the API reference.

What each one is better at

Where NudgeHost is stronger

  • The file is the whole input. No project to name and nothing to prepare. A PDF, a CSV, a Word document, an image or a video each become a page at their own address, up to 25MB on the free plan.
  • There is a link before there is an account. Drag a file in signed out and it publishes, up to 25MB and 3 links, each running 7 days and claimable later by signing up.
  • Nothing is counted per visit. No plan here meters visitors, bandwidth or requests, so a link that gets picked up keeps serving at the same price.
  • One call, one address. The REST API and the MCP server both answer on the free plan, at 2 keys and 20 requests a minute.

Where Cloudflare Pages is stronger

  • Static requests are free and unlimited. On both of their plans, for as long as a request does not invoke a Function. A plain Pages site costs nothing to serve however much traffic it takes.
  • 100 custom domains on a free plan. A project, rising to 250 on Pro and 500 on Business. Custom domains arrive on the paid plans here.
  • Unlimited preview deployments. Their published limit is no limit, on either plan. There is no equivalent here because there is nothing to preview.
  • 500 builds a month on the free plan. One concurrent build, 20 minutes each. Direct Upload skips that side entirely by taking assets you built yourself, so both routes stay open.

Publishing without an account

The sequence a reader can run before deciding anything. Nothing in it asks for an email address, and the ceiling is 25MB, the same size the free plan takes.

  1. Drop the file in

    Signed out, on the home page. A browser check runs before the upload starts and asks you for nothing. Anything over 25MB is refused at that point rather than part way through.

  2. Take the address

    The link comes back as nudgehost.com and the slug, live as soon as the bytes land. A ZIP that unpacks into a site gets its own subdomain instead, and that is the only case where the address takes a different shape.

  3. Send it

    You can hold 3 of these at once without an account, and each one runs for 7 days. A PDF, an image, a CSV or a JSON file carries nothing extra on the page. A converted Word file, a single HTML page and a page served out of an unpacked ZIP each carry a small attribution line at the foot.

  4. Sign up when you want to keep it

    A free account takes over the files behind your browser, clears the deadline and leaves every address alone. The free plan holds 10 active links, filled newest first, and anything past that stays anonymous and keeps its expiry until a slot opens.

The attribution line is the one thing an account removes from a page that already carries one. Everything else about the link, the address included, is the same before and after you sign up.

Moving from Cloudflare Pages to NudgeHost

Moving across is a file operation. Get the built output onto your own machine, whether that is a folder of HTML, a build directory or a single page, and nothing about the destination needs configuring first.

Then drop it in. A single page goes up as it is, and a folder goes up as an archive that unpacks and serves at its own subdomain, with client-side routing working the way it did locally. There is no project to name and no queue to sit in, so the address answers as soon as the upload finishes. The free plan takes 25MB a file and holds 10 active links.

Choose NudgeHost if

  • The thing you are sharing is a file rather than a site.
  • You want the address before you want an account.
  • An agent or a script needs one call that ends in a live URL.
  • You would rather nothing were counted per visit.

Choose Cloudflare Pages if

  • The thing you are shipping is a built site rather than one file.
  • You need custom domains and are not paying for hosting.
  • Preview deployments are part of how you work.
  • The site is static and the traffic is large.

The verdict

Cloudflare Pages is a good static host and a good deploy flow, and neither is in dispute here. Drag a folder or a ZIP onto their dashboard, name a project, and it serves at your-project.pages.dev with no repository involved, 100 custom domains on a free plan and no static request ever counted.

NudgeHost is the pick when the thing you have is a file and the thing you need is an address. There is no project to name, no account before the first publish, the free plan holds 10 active links at 25MB a file, and nothing is counted per visit on any plan.

Two figures are worth carrying away from their side. A plain Pages site is free and unlimited on static requests, and a request that invokes a Function is on the Workers budget of 100,000 a day at 10 ms of CPU. Both are their published numbers, and which one applies depends on whether the site stays static.

One decision is worth taking slowly. A Direct Upload project cannot later switch to Git integration, and their documentation says the answer is a new project, so the route you pick at the start is the route that project keeps.

For the nearest neighbour to this comparison, where the competitor also serves what you hand it, see the NudgeHost and Netlify Drop comparison. For the rest of the category, see how NudgeHost compares to GitHub Pages and NudgeHost vs Tiiny.host.

Get started free

Frequently asked questions

  • Does Cloudflare Pages need a Git repository?

    No. Direct Upload publishes prebuilt assets with no Git at all, either through the Wrangler CLI or by dragging onto the Cloudflare dashboard. Drag and drop takes a ZIP file or a single folder of assets; Wrangler takes a single folder and does not accept ZIP files. Git integration is the other route rather than the only one.

  • Can I publish a PDF on Cloudflare Pages?

    You can include one in the folder or ZIP you upload and have Pages serve it as a static asset, up to the 25 MiB maximum for a single site asset. What you get back is a file at a path inside a site you assembled, rather than a page with a viewer around it. NudgeHost renders a PDF at its own address with a viewer, and takes it on its own.

  • What has to exist before a Pages site is live?

    A Cloudflare account and a named project. Their dashboard sequence is Workers and Pages, Create application, Get started, Drag and drop your files, then a project name, then Deploy site, and the result is served at your-project.pages.dev. Their prerequisites also say to run the build command first, because Direct Upload uploads prebuilt assets.

  • Can a Direct Upload project switch to Git later?

    No. Cloudflare's documentation says a Direct Upload project cannot later switch to Git integration and that a new project with Git integration is required instead. Drag and drop also cannot be used on a project that is already Git-integrated, so the two routes do not mix in either direction.

  • Is Cloudflare Pages really unlimited?

    For static asset requests, yes, on both plans, and a request counts as static when it does not invoke a Function. The build side is limited: 500 builds a month on Free, one at a time, 20 minutes each. And the moment a request invokes a Pages Function it counts against the Workers quota rather than being free.

  • What happens when a Pages Function runs out of requests?

    It is the Workers limit rather than a Pages one. Workers Free is 100,000 requests a day, resetting at midnight UTC, at 10 ms of CPU per request, and a Function's own calls to KV or Durable Objects count against the same quota. Cloudflare's own example is 50,000 Functions requests and 50,000 Workers requests using the whole daily budget. Workers Paid has no daily request limit and 5 minutes of CPU with a 30 second default.

  • Can an AI agent publish a file through Cloudflare?

    Not in the sense this page means. Cloudflare publishes guides for building and deploying a remote MCP server on their platform over Streamable HTTP, with or without authentication, and their documentation server exposes search_cloudflare_documentation and migrate_pages_to_workers_guide. Reading those two names, they search documentation and describe a migration rather than taking a file and returning a live address.

  • Which one takes the bigger file?

    They are close. Cloudflare's maximum for a single site asset is 25 MiB on any plan. The NudgeHost free plan takes 25MB a file, which is the same order of size, and the paid plans go to 250MB on Pro and 1GB on Studio.

  • How many files can one Pages site hold?

    20,000 on the Free plan and 100,000 on a paid plan, and the higher figure applies only with PAGES_WRANGLER_MAJOR_VERSION=4 set in the project settings. Cloudflare's changelog of 23 January 2026 raised the paid limit to 100,000 and left Free at 20,000.

See for yourself

The free plan is genuinely free. Try it before you decide.

Get started free