Writing
Thoughts, updates, and random scribbles.
How I Built UseDocs on Cloudflare: RAG, Agents, and Multi-Tenant Edge
The real architecture behind UseDocs: crawl → embed → cited answers on Cloudflare, with Durable Objects, Vectorize, metering, and honest escalation wh...
Cloudflare Dynamic Routes: From Workers to Multi-Tenant Paths
How dynamic routes work on Cloudflare Workers and Pages — path params, catch-alls, custom domains, and multi-tenant routing without drowning in config...
CORS in Node.js: Complete Guide to Cross-Origin Resource Sharing
Master CORS in Node.js. Learn why it exists, how to configure it properly, set up dynamic CORS, test CORS issues, and understand the security protecti...
Production-Level Variable Definitions: Security Best Practices
Secure your production code with proper variable definitions. Learn about 'as const', Object.freeze(), and other techniques to prevent bugs and securi...
Why TypeScript Saves You From Production Bugs
TypeScript catches errors before they reach production. Learn how it prevents bugs with practical examples.
What's New in Next.js 16: Partial Prerendering and More
Next.js 16 introduces Partial Prerendering, better caching, and improved developer experience. Here's what makes it exciting.
Why Use Next.js as a Full Stack Framework
Next.js has evolved into a powerful full-stack framework. Here's why I use it for everything from APIs to user interfaces.
Designing with Tailwind CSS
Tailwind CSS changed how I think about styling. Here's why it makes building beautiful UIs faster and more enjoyable.