Cloudflare Pages

Publish static sites at the edge. Free has unlimited static requests and 500 builds per month.

···
html
<div class="host-demo"><div class="host-head"><strong>PAGES · STATIC BUILDS</strong><span id="status">MONTHLY USAGE</span></div><div class="host-visual"><div class="pages-visual"><div class="pages-cloud"><b id="pages-count">0</b><span>BUILDS / 500 FREE</span></div><div class="pages-assets">STATIC ASSET REQUESTS <strong>UNLIMITED</strong></div></div></div><div class="host-control"><span id="usage-label"></span><input id="usage" type="range" aria-label="Monthly usage" min="0" max="700" step="50" value="300"></div><div class="host-note">2026-10-06 공식 가격 기준 · 단순화(세금·지역 할증 제외)</div></div>
css
.host-demo{width:min(94vw,850px);height:min(90vh,340px);padding:clamp(9px,2.4vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:clamp(5px,1.6vmin,11px);overflow:hidden;font:600 clamp(11px,2.4vmin,16px)/1.25 ui-sans-serif,-apple-system,sans-serif}.host-head{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.host-head strong{color:var(--accent);font-size:1.05em}.host-head span{color:var(--muted);font-size:.78em;text-align:right}.host-visual{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.host-control{display:flex;align-items:center;gap:8px;color:var(--fg);font-variant-numeric:tabular-nums}.host-control span{min-width:44%;font-size:.88em}.host-control input{flex:1;width:20px;accent-color:var(--accent)}.host-note{color:var(--muted);font-size:.66em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.host-demo *{min-width:0}.meter{height:clamp(11px,3.4vmin,24px);border-radius:99px;background:var(--line);overflow:hidden}.meter>i{display:block;height:100%;width:0;background:var(--accent);transition:width .35s}.big{font-size:clamp(18px,5.5vmin,34px);font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent)}.muted{color:var(--muted)}.pages-visual{width:88%;display:flex;justify-content:space-around;align-items:center;gap:8px}.pages-cloud{border:2px dashed var(--accent);border-radius:13px;padding:clamp(8px,3vmin,24px);text-align:center;display:grid}.pages-cloud b{font-size:clamp(21px,7vmin,42px);color:var(--accent)}.pages-cloud span,.pages-assets{font-size:.72em}.pages-assets{width:42%;color:var(--muted)}.pages-assets strong{display:block;color:var(--accent);font-size:1.2em}
js
const input=document.getElementById('usage');const label=document.getElementById('usage-label');const status=document.getElementById('status');let manual=false;function paint(){const value=Number(input.value);label.textContent=value+' builds / month';document.getElementById('pages-count').textContent=String(value);document.querySelector('.pages-cloud').style.borderColor=value>500?'var(--accent-3)':'var(--accent)';status.textContent=value>500?'BUILD LIMIT REACHED':'STATIC REQUESTS FREE';}paint();let direction=1;setInterval(()=>{if(manual)return;const next=Number(input.value)+50*direction;if(next>700||next<0){direction*=-1;return}input.value=String(next);paint()},850);input.addEventListener('input',()=>{manual=true;paint()});

Cloudflare Pages deploys static sites from Git or direct upload. It is straightforward when asset traffic is high and builds remain within plan limits.

As of 2026-10, static asset requests and transfer have no separate usage charge on Free, which includes 500 builds monthly and up to 20,000 files per site. Pages Functions share Workers request limits and billing. The demo shows the free build boundary.

Dynamic routes do not necessarily stay free as static requests. Check Functions routing and Workers charges.

When to use

Use Pages for a static site; compare Workers when assets and APIs share a deploy, or Netlify for a different Git deploy workflow.

Open as page ↗