Terug naar het blog

Hoe ik mijn Cloudflare-rekening halveerde door over te schakelen van Durable Objects naar statische assets-cache

2025-12-133 min read

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.

ServiceDecemberJanuari
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:

  1. Verandert mijn inhoud tussen implementaties? Zo nee, gebruik dan statische assets-cache.
  2. Gebruik ik revalidate in mijn Next.js-pagina's? Zo nee, gebruik dan statische assets-cache.
  3. 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.

Bronnen

Blijf op de hoogte

Ontvang de nieuwste berichten en inzichten in je inbox.

Unsubscribe anytime. No spam, ever.