After Splitwise introduced a daily cap on how many expenses you can add, I started looking for another alternative. My requirements were simple: no restrictions on the number of expenses, no ads, no limits on attachments, no deletion of old history, cross-platform access, and a clear user experience. Since I could not find an app that checked all these boxes, I decided to build SplitMaadi.
In this post, we’ll look at practical clean-code patterns for writing maintainable useEffect in React. We’ll cover the “one purpose per effect” rule, when to use comments, how named functions improve readability, and when it’s better to extract complex logic into custom hooks.
A practical guide to data fetching in React Server Components. Learn when to fetch on the server vs client, how to dedupe requests with React's cache API, and patterns for sharing data across the server-client boundary using props, context, and React Query hydration.
Like every year, 2025 went by very fast. It feels like it was January just a few months ago. Now that the year is almost over, I thought I should write about how the year went. Looking back, I can say that I did a lot this year. So let’s go through it.
As per the React documentation, whenever a component mounts for the first time, React will unmount and mount it again. In the beginning, it may seem like an odd behavior from React, but in the post we will explore why we should embrace it rather than consider it a bug.
It is quite common for JavaScript developers to find this keyword to be confusing and understand it incorrectly. To get the expected results, developers make random guesses and do hit and trial. In this article, we'll discuss howJavaScript determines the value of this keyword
Heaps are a special type of complete binary tree which will always return the min/max element. We can make more efficient heaps with the heapify algorithm. Let's learn all about them in this article along with the code samples.
The execution context is one of the very essential component of a JavaScript engine. The execution context is the environment in which the code is executed. In this article we will discuss the working of execution context in great details
Objects in JavaScript are responsible for holding the mapping between key-value pairs. Arrays are a type of object in JavaScript but with only numeric keys. Let us see how JavaScript engine optimizes these special objects with purely numeric keys
Hi, my name is Gaurav Thakur. Currently, I'm doing my BTech in Computer Science from Lovely Professional University. I'll be graduating in the year 2022. In this article, I will share my wonderful journey in the field of programming.
Hoisting in JavaScript is a phenomenon where we can access the variables and functions before they are initialized. Let's learn about hosting in JavaScript and how execution context plays an important role in Hoisting.