KianNH's Blog


Hey there! I'm Kian, a Documentation Platform Engineer at Cloudflare working on our developer documentation.

How to write to the clipboard when using async in Safari

How to satisfy Safari's transient activation requirements when using async methods in event handlers.

Vendored Markdown - turning MDX into Markdown for AI consumption

Using remark and rehype to turn MDX components and HTML into plain Markdown for AI

APIRequest - standardising API curl examples in Cloudflare Docs

Creating curl code blocks from OpenAPI schemas in Cloudflare Docs

Making Cloudflare Docs faster via improving startup times by 316% and page reload times by 344%

How a lot of profiling, patching & reporting issues upstreamed massively improved `astro dev` performance for large sites.

Improving page reload times in astro dev by ~40% via profiling

Finding a bug that caused sourcemaps to be generated for large data store files using profiling!

Making Cloudflare Docs local development start ~2.27x faster with 1 line of Tailwind config

Let's take a look at how the Tailwind content glob was the cause of a ~25 second startup time.

Making Mermaid.JS diagrams responsive to theme changes

Using MutationObserver to update Mermaid diagrams when the theme changes

Creating JavaScript examples from TypeScript in Cloudflare Docs

Using detype to create JS/TS tabs from just TS code

Making Cloudflare Docs build 243% faster with a 5 line change

A look into how I used profiling to improve our build times by 243% when using Astro's Starlight theme

Using Markdown AST to migrate Cloudflare's documentation from Hugo shortcodes to Astro MDX

How we migrated thousands of Markdown files to MDX during Cloudflare's Starlight migration.

Adding token offsets to SQLite syntax errors

Learn how to add token offsets to SQLite syntax errors to improve error reporting.

Using Cloudflare Hyperdrive with tokio-postgres in Workers

Learn how to use Cloudflare Hyperdrive with tokio-postgres in Workers

Cloudflare Workers - Using AsyncLocalStorage for Request Context

Learn how to use AsyncLocalStorage in Cloudflare Workers to manage request context.

Cloudflare Workers - How long does an isolate last for?

Learn how long an isolate lasts for in Cloudflare Workers.

Cloudflare workerd - generating configs ahead of time

Learn how to generate workerd configs ahead of time with capnproto.

Cloudflare's Transparent Decompression - how does it work?

Learn how Cloudflare's transparent decompression works.

Cloudflare Workers - Build time constants with Wrangler

Learn how to use Wrangler's define feature for build time constants in your Cloudflare Workers project.

CryptoKey bindings in Cloudflare Workers - importKey at publish time!

Learn how to use CryptoKey bindings in Cloudflare Workers to import keys at publish time!

Cloudflare R2 and AWS's SDK for .NET

Learn how to use Cloudflare R2 with AWS's SDK for .NET.

Configuring CORS on Cloudflare R2

Learn how to configure CORS on Cloudflare R2

103 Early Hints - what file types can leverage them?

Learn which file types can leverage the new 103 Early Hints preloads.

Exposing development environments over HTTPS using Cloudflare Tunnels

Learn how to expose your development environment over HTTPS using Cloudflare Tunnels.

Implementing 103 Early Hints with Cloudflare Workers & HTMLRewriter!

Learn how to implement the 103 Early Hints status code using Cloudflare Workers and HTMLRewriter!

Progressive S3 to Cloudflare R2 migration using Workers

Learn how to migrate your S3 assets to Cloudflare R2 using Workers.