Hoe ik mijn Cloudflare-rekening halveerde door over te schakelen van Durable Objects naar statische assets-cache
Ik ontving mijn Cloudflare-factuur in december en merkte iets vreemds op: $12,50 voor Durable Objects.
Durable Objects zijn Cloudflare's manier om gegevens op te slaan die moeten blijven bestaan tussen verzoeken (stateful serverless computing), zoals live chatberichten, de status van multiplayergames of gezamenlijke bewerking.
Ik heb een paar websites gehost op Cloudflare, en de meeste zijn eigenlijk statische blogs. Waarom betaalde ik voor Durable Objects?
De boosdoener: de standaardcaching van OpenNext
Als je OpenNext gebruikt om Next.js op Cloudflare Workers te implementeren, gebruikt de standaardconfiguratie Durable Objects voor ISR (Incremental Static Regeneration) cache-invalidatie. Dit is logisch voor dynamische sites die hervalidatie on-demand nodig hebben, maar voor een blog? Compleet overbodig.
Dit is hoe de standaardconfiguratie eruitziet:
// open-next.config.ts (standaard)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
export default defineCloudflareConfig();Deze onschuldig ogende configuratie activeert:
- DOShardedTagCache: Durable Objects voor op tags gebaseerde cache-invalidatie
- BucketCachePurge: Durable Objects voor cache-opschoning
- DOQueueHandler: Durable Objects voor wachtrijafhandeling
Die allemaal geld kosten telkens wanneer ze worden aangeroepen.
De oplossing: statische assets-cache
Als je site grotendeels statisch is (zoals een blog), kun je overschakelen op een statische assets-cache die alles tijdens het bouwen opslaat in Workers Static Assets. Geen Durable Objects, geen terugkerende kosten.
// open-next.config.ts (geoptimaliseerd)
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import staticAssetsIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/static-assets-incremental-cache";
export default defineCloudflareConfig({
incrementalCache: staticAssetsIncrementalCache,
enableCacheInterception: true,
});Dat is alles. Twee regels in de configuratie hebben me $12,50 per maand bespaard.
De afweging
Er is één addertje onder het gras: je verliest ISR-hervalidatie. Met de statische assets-cache wordt je inhoud alleen bijgewerkt wanneer je opnieuw implementeert. Voor een blog waar ik controle heb over wanneer de inhoud verandert, is dit volkomen prima. Ik implementeer sowieso opnieuw wanneer ik een nieuw bericht publiceer.
Maar als je het volgende hebt:
- Door gebruikers gegenereerde inhoud die vaak wordt bijgewerkt
- Pagina's die volgens een schema moeten worden herwaardeerd
- Dynamische gegevens die veranderen tussen implementaties
Dan heb je waarschijnlijk Durable Objects nodig, en zijn de kosten gerechtvaardigd.
Resultaten
Update (januari 2026): Ik weet dat het niet veel geld is, maar mijn factuur van januari voor al mijn sites kwam uit op slechts $6,47. Ik heb deze oplossing op ze allemaal toegepast en de kosten voor Durable Objects zijn verdwenen.
| Service | December | Januari |
|---|---|---|
| Durable Objects | $12,50 | $0,00 |
| Workers Betaald | $5,00 | $5,00 |
| AI Neurons (RTN)* | $8,31 | $0,42 |
| Workers CPU | $0,42 | $1,00 |
| Vectorize | $0,05 | $0,05 |
| Totaal | $26,28 | $6,47 |
*Ik heb ook afzonderlijk het AI-gebruik van mijn chatbot geoptimaliseerd, wat het grootste deel van de RTN-besparingen verklaart.
Hoe controleer je of je Durable Objects nodig hebt
Vraag jezelf af:
- Verandert mijn inhoud tussen implementaties? Zo nee, gebruik dan statische assets-cache.
- Gebruik ik
revalidatein mijn Next.js-pagina's? Zo nee, gebruik dan statische assets-cache. - Is mijn site voornamelijk een blog of documentatie? Zo ja, gebruik dan statische assets-cache.
Voor de meeste persoonlijke sites en blogs is de statische assets-cache de juiste keuze. Bespaar je geld voor iets nuttigers.