---
author: "Umesh Malik"
canonical: "https://umesh-malik.com/blog/category/web-engineering"
description: "Explore Web Engineering articles and tutorials by Umesh Malik — AI Engineer, LLM & GenAI Developer. Learn Web Engineering best practices, practical tips, and in-depth guides."
title: "Umesh Malik's Blog - Web Engineering Articles | Web Engineering Tutorials"
tokens: 3934
generator: "scripts/generate-page-markdown.mjs"
---

[← Back to Blog](https://umesh-malik.com/blog)

# Web Engineering

29 articles

 [![OAuth consent screen with optional scope checkboxes that let users narrow agent permissions](https://umesh-malik.com/blog/optional-oauth-scopes-mcp-servers-cover.png)

Web Engineering • Aug 23, 2026

### Configure Optional OAuth Scopes for MCP Servers and Agents

Configure optional OAuth scopes so users can narrow agent permissions at consent. The API call, the UX, and handling partial grants.

6 min read

Read more →](https://umesh-malik.com/blog/optional-oauth-scopes-mcp-servers)

 [![Vercel CLI DNS management workflow showing terminal commands for DNS records, domains, and project control](https://umesh-malik.com/blog/vercel-cli-dns-commands-cover.png)

Web Engineering • Aug 23, 2026

### Vercel CLI DNS Commands: Manage Records Without the Dashboard

Use Vercel CLI DNS commands to manage records, renew domains, and pause projects from terminal. Automate with --json output.

6 min read

Read more →](https://umesh-malik.com/blog/vercel-cli-dns-commands)

 [![A browser tab converting an animated SVG into an MP4 video entirely client-side using a 30MB ffmpeg.wasm build, with no server round trip](https://umesh-malik.com/blog/svg-to-mp4-in-the-browser-cover.png)

Web Engineering • Aug 19, 2026

### SVG to MP4 in the browser: a two-step workflow, no server

SVG to MP4 in the browser needs no server: paste a URL and 30MB of ffmpeg.wasm renders every frame in your tab. The one catch that trips people up.

8 min read

Read more →](https://umesh-malik.com/blog/svg-to-mp4-in-the-browser)

 [![Cover graphic showing the four-step baseline method — 5-minute buckets, 3-week median, independent-cause match, verdict — next to the eclipse's 15-30% traffic-drop metrics](https://umesh-malik.com/blog/traffic-anomaly-or-outage-baseline-method-cover.png)

Web Engineering • Aug 19, 2026

### Traffic Anomaly or Outage? What a 30% Drop Actually Means

A 15-30% traffic anomaly or outage? Cloudflare's eclipse analysis shows the fix: five-minute buckets against a three-week matched baseline.

7 min read

Read more →](https://umesh-malik.com/blog/traffic-anomaly-or-outage-baseline-method)

 [![A map of five infrastructure components replaced by PostgreSQL features, each annotated with the threshold where the swap stops working](https://umesh-malik.com/blog/use-postgres-for-everything-cover.png)

Web Engineering • Aug 19, 2026

### Use Postgres for everything in production: 5 swaps, 1 cliff

Use Postgres for everything and four of the five swaps hold. The queue is the one that death-spirals: 383,000 dead tuples and 300ms locks at 800 jobs/sec.

8 min read

Read more →](https://umesh-malik.com/blog/use-postgres-for-everything)

 [![Cloudflare's edge injecting the beacon.min.js analytics script into an HTML response before it reaches the browser](https://umesh-malik.com/blog/remove-cloudflare-beacon-min-js-cover.png)

Web Engineering • Aug 17, 2026

### Remove Cloudflare beacon.min.js: you must opt in to opt out

Remove Cloudflare beacon.min.js for good: the disable toggle hides behind adding your site to Web Analytics first, and no-transform is the stronger lever.

9 min read

Read more →](https://umesh-malik.com/blog/remove-cloudflare-beacon-min-js)

 [![Two CPU pools under a sched\_ext policy: latency-critical request threads separated from background work, with a watchdog fallback to EEVDF](https://umesh-malik.com/blog/fix-eevdf-latency-regression-sched-ext-cover.png)

Web Engineering • Aug 16, 2026

### Fix EEVDF latency regressions with sched\_ext: Meta's 28% p99 win

Your p99 got worse after a kernel upgrade and nothing else changed? That is an EEVDF latency regression. Meta cut p99 28% with a two-pool sched\_ext policy.

12 min read

Read more →](https://umesh-malik.com/blog/fix-eevdf-latency-regression-sched-ext)

 [![The five feature-flagged phases of a zero-downtime datastore migration, from dual writes through shadow reads to cutover](https://umesh-malik.com/blog/zero-downtime-database-migration-dual-writes-cover.png)

Web Engineering • Aug 16, 2026

### Zero downtime database migration: 5 flags and a 17x P90 gap

A zero downtime database migration is five feature-flagged phases, not a cutover. P95 said 4x slower, P90 said 17x, and the comparison code took a region down.

12 min read

Read more →](https://umesh-malik.com/blog/zero-downtime-database-migration-dual-writes)

 [![The four integration seams a cloud provider fills for Kubernetes, and what you must build yourself on bare metal](https://umesh-malik.com/blog/kubernetes-on-bare-metal-cloud-integrations-cover.png)

Web Engineering • Aug 14, 2026

### Kubernetes on bare metal: the 4 cloud integrations you must build

Run Kubernetes on bare metal and four integrations become yours: node identity, LoadBalancer IPs, provisioning, storage. Oxide shipped three; one is blocked.

10 min read

Read more →](https://umesh-malik.com/blog/kubernetes-on-bare-metal-cloud-integrations)

 [![Diagram of the Datasette filter injection — a query-string column name flows unquoted into generated SQL and returns rows from a private table](https://umesh-malik.com/blog/datasette-sql-injection-patch-cover.png)

Web Engineering • Aug 7, 2026

### Fix the Datasette SQL Injection: Why execute-sql Won't Save You

The Datasette SQL injection patched in 1.0a38 and 0.65.3 leaks private tables via unescaped filter columns. The check, upgrade, and why execute-sql is no fix.

8 min read

Read more →](https://umesh-malik.com/blog/datasette-sql-injection-patch)

 [![The four agentic web layers — readable, discoverable, callable, payable — mapped to concrete URLs on a static site](https://umesh-malik.com/blog/make-your-site-agent-readable-cover.png)

Web Engineering • Aug 7, 2026

### How to Make Your Site Agent-Readable: 4 Layers, One Worker

Make your site agent-readable in four layers — readable, discoverable, callable, payable. Three are build-time files; only /mcp needs a Worker.

10 min read

Read more →](https://umesh-malik.com/blog/make-your-site-agent-readable)

 [![Diagram of Dependabot running two independent lanes: version updates funnelled through cooldown and a monthly schedule into one grouped pull request, and security updates bypassing all of it to open immediately](https://umesh-malik.com/blog/dependabot-grouped-updates-cut-pr-noise-cover.png)

Web Engineering • Aug 6, 2026

### Configure Dependabot grouped updates: one PR a month, CVEs instant

Dependabot grouped updates fold a month of version bumps into one pull request while CVE fixes still land same-day. The cooldown key most configs miss.

9 min read

Read more →](https://umesh-malik.com/blog/dependabot-grouped-updates-cut-pr-noise)

 [![How to increase SEO traffic in the AI era — a hands-on field guide of genuine, repeatable techniques to earn clicks and AI citations in 2026](https://umesh-malik.com/blog/increase-seo-traffic-ai-era-techniques-cover.png)

Web Engineering • Jul 29, 2026

### How to Increase SEO Traffic in the AI Era: 10 Techniques (2026)

How to increase SEO traffic in the AI era: 10 genuine, white-hat techniques anyone can use to earn clicks and citations from ChatGPT, Perplexity and AI Mode.

7 min read

Read more →](https://umesh-malik.com/blog/increase-seo-traffic-ai-era-techniques)

 [![SEO in the AI era — the shift from ranking blue links to being cited inside AI-generated answers on ChatGPT, Perplexity and Google AI Mode](https://umesh-malik.com/blog/seo-in-the-ai-era-geo-playbook-cover.png)

Web Engineering • Jul 27, 2026

### SEO in the AI Era: The 2026 GEO Playbook for Winning AI Search Traffic

SEO in the AI era: what actually changed, why clicks fell 60%, and the GEO playbook to earn traffic from ChatGPT, Perplexity and Google AI Mode in 2026.

11 min read

Read more →](https://umesh-malik.com/blog/seo-in-the-ai-era-geo-playbook)

 [![React Server Components and the use client boundary: server graph, client graph, and where the line is drawn](https://umesh-malik.com/blog/react-server-components-guide-cover.png)

Web Engineering • Jul 21, 2026

### React Server Components in 2026: The Mental Model, the use client Boundary & When Not to Use Them

React Server Components in 2026: the mental model that finally clicks, the use client boundary rules, and when NOT to use them — with the Web Vitals payoff.

7 min read

Read more →](https://umesh-malik.com/blog/react-server-components-guide)

 [![Cover showing an HTML document streaming placeholder markers that get filled out of order by template-for elements, with no JavaScript](https://umesh-malik.com/blog/streaming-html-out-of-order-without-javascript-cover.png)

Web Engineering • Jul 14, 2026

### Streaming HTML Out of Order Without JavaScript (2026)

Streaming HTML out of order without JavaScript: how Declarative Partial Updates and Declarative Shadow DOM reorder content natively in Chrome 148.

13 min read

Read more →](https://umesh-malik.com/blog/streaming-html-out-of-order-without-javascript)

 [![Cover for the HTTP QUERY method guide: RFC 10008's safe, idempotent, cacheable request method with a body, explained for REST API designers](https://umesh-malik.com/blog/http-query-method-rfc-10008-guide-cover.png)

Web Engineering • Jul 3, 2026

### HTTP QUERY Method Explained (RFC 10008): GET vs POST

RFC 10008's HTTP QUERY method is safe, idempotent, and cacheable like GET but carries a body like POST. What it fixes and where it works today.

9 min read

Read more →](https://umesh-malik.com/blog/http-query-method-rfc-10008-guide)

 [![Cover showing FastAPI's new app.frontend() method mounting a built SPA directory alongside API routes](https://umesh-malik.com/blog/fastapi-spa-app-frontend-explained-cover.png)

Web Engineering • Jun 21, 2026

### FastAPI Finally Has Native SPA Support: app.frontend() Explained

FastAPI 0.138.0 ships app.frontend() — a native way to serve React, Vue, and Svelte SPA builds. How it works, real use cases, and what it still can't do.

8 min read

Read more →](https://umesh-malik.com/blog/fastapi-spa-app-frontend-explained)

 [![A lightning bolt splitting between Next.js and Vite logos, symbolizing Cloudflare's revolutionary Vinext framework that's 4.4x faster](https://umesh-malik.com/blog/cloudflare-vinext-cover.png)

Web Engineering • Feb 25, 2026

### Cloudflare viNext: The $1,100 Next.js-on-Vite Rebuild

Cloudflare viNext rebuilt Next.js on Vite for $1,100 in 7 days: 4.4x faster builds, 57% smaller bundles, already powering CIO.gov in production.

27 min read

Read more →](https://umesh-malik.com/blog/cloudflare-vinext-next-js-vite-revolution)

 [![Editorial cover: Node.js V8 pointer compression cuts heap memory in half](https://umesh-malik.com/blog/nodejs-memory-cut-in-half-cover.png)

Web Engineering • Feb 18, 2026

### Node.js Pointer Compression: Cut Heap Memory ~50%

V8 pointer compression finally lands in Node.js: one Docker image swap cuts heap memory ~50%, improves P99 latency, and can save $80K-$300K a year.

17 min read

Read more →](https://umesh-malik.com/blog/nodejs-memory-cut-in-half-pointer-compression)

 [![Docker Swarm versus Kubernetes cost comparison: $166 per year simple setup versus $200K complex infrastructure](https://umesh-malik.com/blog/docker-swarm-vs-k8s-cover.png)

Web Engineering • Feb 17, 2026

### Docker Swarm vs Kubernetes: $166/yr Beats a $200K Cluster

Docker Swarm vs Kubernetes: a live SaaS runs for $166/year with zero crashes in 10 years, while the average Kubernetes cluster wastes 87% of its CPU.

20 min read

Read more →](https://umesh-malik.com/blog/docker-swarm-vs-kubernetes-166-dollar-reality-check)

 [![Node.js backend architecture showing Express server, middleware chain, REST API endpoints, and database layer](https://umesh-malik.com/blog/nodejs-backend-cover.png)

Web Engineering • Feb 10, 2026

### Node.js Backend for Frontend Developers: A Practical Guide

A frontend developer's guide to building a Node.js backend: Express, REST APIs, middleware, databases, auth, and deployment — plus the mindset shift you need.

8 min read

Read more →](https://umesh-malik.com/blog/nodejs-backend-for-frontend-developers)

 [![Core Web Vitals dashboard showing three gauge meters for LCP, INP, and CLS with before and after optimization results](https://umesh-malik.com/blog/core-web-vitals-cover.png)

Web Engineering • Nov 12, 2025

### How to Fix Core Web Vitals: LCP, INP & CLS (2026)

A hands-on guide to optimizing Core Web Vitals (LCP, INP, CLS). Covers measurement, diagnosis, and specific fixes with before/after examples from real projects.

6 min read

Read more →](https://umesh-malik.com/blog/core-web-vitals-optimization-guide)

 [![Frontend testing trophy model with layers for static analysis, integration tests, unit tests, and E2E tests](https://umesh-malik.com/blog/frontend-testing-cover.png)

Web Engineering • Jul 10, 2025

### Frontend Testing Strategies That Actually Work in 2026

Practical frontend testing strategies for 2025: component tests, integration, E2E, and the patterns that give the most confidence per line.

5 min read

Read more →](https://umesh-malik.com/blog/frontend-testing-strategies-2025)

 [![TailwindCSS v4 migration showing the shift from JavaScript config to CSS-first @theme configuration](https://umesh-malik.com/blog/tailwindcss-v4-cover.png)

Web Engineering • May 20, 2025

### TailwindCSS v4 Migration Guide: Breaking Changes & the @theme Config

TailwindCSS v4 migration, done right: every breaking change, the new CSS-first @theme config that replaces tailwind.config.js, and a step-by-step upgrade path.

3 min read

Read more →](https://umesh-malik.com/blog/tailwindcss-v4-migration-guide)

 [![JavaScript ES2024 features overview showing Object.groupBy, Promise.withResolvers, Unicode strings, and RegExp v flag](https://umesh-malik.com/blog/javascript-es2024-cover.png)

Web Engineering • Mar 15, 2025

### ES2024 Features You'll Actually Use in JavaScript

The most impactful ES2024 features: Array grouping, Promise.withResolvers, well-formed Unicode strings, and the RegExp v flag — with practical examples.

5 min read

Read more →](https://umesh-malik.com/blog/javascript-es2024-features-you-should-know)

 [![TypeScript utility types overview showing Partial, Required, Pick, Omit, and Record with code examples](https://umesh-malik.com/blog/typescript-utility-cover.png)

Web Engineering • Dec 15, 2024

### TypeScript Utility Types: Complete Guide to Partial, Required, Pick, Omit, Record, and More (2026)

TypeScript utility types explained: Partial, Pick, Omit, Record, Exclude, ReturnType and more — with real examples, a cheat sheet, and common pitfalls.

9 min read

Read more →](https://umesh-malik.com/blog/typescript-utility-types-complete-guide)

 [![React performance optimization showing 10 techniques including memoization, code splitting, and virtualization](https://umesh-malik.com/blog/react-performance-cover.png)

Web Engineering • Nov 20, 2024

### React Performance Optimization: 10 Proven Techniques

React performance optimization techniques — memoization, code splitting, virtualization, and 7 more battle-tested strategies from real apps.

5 min read

Read more →](https://umesh-malik.com/blog/react-performance-optimization-techniques)

 [![SvelteKit versus Next.js framework comparison across performance, developer experience, routing, and ecosystem](https://umesh-malik.com/blog/sveltekit-vs-nextjs-cover.png)

Web Engineering • Oct 10, 2024

### SvelteKit vs Next.js 2026: Which Should You Choose?

SvelteKit vs Next.js: an in-depth 2026 comparison of performance, DX, routing, and deployment, from real production experience.

5 min read

Read more →](https://umesh-malik.com/blog/sveltekit-vs-nextjs-comparison)
