NudgeHost vs Cloudflare Pages in 2026, a link against a platform
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.
| Feature | NudgeHostFree plan | Cloudflare PagesFree plan |
|---|---|---|
| What you hand it | A fileof any type | A sitea ZIP or a folder of prebuilt assets |
| Publish before signing up | Yesup to 25MB | Nothe flow starts by creating an application |
| A project to name first | Nonea link is the whole object | Yesserved at your-project.pages.dev |
| A choice you cannot undo | Nonenothing to reverse | YesDirect Upload cannot switch to Git later |
| One call publishes a page | Yesshare_text, on the free plan | Notheir MCP servers manage and document Cloudflare |
The short answer
NudgeHost is the simpler way to share a file. You hand it the file itself, a link exists before you have an account, and nothing has to be named or decided up front. Cloudflare Pages serves a site you built yourself, and it asks for an account and a named project before the first deploy.
Summary
| Theme | NudgeHost | Cloudflare Pages | Ahead |
|---|---|---|---|
| Once a Function is involved | There are no functions to run | 100,000 requests a day on Workers Free | NudgeHost |
| Dragging onto an existing project | Any file, at any time | Not onto a Git-integrated one | NudgeHost |
| Getting to a live address | Nothing between the upload and the link | The upload, after a build you ran yourself | NudgeHost |
| A single file's ceiling | 25MB on the free plan | 25 MiB for a single site asset | Level |
| Static requests | No cap and no charge | Free and unlimited on both plans | Level |
Cloudflare figures from developers.cloudflare.com, verified 6 September 2026.
What each one takes
NudgeHost ahead| Feature | NudgeHost | Cloudflare Pages |
|---|---|---|
| The input | A file of any type, and the viewer follows the type | A site. Drag and drop takes a ZIP or a folder, and Wrangler takes a folder and refuses a ZIP |
| Whether it builds for you | There is nothing to build | No. Their prerequisites say to run the build command first, because Direct Upload takes prebuilt assets |
| A PDF, a CSV, a Word document or a video | A page at its own address, in a viewer built for the type | Not a deployment. Pages serves the site you upload |
| A single file's ceiling | 25MB on Free, 1GB on Studio | 25 MiB for a single site asset, on any plan |
| Functions in a dragged deployment | Not applicable | Not compiled. A dashboard drag skips a functions folder, and Functions need Wrangler |
Dragging a folder onto the Cloudflare dashboard and getting a served site back is a good flow for a site. It needs no repository and no build on their side.
A scanned contract, a CSV export or a voice recording is not a site, so Pages has nothing to deploy. Each one opens at its own address here, and you can share a video file as a link the same way as a PDF.
The file ceilings sit close together. Their limit for one site asset and the NudgeHost free plan's limit for one file are the same order of size, and the paid plans here are where they separate.
What has to exist first
NudgeHost ahead| Feature | NudgeHost | Cloudflare Pages |
|---|---|---|
| An account | No. A file publishes signed out | Yes. The dashboard flow starts at Workers and Pages, Create application |
| A named project | No. A link is the whole object | Yes. A project name comes before Deploy site, and the project serves at your-project.pages.dev |
| Can the choice be reversed | There is no choice to reverse | No. A Direct Upload project cannot later switch to Git integration, and their docs say to start a new project |
| Dragging onto an existing project | Any file, at any time | Not onto a Git-integrated project |
| Time from input to a live address | Nothing in between. The address answers once the file is stored | The upload, after the build you ran yourself |
Every row here is a step that exists on one side only. None of them is hard, and together they are the difference between sending a file and setting something up.
The third row is the one to weigh before you start. A route chosen on the first day stays with that project, and on NudgeHost nothing is chosen at all.
The limits each side publishes
Cloudflare Pages aheadCloudflare publishes limits for a platform that builds and configures sites. Most of them describe things NudgeHost does not have, and two of them are plain wins for Cloudflare.
Free
$0
No subscription
- 25MB a file
- 10 live links
- 2 API keys, 20 requests a minute
- No custom domain
Pro
$12 a month
or $120 a year
- 250MB a file
- Unlimited live links
- 10 API keys, 60 requests a minute
- 1 custom domain
Studio
$29 a month
or $290 a year
- 1GB a file
- Unlimited live links
- 30 API keys, 150 requests a minute
- 5 custom domains
| Feature | NudgeHost | Cloudflare Pages |
|---|---|---|
| Builds | None, so nothing to limit | 500 a month on Free, one at a time, 20 minutes each |
| Files in one site | One file a link, and a ZIP unpacks to a site | 20,000 on Free, and 100,000 on a paid plan once a Wrangler version variable is set |
| Custom domains | None on Free, 1 custom domain on Pro, 5 custom domains on Studio | 100 a project on their free plan, 250 on Pro and 500 on Business |
| Preview deployments | None. There is nothing to preview | Unlimited |
| Redirects and headers | Not applicable | A _headers file takes up to 100 rules, and _redirects 2,000 static and 100 dynamic |
Two of these rows go to Cloudflare outright. A free plan with room for many custom domains, and previews with no cap, are both things NudgeHost does not match.
The other rows are a difference in kind. There is no build here to limit and no site configuration to write, and a custom domain attaches to a zipped site from NudgeHost Pro up.
Where the meter actually is
Level| Feature | NudgeHost | Cloudflare Pages |
|---|---|---|
| A plain static site | No cap and no charge | Static asset requests are free and unlimited on both plans |
| Once a request invokes a Function | Not applicable | It counts against the Workers quota, 100,000 requests a day on Free |
| CPU per request | Not applicable | 10 ms on Workers Free, 5 minutes on Paid with a 30 second default |
| A Function's own calls to KV or Durable Objects | Not applicable | Counted against the same quota |
| Their own example | Not applicable | 50,000 Functions requests and 50,000 Workers requests use the whole daily budget |
A plain Pages site is unmetered, and that row goes to Cloudflare. A request counts as static when it does not invoke a Function.
The ceiling arrives when a site stops being purely static. A Function puts every request onto the Workers budget, its calls to KV or Durable Objects included, and a NudgeHost link has nothing to invoke, so no request is capped or charged.
For developers and agents
NudgeHost ahead| Feature | NudgeHost | Cloudflare Pages |
|---|---|---|
| An MCP server | Four tools, on every plan | Yes, with guides for building and deploying your own on Cloudflare |
| Transport | Streamable HTTP, on an OAuth 2.0 protected resource | Streamable HTTP, with or without authentication, per their guides |
| What the tools do | Create an upload URL, complete the upload, share text and list links | Their documentation server exposes search_cloudflare_documentation and migrate_pages_to_workers_guide |
| One call publishes a page | Yes. share_text publishes text or HTML up to 2MB and returns the link | No, on a reading of those two tool names |
| The command-line route | The REST API on every plan, 2 keys at 20 requests a minute on Free | Wrangler, which takes a folder of prebuilt assets and is the only way to deploy Functions |
Cloudflare's agent surface is real. They publish guides for running your own MCP server on their platform, and their documentation server exposes two tools of its own.
Neither tool name describes publishing something and returning a live address. That is our reading of the names rather than a sentence of Cloudflare's. On NudgeHost, share_text publishes a page in one call, so an agent can publish a Claude artifact and hand back its link straight away.
A NudgeHost free account can call the v1 REST API, so a script runs before any money changes hands.
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
}'The first call returns the slug, the address and a URL to PUT the file to. A second call to /api/v1/uploads/{id}/complete finishes the upload.
The MCP server gives an AI client these tools against your account: share_text, create_upload_url, complete_upload and list_links. Request and response shapes are in the API documentation.
Publishing without an account
The whole sequence runs signed out, and nothing in it asks for an email address or a project name.
Drop the file in
On the home page, signed out. A quick browser check runs first and asks you nothing, and a file over 25MB is refused before the upload starts.
Take the link
It is live as soon as the file lands. A ZIP with an index.html gets its own nudgehost.site subdomain instead.
Send it
You can keep 3 links like this at once, each live for 7 days. HTML pages, sites and Word files carry a small NudgeHost bar, and PDFs, images and media carry nothing extra.
Sign up to keep it
A free account takes over the files from your browser, clears the 7-day end date and drops the bar. The links stay the same.
Moving from Cloudflare Pages to NudgeHost
Moving from Cloudflare Pages is a file job rather than a migration. Start from the built output on your own machine, zip the folder with its index.html, and drop the archive into NudgeHost. There is no project to name, and the address answers once the upload finishes.
Plan the address before you switch. A pages.dev address you have already shared will not follow the site, so if people have it, put the new copy on a subdomain of your own domain. Custom domains are on Pro, and the old site can stay up until the new one answers.
Which one to choose
Choose NudgeHost if
- The thing you are sharing is a file rather than a site.
- You want the address before you want an account.
- You would rather not name a project or pick a route you cannot change later.
- An agent needs one call that publishes a page and returns its link.
Choose Cloudflare Pages if
- You are shipping a built site rather than one file.
- You need many custom domains without paying for hosting.
- Preview deployments are part of how you work.
- The site is static and the traffic is large.
The verdict
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 and no account before the first publish, and no plan caps visits or charges for them.
Cloudflare Pages is the better host for a built static site that needs its own domains, previews and room for traffic.
Try it with the file you were about to zip into a site, and see whether a link was all it needed.
Frequently asked questions
Can I move a Pages site to NudgeHost without Wrangler?
Yes. Zip the built folder with its index.html and upload it in the browser or through the API, and it serves at its own subdomain. Any Pages Functions in the project will not run, because NudgeHost serves the stored files and nothing else.
What keeps working if I cancel a paid NudgeHost plan?
Every link, because nothing is deleted. The account drops to the free plan, uploads pause at 10 or more live links, and a custom domain is released 30 days after it stops serving.
Can someone without any account open a file I share from NudgeHost?
Yes. The link opens the file in the browser with no sign-in, and only a password, which a paid plan can set, puts anything in the way.
More comparisons
Try the free plan with a real file
25MB a file, 10 live links and no banner. The first upload needs no account.