Technical Blog on NestJS, Node.js & APIs | Er. Ayush Adhikari
Technical writings by Er. Ayush Adhikari, Full Stack Developer in Kathmandu. NestJS 12 upgrades, Node.js APIs, Prisma, PostgreSQL, Stripe, MCP, and notes from shipping production systems.
- Adaptive locks and lock-free trees. I would unique the OnMission claim, not port Arctic — OSDI’s Arctic paper is the concurrency story this week. I would unique the OnMission assignment claim and retry a P2002. I would not add a Redis lock to a Stripe webhook. Here is the five-step check.
- Zod 4.5 shipped. I would compile Ask Ayush, not every DTO in Lahebo — Friday’s Zod 4.5 post is the validation story this week. I would compile the four schemas this site already parses, then stop. Here is the five-step check before I bump a lockfile.
- OpenAI cuts Cursor on 12 Nov. I would not pin Lahebo to an editor model — Friday’s OpenAI notice is the software story this weekend. npm shipped a Shai-Hulud variant the same night. Here is the five-step check I would run before I change an editor or a lockfile.
- NestJS 12 shipped. I would dry-run Lahebo this weekend, not rewrite every DTO — Thursday’s NestJS 12 release is the one that actually touches Lahebo. Yesterday’s agent headlines are interesting. Here is the five-step check I would run before I bump a single package.
- AWS bought DuckLabs. Try DuckDB on a report, not on the SyBazar order table — Amazon signed for the company behind DuckDB on August 26. The project stays MIT. Here is the five-step check I would run before I let an analytics engine anywhere near a write path.
- A browser redirect is not a payment. Webhooks retry, so your table has to refuse the second delivery — Stripe, GitHub, Shopify, and every wallet you have ever integrated will POST the same event twice. Here is a five-step inbox that works on NestJS and Prisma — and still works if your provider is not Stripe.
- Agent Plugins 1.0 is on daily.dev. Ask Ayush still swallows one FACTS dump — Amazon, Cursor, Google, Microsoft, OpenAI, and Vercel agreed on a plugin folder. I still paste the whole site into Gemini on every question. Here is the first file I would extract — and the one plugin I would not install.
- I read the Stripe–OpenRouter news and then opened my own chat code — Stripe wants OpenRouter. Everyone is talking about model routers this week. I still send name checks and real questions through the same Gemini door. That has to change.
- Patch OnMission’s Postgres this week. Prisma will not do it for you — PostgreSQL 18.6 landed on August 13 with 28 security fixes. Here is the five-step check I would run on OnMission and LOMA tonight — binaries, not a schema migration.
- Try Cursor Origin on a side project without moving production — Cursor shipped Origin on August 17. I would try it on HelloFutsall first, keep GitHub as the remote, and copy the merge gates I already use on SyBazar.
- GitHub’s 8-hour outage was a retry bug. Check yours tonight — The Aug 17 GitHub incident is what every team is talking about this week. The RCA is not “GitHub is down again.” It is optimistic retries, a VS Code 10x storm, and an autoscaler watching the wrong process.
- Ask Ayush: the on-site assistant on this portfolio — A new section on this site. The corner chat answers from my real profile, projects, and notes — not as a general chatbot. Here is how to use it.
- Point Gemini 3.7 Flash at one Lahebo NestJS module — Google shipped a cheaper coding workhorse on August 13. Here is the five-step swap I would run on Lahebo subscription code — not on the whole monorepo.
- Fix a slow OnMission list without throwing Prisma away — OnMission’s assignment board looked simple in Prisma and expensive in Postgres. Follow these steps on any HR list page that loads more columns than it renders.
- Ship a SyBazar vendor field without breaking the app — Vendor web, admin, and mobile do not release on the same day. These steps keep a SyBazar REST change from renaming a field out from under a client.
- Split a NestJS app the way Lahebo billing forced me to — A module per folder type looks tidy until subscriptions, auth, and invoices import each other. Follow this split on any NestJS SaaS.
- A five-step AWS pipeline I want before a SyBazar service ships — The minimum CI/CD I use for NestJS and Express services at WaftTech. Copy the steps, then add staging that runs the same migrations as production.
- One payment status machine for Stripe, Khalti, and eSewa — Lahebo needs Stripe. SyBazar and Nepmeds need Khalti and eSewa. Follow these steps so support is not archaeology across three SDKs.
- Cut a SyBazar list endpoint by 30% in five queries — The 30% API drop on WaftTech services was not a new cache. Follow these steps on any Mongo or Postgres list that fans out under load — SyBazar and Nepmeds included.