Writing

Notes from the build.

Practical notes on web, AI, and mobile engineering: what worked, what broke, and what shipped.

LATEST JUL 25, 2026 7 MIN READ

How I Built RagXray: A $0 Serverless RAG Playground with Hybrid Search, RRF and Real-Time Self-Evaluation

Learn how RagXray visualizes every stage of a RAG pipeline in real time. Covers chunking strategies, free BGE embeddings on Cloudflare Workers AI, a custom BM25 index on D1, hybrid search with Reciprocal Rank Fusion, and per-run self-evaluation. Built entirely serverless on Next.js, Hono, Neon and D1 for $0 a month.

JUN 26, 2026 You Probably Don't Need Elasticsearch: Writing BM25 From Scratch on SQLite How BM25 keyword search works and how to implement it from scratch on SQLite and Cloudflare D1. Covers the scoring formula, the inverted index schema, query-time scoring in TypeScript, and when you genuinely need Elasticsearch instead. JAN 23, 2025 Secure AWS S3 File Uploads with Pre-Signed URLs: Node.js & React.js Guide for Private Bucket Access Discover how to securely upload files to private AWS S3 buckets using pre-signed URLs in a Node.js backend and React.js frontend. Step-by-step guide to generating temporary access tokens for controlled, permission-limited uploads without exposing bucket credentials. NOV 07, 2024 Optimize React-Quill Image Storage: Upload to AWS S3 & Replace Base64 Strings Learn to seamlessly replace base64 images in React-Quill with AWS S3 URLs. This guide walks through configuring a custom image handler, backend integration with Multer and AWS SDK, and streamlining storage for cleaner databases and faster load times. OCT 16, 2024 Build Real-Time Google Calendar Webhooks in Node.js: Automate Slack Alerts & Event Updates with OAuth & Ngrok Learn to build a real-time Google Calendar webhook in Node.js using the googleapis package, enabling automatic notifications for event updates like acceptances, deletions, or changes. Implement OAuth, calendar watches, and ngrok for local testing to trigger custom actions (e.g., Slack alerts) seamlessly. AUG 09, 2024 The ultimate guide to understand hoisting in Javascript Explore how JavaScript’s hoisting mechanism allows variables (using var) and functions to be accessed before declaration, unlike stricter languages like Python or Java. Learn why this behaviour occurs and how it impacts code execution. APR 04, 2024 Mastering Debouncing in React.js: From Scratch, Lodash & Custom Hooks to Boost App Responsiveness Explore three methods to implement debouncing in React.js: manual implementation, the Lodash library, and custom hooks with awesome-debounce-promise. Optimize performance by delaying function calls during rapid user interactions like search inputs or window resizing. JAN 25, 2024 Understanding asynchronous JavaScript and event loop Discover how JavaScript’s single-threaded runtime manages asynchronous operations using the event loop, callback queue, and browser APIs. A deep dive into non-blocking code execution and the mechanics behind async workflows like setTimeout.

Reading is free. Shipping is better.

If a note here maps to a problem you're working on, tell me about it.