* Accept an option to purge without refreshing
* Store hits on the redis cache entry
* Revalidate first the entries with the most hits
* Format
* bun
* Ignore error from JSON.NUMINCRBY
* Store arguments and tags in redis cache
* Refactor cache to support revalidation
* Format
* Fix redis cache
* Try with both GT and NX
* Fix get from redis
* Fix json syntax
* New attempt
* Fix log
* Skip case where there is no key for tags
* New try
* Ignore when no tags is passed
* Optimize images using Cloudflare Images
* Try skipping middleware
* Make it work with base path
* Fetch image size
* Use a target instead of the cf fetch options
* Fix resizing
* Start optimizing images
* Preload images
* Use it for page cover
* Format and adapt cover
* Fix image resizing serving jpeg
* Lazy load dark mode images
* Timeout at 2s
* Fix iframe CSP
* Implement logic to lazy load images that should be offscreen
* Also lazy load cover images
* Low priority in preloading
* Fix csp
* Set colorSchema metadata
* Try CSP
* Move colorScheme to generateViewport
* Bun install
* Use wildcard for img-src and connect-src
* Allow all unsafe-inline for now for style
* Remove nonce for style
* Remove nonce for style
* Optimize data fetching with parallel requests
* Try to reuse memory cache between middleware and rendering in CF
* Comment
* Fetch document in parallel of collections
* Cleanup
* Log if redis is enabled for caching
* Fix memory cache before redis one
* Optimize alternatives being tested
* Implement a tagging logic for cache value
* Extract cache-tags from HTTP requests
* Auto-tag API cache entry
* Implement route
* Output cache-control and cache-tag
* Make the revalidate route a edge one
* Move back to use the middleware as the main logic
* Fix link
* Improve lookup to support docs.gitbook.com.localhost:3000
* Make it work with dev url in prod for now
* Start lookup with API
* Continue
* Prepare for cloudflare build
* Dummy commit
* Try to abort requests
* Support x-forwarded-host
* Test multiple modes
* Add logs
* Add logs
* Update next
* Default to multi-path
* Switch back to nodejs runtime
* Adapt to staging API
* Make sure to return an absolute url for a redirect
* Update api client and try single request
* Try again with concurrent lookup