# Waseem Anjum > Waseem Anjum is a full stack and AI automation engineer in Lahore, Pakistan, building AI agents, MCP servers and Next.js, NestJS and TypeScript products. I'm a full stack and AI automation engineer in Lahore, Pakistan, working remotely for a company based in Bahrain. I build AI agents, MCP servers and automation pipelines, and the Next.js, React, Node.js and NestJS products around them, on PostgreSQL or MongoDB. Clear system design, fast pages and code that holds up in production. The work is remote and covers the whole stack: AI automation and agents, Model Context Protocol servers, full stack applications, NestJS and Node.js APIs, system design, performance, technical SEO, and open-source developer tools. - Role: Full Stack & AI Automation Engineer - Based: Lahore, Pakistan - Engagement: Remote, for a Bahrain-based company - Practice: AI automation, AI agents, full stack products and performance - Building: Benchline, an open-source tool directory with an MCP server, and agent-rules for AI coding agents - Writing: Tested guides on AI automation, MCP, NestJS and Next.js on the blog - Open to: Remote full stack and AI automation projects - Stack: AI automation, AI agents, MCP, Python, TypeScript, React, Next.js, Node.js, NestJS, PostgreSQL, MongoDB, Web3, System design, Performance - Email: waseemaofficial@gmail.com - Phone: +92 301 922 2435 ## Profile - [Home](https://fabwaseem.com): Full Stack & AI Automation Engineer in Lahore, Pakistan - [About Waseem Anjum](https://fabwaseem.com): Who Waseem Anjum is, where he works, and what he builds. - [Projects](https://fabwaseem.com/projects): AI agents, MCP servers, full stack apps and open-source tools, each with a case study. - [Blog](https://fabwaseem.com/blog): Tested guides by Waseem Anjum on AI automation, AI agents, MCP servers, NestJS, Next.js, TypeScript and self-hosting, with real code and measured results. - [Now](https://fabwaseem.com/now): What I'm building and writing right now. - [Contact](https://fabwaseem.com/#contact): Hiring a remote full stack or AI automation engineer, or need an AI agent, MCP server or Next.js product built? Send the problem and a rough timeline. I reply personally, usually within a day. - [llms-full.txt](https://fabwaseem.com/llms-full.txt): Expanded context: profile, stack, services, project write-ups, and full blog posts. ## Projects - [Sonora](https://fabwaseem.com/projects/sonora): Sonora is a private, fully offline speech studio for Windows. It runs AI text-to-speech, speech-to-text transcription and global voice dictation locally, so scripts and recordings never leave your PC. Live site: https://sonora-olive.vercel.app - [Civitai Gallery Explorer](https://fabwaseem.com/projects/civitai-gallery-explorer): An open-source ComfyUI custom node pack that browses the Civitai gallery inside your graph, sends prompts, preview images and LoRA metadata to downstream nodes, and safely auto-downloads missing LoRAs. Live site: https://registry.comfy.org/nodes/civitai-gallery-explorer - [Civitai Browser](https://fabwaseem.com/projects/civitai-browser): A Windows desktop app built with Tauri 2 and React 19 for browsing Civitai images that carry generation metadata and ComfyUI workflows, with a virtualized masonry gallery and native drag-and-drop into ComfyUI. Live site: https://github.com/fabwaseem/civitai-browser - [Snagbox](https://fabwaseem.com/projects/snagbox): Snagbox is an open-source, self-hostable media downloader API built with NestJS. Queue a YouTube, TikTok, Instagram or X link, watch progress over server-sent events and download the file from a signed link. Live site: https://snagbox.fabwaseem.com - [Forgekit](https://fabwaseem.com/projects/forgekit): Forgekit is an open-source Next.js 16 AI starter kit: a streaming AI chatbot with tool calling, five model providers including local Ollama, RAG on pgvector, an MCP endpoint, Better Auth and a Docker self-hosting path. Live site: https://github.com/fabwaseem/forgekit - [Snipshot](https://fabwaseem.com/projects/snipshot): Snipshot is a fast screenshot studio for Windows. Capture a screen, region or window, frame it in a mockup, annotate it and export share-ready PNG, JPEG or WebP images, all processed on your machine. Live site: https://snipshot-alpha.vercel.app - [Open Releases](https://fabwaseem.com/projects/open-releases): Open Releases is a searchable directory of open-source apps with real release downloads. Built with Next.js, PostgreSQL and the GitHub API, it matches every app to the right installer for your platform. Live site: https://open-releases.vercel.app - [Vidyoza](https://fabwaseem.com/projects/vidyoza): Vidyoza is a full-stack social media video downloader built with Next.js and NestJS. Save videos from YouTube, TikTok, Instagram, X and Facebook from 4K down to 144p, or extract audio, with live progress. Live site: https://vidyoza.com - [Cladly](https://fabwaseem.com/projects/cladly): Cladly is a link-in-bio platform built with Next.js and Prisma. Creators get one page for every profile, post and link, with profession-tailored skins, rich content blocks and built-in analytics for views, clicks and CTR. Live site: https://cladly.bio - [NovaCraft UI](https://fabwaseem.com/projects/novacraft-ui): NovaCraft UI is an open-source, dark-first React component library in TypeScript and Tailwind CSS. It has glass, glow and gradient variants, a live theme playground, and blocks and templates you can copy into your app. Live site: https://novacraft-ui.vercel.app - [Foliora](https://fabwaseem.com/projects/foliora): Foliora is an open-source Next.js 16 portfolio and blog platform with an admin CMS, 218 themes, built-in SEO, optional OpenAI writing helpers and PostgreSQL via Prisma. Clone it and run your own site. Live site: https://foliora.fabwaseem.com - [Lumina](https://fabwaseem.com/projects/lumina): Lumina is an open-source, cross-platform Electron desktop gallery for CivitAI. It queues prompts into your local ComfyUI server through a mapped API workflow and downloads missing LoRAs, on Windows, macOS and Linux. Live site: https://github.com/fabwaseem/lumina - [Banowi AI Commerce Agent](https://fabwaseem.com/projects/banowi-agent): Banowi is an AI sales and support agent for Shopify merchants on WhatsApp. It answers customers from live catalogue data, places and tracks orders in the chat, matches payment screenshots to orders and hands off to a human in one click. Live site: https://app.banowi.com - [Banowi Shopify Store](https://fabwaseem.com/projects/banowi): Banowi is a custom Shopify storefront and Liquid theme built for the Pakistani market: mobile-first, conversion-focused shopping across electronics, home essentials and health products, with Cash on Delivery and WhatsApp support. Live site: https://banowi.com - [Plinth](https://fabwaseem.com/projects/plinth): A free desktop video downloader for YouTube and 2000+ sites — 4K HDR, MP3, playlists, subtitles. I maintain this build: rebranded packaging via Scoop and Homebrew, public site and docs; winget coming soon. Live site: https://plinth.fabwaseem.com - [Benchline](https://fabwaseem.com/projects/benchline): Benchline is a free, open-source directory of browser tools for developers, SEO, PDFs and images. Every tool is also callable by AI agents in Cursor, Claude or VS Code through a stateless MCP server, with no API key. Live site: https://benchline.fabwaseem.com - [agent-rules](https://fabwaseem.com/projects/agent-rules): Open-source, modular instructions for AI coding agents. One source of rules renders into AGENTS.md, CLAUDE.md, Cursor rules, GitHub Copilot instructions, Claude Code skills and Windsurf/Devin formats through a zero-dependency CLI. Live site: https://github.com/fabwaseem/agent-rules - [Live TV](https://fabwaseem.com/projects/live-tv): A free live TV web app that streams public channels from around the world in the browser, with no sign-up. Built with Next.js 16, React 19 and hls.js, with a guarded HLS proxy and automatic stream fallback. Live site: https://livetv.fabwaseem.com - [Next.js Portfolio & Blog Platform](https://fabwaseem.com/projects/nextjs-portfolio-blog-platform): An open-source, self-hostable portfolio and blog platform with an admin CMS, 218 themes, Better Auth, PostgreSQL via Prisma 7, S3 image uploads and optional AI writing helpers. Built on Next.js 16 and React 19. Live site: https://github.com/fabwaseem/nextjs-portfolio-website ## Blog - [Blog](https://fabwaseem.com/blog): Tested guides by Waseem Anjum on AI automation, AI agents, MCP servers, NestJS, Next.js, TypeScript and self-hosting, with real code and measured results. - [Categories](https://fabwaseem.com/blog/category): Every category with published writing. - [AI Engineering](https://fabwaseem.com/blog/category/ai-engineering): Practical guides to building AI-powered software: MCP servers, agent tooling, LLM integrations and making apps readable by AI assistants. - [Backend & APIs](https://fabwaseem.com/blog/category/backend-apis): Hands-on guides to building and running backend services: Node.js and Bun runtimes, NestJS, REST and MCP APIs, performance and production patterns. - [Developer Tools](https://fabwaseem.com/blog/category/developer-tools): Linters, formatters, build tools and the developer workflow around JavaScript and TypeScript projects, tested on real code. - [DevOps & Self-Hosting](https://fabwaseem.com/blog/category/devops-self-hosting): Practical guides to deploying, hosting and operating web apps on infrastructure you control: Docker, Coolify, VPS setups, CI/CD and production hardening. - [Next.js & React](https://fabwaseem.com/blog/category/nextjs-react): Hands-on guides to building production apps with Next.js and React: App Router, Server Components, caching, SEO, performance and UI patterns. - [Tags](https://fabwaseem.com/blog/tag): Every tag with published writing. - [agents-md](https://fabwaseem.com/blog/tag/agents-md) - [ai](https://fabwaseem.com/blog/tag/ai) - [AI Agents](https://fabwaseem.com/blog/tag/ai-agents) - [ai-automation](https://fabwaseem.com/blog/tag/ai-automation) - [ai-coding](https://fabwaseem.com/blog/tag/ai-coding) - [ai-sdk](https://fabwaseem.com/blog/tag/ai-sdk) - [ai-search](https://fabwaseem.com/blog/tag/ai-search) - [API Security](https://fabwaseem.com/blog/tag/api-security) - [authentication](https://fabwaseem.com/blog/tag/authentication) - [bullmq](https://fabwaseem.com/blog/tag/bullmq) - [Bun](https://fabwaseem.com/blog/tag/bun) - [cache-components](https://fabwaseem.com/blog/tag/cache-components) - [caching](https://fabwaseem.com/blog/tag/caching) - [chatgpt](https://fabwaseem.com/blog/tag/chatgpt) - [claude-code](https://fabwaseem.com/blog/tag/claude-code) - [ComfyUI](https://fabwaseem.com/blog/tag/comfyui) - [Coolify](https://fabwaseem.com/blog/tag/coolify) - [cursor](https://fabwaseem.com/blog/tag/cursor) - [Deployment](https://fabwaseem.com/blog/tag/deployment) - [devops](https://fabwaseem.com/blog/tag/devops) - [Docker](https://fabwaseem.com/blog/tag/docker) - [Elasticsearch](https://fabwaseem.com/blog/tag/elasticsearch) - [ESLint](https://fabwaseem.com/blog/tag/eslint) - [Express](https://fabwaseem.com/blog/tag/express) - [Fastify](https://fabwaseem.com/blog/tag/fastify) - [free-tools](https://fabwaseem.com/blog/tag/free-tools) - [Generative AI](https://fabwaseem.com/blog/tag/generative-ai) - [geo](https://fabwaseem.com/blog/tag/geo) - [Hono](https://fabwaseem.com/blog/tag/hono) - [JavaScript](https://fabwaseem.com/blog/tag/javascript) - [json-ld](https://fabwaseem.com/blog/tag/json-ld) - [jsonb](https://fabwaseem.com/blog/tag/jsonb) - [Linting](https://fabwaseem.com/blog/tag/linting) - [llms-txt](https://fabwaseem.com/blog/tag/llms-txt) - [MCP](https://fabwaseem.com/blog/tag/mcp) - [Meilisearch](https://fabwaseem.com/blog/tag/meilisearch) - [mongodb](https://fabwaseem.com/blog/tag/mongodb) - [NestJS](https://fabwaseem.com/blog/tag/nestjs) - [Next.js](https://fabwaseem.com/blog/tag/next-js) - [Node.js](https://fabwaseem.com/blog/tag/nodejs) - [og-image](https://fabwaseem.com/blog/tag/og-image) - [open-graph](https://fabwaseem.com/blog/tag/open-graph) - [open-source](https://fabwaseem.com/blog/tag/open-source) - [performance](https://fabwaseem.com/blog/tag/performance) - [pg-boss](https://fabwaseem.com/blog/tag/pg-boss) - [postgresql](https://fabwaseem.com/blog/tag/postgresql) - [Python](https://fabwaseem.com/blog/tag/python) - [rag](https://fabwaseem.com/blog/tag/rag) - [React](https://fabwaseem.com/blog/tag/react) - [redis](https://fabwaseem.com/blog/tag/redis) - [robots-txt](https://fabwaseem.com/blog/tag/robots-txt) - [route-handlers](https://fabwaseem.com/blog/tag/route-handlers) - [rxjs](https://fabwaseem.com/blog/tag/rxjs) - [search](https://fabwaseem.com/blog/tag/search) - [security](https://fabwaseem.com/blog/tag/security) - [Self-Hosting](https://fabwaseem.com/blog/tag/self-hosting) - [seo](https://fabwaseem.com/blog/tag/seo) - [server-actions](https://fabwaseem.com/blog/tag/server-actions) - [social-media](https://fabwaseem.com/blog/tag/social-media) - [Stable Diffusion](https://fabwaseem.com/blog/tag/stable-diffusion) - [TanStack](https://fabwaseem.com/blog/tag/tanstack) - [TypeScript](https://fabwaseem.com/blog/tag/typescript) - [vercel](https://fabwaseem.com/blog/tag/vercel) - [viem](https://fabwaseem.com/blog/tag/viem) - [web3](https://fabwaseem.com/blog/tag/web3) - [MongoDB vs Postgres JSONB in 2026: Inserts, Lookups, Updates and Storage, Benchmarked](https://fabwaseem.com/blog/mongodb-vs-postgres-jsonb): I loaded the same 200,000 order documents into MongoDB 9.0 and PostgreSQL 18 JSONB and measured inserts, indexed lookups (GIN vs B-tree), containment filters, nested updates, aggregations and disk size. - [Postgres Job Queues in 2026: SKIP LOCKED vs pg-boss vs BullMQ (Redis and Postgres), Benchmarked](https://fabwaseem.com/blog/postgres-job-queue-pg-boss-vs-bullmq): I benchmarked a hand-written SKIP LOCKED queue, pg-boss 12 and BullMQ 6 on both Redis and PostgreSQL: enqueue speed, throughput, pickup latency, crash recovery, transactional enqueue and storage per job. - [Sign-In with Ethereum in Next.js 16: SIWE with viem, iron-session and a Replay-Proof Nonce (Tested)](https://fabwaseem.com/blog/sign-in-with-ethereum-nextjs): A tested Sign-In with Ethereum flow for Next.js 16 with viem and iron-session: nonce, wallet signature and session, plus the cookie-nonce replay bug and the 1-second default verify I found while attacking it. - [Postgres Full-Text Search vs Elasticsearch vs Meilisearch: BM25 Benchmarked (2026)](https://fabwaseem.com/blog/postgres-full-text-search-vs-elasticsearch): I scored built-in tsvector, pg_search, pg_textsearch, Elasticsearch 9.5 and Meilisearch 1.55 on three BEIR datasets: ranking quality (nDCG@10), latency, index size, typos and how fast new rows become searchable. - [How to Build a ComfyUI Custom Node with a JavaScript UI](https://fabwaseem.com/blog/comfyui-custom-node-javascript-ui): Build a ComfyUI custom node with its own JavaScript UI: INPUT_TYPES and the V3 schema, WEB_DIRECTORY, passing UI picks into node outputs, routes, saving state and publishing to the Comfy Registry. Tested on ComfyUI 0.42.1. - [SSRF Protection in Node.js: Validating User URLs, Redirects and DNS (Tested)](https://fabwaseem.com/blog/ssrf-protection-nodejs): A regex on the hostname is not SSRF protection. I ran 16 bypass payloads against three checks on Node.js 20 and show the approach that holds up: new URL(), net.BlockList, re-checking every redirect hop and validating the DNS answer at connect time. - [How to Add a Remote MCP Server to Cursor, Claude Code, VS Code and Claude Desktop](https://fabwaseem.com/blog/add-remote-mcp-server): Tested setup for adding a remote MCP server to Cursor, Claude Code, VS Code and Claude Desktop, using a real public endpoint. Copy-paste configs, curl and Inspector checks, mcp-remote, and what tools/list costs in latency and tokens. - [Server-Sent Events in NestJS: Real-Time Job Progress with @Sse (Tested)](https://fabwaseem.com/blog/nestjs-server-sent-events): How to stream live job progress from NestJS with @Sse and RxJS, with the patterns from my Snagbox API: ReplaySubject per job, your own event ids, comment heartbeats, and why one stream per item stalls Chrome. Every behaviour tested on NestJS 12.1.3. - [Building an AI Automation Pipeline in Node.js with BullMQ: Queues, Retries and Rate Limits](https://fabwaseem.com/blog/ai-automation-pipeline-nodejs-bullmq): How to move LLM calls out of request handlers and into a BullMQ queue: idempotent jobs, Retry-After aware backoff with jitter, worker rate limits, schema-validated model output and a dead-letter queue. Tested TypeScript code. - [A secure NestJS + Prisma API starter, piece by piece](https://fabwaseem.com/blog/secure-nestjs-prisma-api-starter): A walkthrough of the security layer in my NestJS 11 + Prisma 7 starter: Helmet headers, a CORS allow-list, three-window rate limiting, opt-in CSRF, header-free Pino logs and a Prisma error filter, with the real code and the gaps still to close. - [Building Benchline: browser tools that are also a stateless MCP server](https://fabwaseem.com/blog/building-benchline-stateless-mcp-server): How Benchline runs 61 browser tools where each one is a pure function shared by a web page, a stateless Streamable HTTP MCP server and a JSON API, using real code from the repo. - [Coolify vs Dokploy in 2026: Resource Usage Tested on Identical VMs](https://fabwaseem.com/blog/coolify-vs-dokploy): I installed Coolify 4.4.6 and Dokploy 0.30.8 on identical fresh Ubuntu VMs. Coolify idled at ~520 MiB and 3 GB of disk, Dokploy at ~831 MiB and 5 GB. Here's what each installs, plus security and which to pick. - [AI SDK 7 Migration: Upgrading from AI SDK 6 (What the Codemod Misses)](https://fabwaseem.com/blog/ai-sdk-7-migration): I upgraded a real AI SDK 6 app to AI SDK 7. The codemod fixed 15 lines in 20 seconds but only 1 of 9 broken tests. Here's every step, the behaviour changes TypeScript misses, and the OpenTelemetry trap. - [TanStack Start vs Next.js in 2026: Same App, Real Benchmarks](https://fabwaseem.com/blog/tanstack-start-vs-nextjs): TanStack Start 1.0 is stable, so I built the same store in Start and Next.js 16.4 and benchmarked both. Start served 2.9× to 8.6× more dynamic requests, shipped 20% less JS and built 3.9× faster. Next.js won on static pages. - [Oxlint vs Biome vs ESLint in 2026: Benchmarked on a Real Next.js Codebase](https://fabwaseem.com/blog/oxlint-vs-eslint): I ran ESLint 9 and 10, Oxlint 1.88 and Biome 2.5 on this site's real Next.js code. Oxlint was 81× faster than ESLint with the same rules and matched all 80 typescript-eslint findings 16× faster. Here's what each migration keeps and breaks. - [Hono vs Express vs Fastify (and NestJS) in 2026: Real Benchmarks on Node 24, Node 26 and Bun](https://fabwaseem.com/blog/hono-vs-express): I benchmarked Hono, Express 5, Fastify 5 and NestJS 12 across JSON, route parameters and POST bodies on Node 24, Node 26 and Bun. Hono and Fastify tie on Node at about 1.4× Express; on Bun, Hono hits 118k requests per second. - [MCP Security in 2026: The OAuth SDK CVEs, Tested, and How to Lock Down Your Server](https://fabwaseem.com/blog/mcp-security): Both official MCP SDKs had a high-severity OAuth flaw (CVE-2026-104850). I reproduced it locally, found that upgrading alone doesn't fix bundled providers, and show how a production MCP server handles OAuth, per-tool scopes and audit logging. - [NestJS 12 Migration Guide: Upgrading from v11, Tested and Benchmarked](https://fabwaseem.com/blog/nestjs-12): I upgraded a real NestJS 11 API to NestJS 12.1.3 with nest upgrade, fixed what broke (TypeScript 6, Jest and ESM, @Optional), and benchmarked v11 vs v12, Zod vs class-validator, Jest vs Vitest, ESLint vs oxlint, TypeScript 7 and Bun. - [Bun vs Node.js in 2026: Bun 1.4 vs Node 24 and 26, Benchmarked](https://fabwaseem.com/blog/bun-vs-node): I ran the same Hono, Express and Postgres apps on Bun 1.4.3, Node.js 24 and Node.js 26, then measured throughput, memory, startup, TypeScript, installs, next build and native addons. Here is when Bun is worth switching to, and when Node 26 is enough. - [MCP vs API: When You Need Which, With Real Benchmarks](https://fabwaseem.com/blog/mcp-vs-api): I built the same service as a REST API and as a stateless MCP server, then measured latency, throughput, bytes and the tokens a model reads. Here is when you need MCP, when a plain API wins, and how to wrap one with the other. - [pgvector vs Pinecone vs Qdrant: Benchmarked for RAG in 2026](https://fabwaseem.com/blog/pgvector-vs-pinecone-vs-qdrant): I loaded 100,000 OpenAI embeddings into pgvector 0.8.7 on Postgres 18 and Qdrant 1.19 and measured recall, latency, index build and filtered search, then compared Pinecone's documented limits and pricing. When you need a vector database, and when Postgres is enough. - [React Compiler in Next.js 16.4: Babel vs Rust, Benchmarked](https://fabwaseem.com/blog/react-compiler-nextjs): I compiled a Next.js 16.4 app with no compiler, the Babel React Compiler and the new Rust React Compiler, then counted re-renders in Chrome: 20,000 row renders dropped to 0, build cost, bundle size, lint rules and the memo() gap. - [UUIDv7 in PostgreSQL 18: uuidv7() vs UUIDv4 vs bigint Primary Keys, Benchmarked](https://fabwaseem.com/blog/uuidv7-postgres): PostgreSQL 18 generates UUIDv7 natively. I loaded 10M rows keyed by bigint, uuidv4 and uuidv7: load time, WAL, index size and insert throughput, plus Prisma and Drizzle setup and the index trap in time-range queries. - [Better Auth with Next.js 16: proxy.ts, Prisma 7 and Server Actions (Tested Setup)](https://fabwaseem.com/blog/better-auth-nextjs): A tested Better Auth 1.7 setup for Next.js 16.4 with Prisma 7 and PostgreSQL: route handler, server-action sign-in with nextCookies, proxy.ts checks, query counts per page load, the joins gotcha and Better Auth vs Clerk. - [Drizzle vs Prisma in 2026: Benchmarks, Drizzle 1.0, Prisma 8 and Which to Choose](https://fabwaseem.com/blog/drizzle-vs-prisma): Drizzle vs Prisma, benchmarked on PostgreSQL 17 across Drizzle 0.45, Drizzle 1.0 RC, Prisma 7 and Prisma 8 RC: query speed, the OFFSET trap, cold starts, install size, migrations and which to choose. - [React View Transitions in Next.js 16.4: ViewTransition, addTransitionType and Tested Examples](https://fabwaseem.com/blog/react-view-transitions): React View Transitions are stable in React 19.3 and work in Next.js 16.4 with no config. Shared-element morphs, Suspense reveals, directional slides and addTransitionType, tested in Chrome, plus the back-button gap. - [Prisma 8 vs Prisma 7: Should You Upgrade? A Tested Migration Guide](https://fabwaseem.com/blog/prisma-8): Prisma 8 is a release candidate, yet npm install prisma already installs it. What changed from Prisma 7, what is missing, a tested side-by-side migration on PostgreSQL, two gotchas the docs skip, and whether to upgrade now. - [TypeScript 7 Upgrade Guide: What Breaks, ESLint, Next.js and Real Benchmarks](https://fabwaseem.com/blog/typescript-7): TypeScript 7 is the native Go compiler, latest on npm since July 2026. A tested upgrade guide: 5.2x faster builds on Hono, the removed tsconfig options, the typescript-eslint break, the TS 6 side-by-side setup and Next.js 16.4. - [Stateless MCP Servers: What the 2026-07-28 Spec Changed and How to Migrate](https://fabwaseem.com/blog/mcp-server-stateless): MCP is stateless since the 2026-07-28 spec: no initialize, no Mcp-Session-Id. What changed on the wire, a tested TypeScript SDK v2 server on two instances, handles, requestState, MRTR elicitation and a migration checklist. - [Agent Skills Explained: How to Write a SKILL.md for Claude Code, Cursor, Codex and Copilot](https://fabwaseem.com/blog/agent-skills): Agent Skills explained: the SKILL.md format, where Claude Code, Cursor, Codex and Copilot look for skills, how to install them with npx skills add, and a real validated Next.js security skill you can copy. - [Next.js Security Update October 2026: Patch the use cache RCE, SVG sharp RCE and Server Actions DoS](https://fabwaseem.com/blog/nextjs-security-update-october-2026): The October 14, 2026 Next.js security update fixes two critical RCEs (use cache and SVG via sharp) and a Server Actions DoS. Check if you are affected, run a free checker script, and patch Next.js 15 and 16 on Docker or Coolify. - [Next.js use cache Explained: Cache Components, cacheLife and cacheTag in Next.js 16.4](https://fabwaseem.com/blog/nextjs-use-cache): Next.js use cache explained with tested Next.js 16.4 code: how Cache Components work, cacheLife profiles, cacheTag, updateTag vs revalidateTag, use cache private and remote, self-hosting and migrating an existing app. - [Next.js Server Actions vs Route Handlers (API Routes): When to Use Each](https://fabwaseem.com/blog/server-actions-vs-route-handlers): Server Actions vs Route Handlers in Next.js 16: use Server Actions for mutations from your own UI, Route Handlers for webhooks, mobile apps and public APIs, and Server Components for reads. Tested code, comparison tables and security rules. - [Free AI SEO Checker: How to Rank in ChatGPT, Perplexity and AI Overviews](https://fabwaseem.com/blog/ai-seo-checker): A free AI SEO checker that runs a GEO audit on any URL: AI crawler rules, llms.txt, JSON-LD, metadata and answer-first content, plus how to rank in ChatGPT answers. - [Free llms.txt Generator: What llms.txt Is and How to Create One](https://fabwaseem.com/blog/llms-txt-generator): A free llms.txt generator that builds a spec-style llms.txt and llms-full.txt from your sitemap, plus what llms.txt is, the format, SEO impact and Next.js setup. - [Forgekit: An Open-Source Next.js AI Starter Kit with RAG and pgvector](https://fabwaseem.com/blog/nextjs-ai-starter-kit): Forgekit is a free, MIT-licensed Next.js AI starter kit: streaming chat, five model providers including local Ollama, RAG on pgvector, Better Auth, MCP and a 284 MB Docker image. - [Free OG Image Generator: Open Graph Image Sizes and Dynamic OG Images in Next.js](https://fabwaseem.com/blog/free-og-image-generator): A free OG image generator for 1200x630 PNGs, plus Open Graph image sizes for every platform, dynamic OG images in Next.js with next/og, meta tags and debugging. - [AGENTS.md vs CLAUDE.md vs Cursor Rules: A Next.js Guide with a Free Rules Pack](https://fabwaseem.com/blog/agents-md-vs-claude-md): AGENTS.md vs CLAUDE.md vs Cursor rules vs Copilot instructions: what each file does, which agent reads it, real Next.js rule examples, and a free open-source rules pack. - [Production Next.js Dockerfile: Multi-Stage, Standalone and Non-Root](https://fabwaseem.com/blog/nextjs-dockerfile): A complete production Next.js Dockerfile for Next.js 16 and Node 24: multi-stage build, output: 'standalone', non-root user, sharp, env vars and health checks, with measured image sizes. - [How to Build an MCP Server in Next.js: Streamable HTTP, Auth and Tools](https://fabwaseem.com/blog/build-mcp-server-nextjs): A step-by-step guide to build an MCP server in Next.js with the official v2 TypeScript SDK: an App Router route handler, Streamable HTTP, bearer-token auth, Origin checks and Zod-validated tools. - [Next.js SEO for AI Search: How to Get Cited by ChatGPT, Perplexity and AI Overviews](https://fabwaseem.com/blog/nextjs-seo-ai-search): A practical Next.js SEO guide for the AI search era: Metadata API, sitemap.ts, robots.ts for AI crawlers, JSON-LD, llms.txt and a content structure that ChatGPT, Perplexity and Google AI Overviews can cite. - [Coolify vs Vercel for Next.js: Cost, Features and Trade-offs](https://fabwaseem.com/blog/coolify-vs-vercel): Coolify vs Vercel for Next.js, compared on real pricing, Next.js feature support, previews, databases, long-running work and lock-in, plus a safe migration checklist. - [How to Self-Host Next.js with Coolify: Complete Production Guide](https://fabwaseem.com/blog/self-host-nextjs-with-coolify): A step-by-step guide to self-host Next.js with Coolify on your own VPS: install Coolify, choose Nixpacks or a standalone Dockerfile, wire up PostgreSQL and env vars, and harden it for production. ## Optional - [RSS](https://fabwaseem.com/blog/rss.xml): Published posts. - [Atom](https://fabwaseem.com/blog/atom.xml): Published posts. - [Sitemap](https://fabwaseem.com/sitemap.xml): Indexable pages. - [GitHub](https://github.com/fabwaseem) - [LinkedIn](https://www.linkedin.com/in/fabwaseem/) - [WhatsApp](https://wa.me/923019222435) - [YouTube](https://youtube.com/@opensourcecoding) - [X](https://x.com/fabwaseeem) - [Instagram](https://instagram.com/fabwaseem) - [Behance](https://behance.net/fabwaseem) - [Stack Overflow](https://stackoverflow.com/users/16352771/waseem-anjum)