When you bind Ctrl+S to "save" in a web app, do you check event.key === "s" or event.code === "KeyS"? The honest answer is "I don't remember, I copy-paste from Stack Overflow." Until a Dvorak user reports the shortcut is broken — or a Japanese IME user reports it fires mid-composition. This is a live inspector for KeyboardEvent: press any key (or combination), see every field — key, code, keyCode,
I got tired of not knowing why users were dropping off in my app. Heatmaps show you where people click. Analytics show you when they leave. But nothing tells you how they felt while using it. So I built SessionMood API — a REST API that scores user mood in real time based on behavioral events. You send behavioral events from your frontend: fetch("https://session-mood-api-production.up.railway.app/
Posted on vicspot.com — All tools run 100% in your browser. Zero data sent to any server. As developers, we constantly switch between 10+ different tabs just to do basic tasks — format some JSON here, generate a password there, convert a hex color somewhere else. It's frustrating and slow. I built Vicspot.com to fix this — a single page with 12 free browser-based utilities that run entirely client
"Nobody tells freshers the real numbers. HR says 'competitive salary.' LinkedIn shows fake CTCs. College placement cells lie. This post doesn't." Let me ask you something uncomfortable. 👇 You're about to graduate. You're applying for jobs. You see a role that says "CTC: 6-12 LPA." What does that actually mean for your bank account every month? 🤔 What's the difference between a ₹6 LPA offer in Ba
The Model Context Protocol (MCP) has become the default standard for connecting AI agents to external tools and APIs. Governed by the Linux Foundation since early 2025 and adopted by OpenAI, Anthropic, Microsoft, and Vercel, MCP is the USB-C port of the AI ecosystem — one protocol that lets any LLM application talk to any tool server. But there's a gap between reading the spec and building somethi
Background I did some research online and found a nice course that teach how to build LLM from scratch. The course is shared public online and all the assignment resources are here: https://cs336.stanford.edu/. In the following series, I will put the summary and notes starting from lession 1. Tokenization is at the very beginning of the LLM. There were many different tokenization algorithm, suc
If you have spent any real time with Claude Code, you have probably noticed the same problem I did. You write the same instructions in the prompt every other day. "Use four-space indentation here." "Always run the linter after edits." "Format commit messages this way." After the third or fourth repeat, it stops feeling like a prompt and starts feeling like missing config. Skills are how Claude Cod
Adding email and calendar tools to an AI agent is mostly an exercise in restraint. Give it 50 commands and the agent gets confused. Give it 5 carefully-chosen ones and it punches above its weight. After running agents against the Nylas CLI for a few months, these are the five I keep coming back to. Each gets exposed via MCP (nylas mcp install) so the agent can call them directly. nylas email send