RSSAmplifier

Blog

Gaurav Thakur

Frontend engineer at Zepto. I build things for the web and write about stuff I learn along the way.

gauravthakur.comRSS feed ↗11 posts

Latest posts

Why I Built SplitMaadi

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.

Writing Maintainable React useEffects: Clean Code Patterns

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.

Data Fetching Patterns in React Server Components

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.

2025 in Review

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.

Embrace the "effects" running twice in ReactJS

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.

What is this keyword in JavaScript?

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

All About Heap Data Structures

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.

What is an Execution Context in JavaScript?

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

How JavaScript Array Works Internally?

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

Gaurav Thakur: How it all started?

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.

How Hoisting Works in JavaScript?

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.