Blog

A collection of articles on development, design, and ideas.

I Built a Browser SDK That Classifies Sessions Into Three Categories, Not Two

·10 min read·1 views

CAPTCHA and fingerprinting were built for clumsy bots. In 2026, LLM agents fill forms with realistic typing cadence, patch out webdriver flags, and solve CAPTCHA for $0.50. Nyasa adds a third actor to the model: AuthorizedAgent. One SDK, 24 signals, six detection rules.

Adding a view counter to your portfolio for free

·8 min read·2 views

How to track blog post views in a Next.js portfolio without paying anything. AWS DynamoDB, two API routes, and a five-second delay so bounces do not count.

2025

·2 min read

The hardest year of my life. A startup failed. I ran out of map. And somehow, I came out the other side a little more real.

Your Google Sheets Signup Form Is Silently Losing Rows. Here's Why.

·8 min read·2 views

The Google Sheets API drops rows under concurrent writes. It's a documented bug and every wrapper (SheetDB, Sheety, SheetBest) inherits it. I ran the test against all of them. Fifty parallel writes, somewhere between 35 and 47 rows. Every run different. Here is the bug, why a lock doesn't fix it, and what I built instead.

Gemini 2.5 Flash Was Returning 37 Tokens. Here's Why.

·6 min read·6 views

I set max_tokens=1000 on a Gemini 2.5 Flash call. Got back 37 tokens. No error, no warning. The real cause was reasoning tokens eating the output budget, a bug documented in 15+ open GitHub issues but missing from every tutorial. Here is the full debugging trail, the three-tier fix with tradeoffs, and a diagnostic script.

LiteLLM Got Hacked. I Built a Simpler LLM Gateway You Can Actually Audit.

·5 min read·1 views

The most popular LLM routing library got compromised in a supply chain attack. 95 million monthly downloads. Credential harvester, Kubernetes backdoor, persistent RCE. I built FreeLLM as a narrower, auditable alternative: 6 providers, 262 tests, one job.

I Built an OpenAI-Compatible Gateway That Routes Across 5 Free LLM Providers

·4 min read·3 views

Every LLM provider has a free tier. Combined, they give you ~80 requests per minute. FreeLLM routes your requests across Groq, Gemini, Mistral, Cerebras, and Ollama with automatic failover. One endpoint. Zero cost.

How I Validated a SaaS Product Before Writing Code: 70 Traders, 3 Interviews, 27 Days

·6 min read

91% of Indian retail traders lose money. I surveyed 70+ traders and did deep interviews before writing a single line of code. Here is exactly how I validated Metis, what I cut, and the one interview quote that killed 4 features.

Why Shopify Will Never Become Amazon And Why That’s a Strength

·Medium

A beginner’s take on why two giants are playing completely different gamesMost people who follow e-commerce assume Shopify and Amazon are on a collision cour...

Why Your .env Variables Are undefined in Production (And How to Fix It for Good)

·Medium

Your app works perfectly in development, with all your API keys loading correctly from your .env file using react-native-dotenv. But when… Continue reading o...

Why Your KeyboardAvoidingView Pushes Content Off-Screen (And How to Actually Fix It)

·Medium

You reach for KeyboardAvoidingView to prevent the keyboard from hiding your inputs. But instead of a smooth experience, your content gets… Continue reading o...

How to Fix React Native’s Most Annoying Error

·Medium

You’re working on your React Native app. You save a file, the app reloads, and then you see it. The red screen. Continue reading on Medium »

That Cryptic Zod Error Just Wasted Your Afternoon. Let’s Fix That Forever.

·Medium

You’ve probably typed import { z } from 'zod' a thousand times, but do you really know what's happening under the hood? It's time to pull… Continue reading o...