Hi, I'm Emdadul

I write about web dev, software engineering & technology.

Exploring ideas, sharing learnings, and building things for the web.

Latest posts

How to Add a Native Rich Text Editor in Expo / React Native (No WebView)
· 2 min read

How to Add a Native Rich Text Editor in Expo / React Native (No WebView)

Rich text editing in React Native has always been tricky — especially when you want native performance instead of relying on WebViews. Most available libraries work great for the web, but fall short on mobile. That’s where [expo-rte](https://github.c...

How to Implement Multi-Factor Authentication (MFA) with TOTP in Your Web Application
· 11 min read

How to Implement Multi-Factor Authentication (MFA) with TOTP in Your Web Application

In today’s digital landscape, securing user accounts with just a password isn’t enough. Multi-Factor Authentication (MFA) adds an essential layer of security by requiring users to provide two or more verification factors. In this comprehensive guide,...

Host Your Own S3-Compatible MinIO Server on a VPS with Caddy and HTTPS
· 2 min read

Host Your Own S3-Compatible MinIO Server on a VPS with Caddy and HTTPS

Host Your Own S3-Compatible MinIO Server on a VPS with Caddy and HTTPS Want to self-host object storage like AWS S3 but on your own VPS? Say hello to MinIO — a blazing-fast, S3-compatible storage solution. In this guide, we’ll show you how to install...

How to Add TanStack Query in Astro + React Project
· 4 min read

How to Add TanStack Query in Astro + React Project

Photo by Lautaro Andreani on Unsplash TanStack Query (formerly known as React Query) is a powerful tool for data fetching, caching, and synchronization in React applications. It simplifies handling server-side state in a predictable and efficient man...

· 2 min read

How to Solve the Expo Network Response Timed Out Problem

If you’re developing a React Native app with Expo and you’re encountering a “network response timed out” error, it’s likely due to the port that Expo’s Metro bundler is running on not being open on your machine. The solution is to open the necessary ...

20 Awesome APIs to Enhance Your Development Projects
· 2 min read

20 Awesome APIs to Enhance Your Development Projects

Photo by Douglas Lopes on Unsplash As a developer, having access to powerful APIs can be a game-changer, allowing you to quickly integrate robust functionality into your applications. In this post, we’ve curated a list of 20 awesome APIs spanning var...

· 2 min read

Warp — The Terminal Reimagined for Modern Developers

[Warp-your new favorite terminalWarp is a Rust-based terminal built for speed. With Warp, you can type in a terminal like an IDE, navigate your output…app.warp.dev](https://app.warp.dev/referral/EXNJM6 "https://app.warp.dev/referral/EXNJM6") If you’r...

Introducing Queryhub: Revolutionizing Learning with AI-Powered Study Companion
· 2 min read

Introducing Queryhub: Revolutionizing Learning with AI-Powered Study Companion

Hello friends and family, brothers and sisters, and the World!!! We’re Introducing Queryhub — Your Ultimate Study Companion! https://www.queryhub.info As students ourselves, we understand the challenges of navigating through vast amounts of academi...

· 2 min read

A Guide to Downloading Images from a Database using Node.js

Photo by Sigmund on Unsplash Introduction: In this tutorial, we’ll explore how to download images from a MongoDB database using Node.js. We’ll walk through setting up a Node.js project, connecting to a MongoDB database, defining a schema for image UR...

Setting Up Seeders in Node.js and Mongoose with Example
· 2 min read

Setting Up Seeders in Node.js and Mongoose with Example

Photo by Gabriel Heinzer on Unsplash Introduction: In Node.js applications using MongoDB with Mongoose, seeders play a crucial role in populating the database with initial data. This article will guide you through the process of setting up seeders, w...

· 2 min read

Resolving “Window is not defined” Error during npm run build in Next.js SSR Application

Window is not defined solution Background Our development team encountered a critical issue while running the npm run build command in a Next.js server-side rendered (SSR) application. The error message indicated that "window is not defined," pointin...

· 4 min read

Integrating OAuth with Google using the Devise Gem(ROR): Comprehensive Documentation

Photo by Mitchell Luo on Unsplash Introduction OAuth (Open Authorization) is an industry-standard protocol for authorization, enabling third-party applications to access user data without requiring the user to share their login credentials. In this d...

· 2 min read

Mastering GitHub OmniAuth Integration in Ruby on Rails: A Step-by-Step Guide

Photo by Roman Synkevych on Unsplash Step 1: Go to the GitHub Developer Settings page: https://github.com/settings/developers Click on the “New OAuth App” button. Fill in the required fields: Application Name: Choose a name for your application. H...

· 2 min read

A Guide to Web Accessibility

Hey there, fellow creators! Today, let’s dive into something that’s close to our hearts—web accessibility. Imagine a world where everyone can effortlessly surf the digital realm, regardless of their abilities. In this blog post, we’re talking about m...

· 2 min read

Boost Your Website’s Speed Using Contemporary Picture Formats

Welcome to the fast-paced universe of web development, where optimizing website performance reigns supreme. Today, let’s uncover the often-overlooked magic of image formats and their profound impact on web performance and loading times. Optimized ima...

Exploring the Most Used Linux Commands with Examples
· 3 min read

Exploring the Most Used Linux Commands with Examples

Photo by Gabriel Heinzer on Unsplash Introduction: Linux, with its powerful command-line interface (CLI), is a favorite among developers, system administrators, and enthusiasts alike. It offers a plethora of commands that make it a versatile and effi...

How to Set Up Husky, ESLint, and Prettier in a Node.js Project
· 2 min read

How to Set Up Husky, ESLint, and Prettier in a Node.js Project

Photo by Pakata Goh on Unsplash In this tutorial, we will walk you through the process of setting up Husky, ESLint, and Prettier in a Node.js application. These tools will help you maintain consistent code quality, enforce coding standards, and ensur...

Integrating GitHub OAuth with Passport.js: Handling Email Validation
· 3 min read

Integrating GitHub OAuth with Passport.js: Handling Email Validation

Photo by Gabriel Heinzer on Unsplash Introduction:OAuth authentication is a powerful way to enable users to log into your application using their existing accounts on popular platforms like Google and GitHub. Passport.js, a widely-used authentication...

Using Git Bash with Multiple GitHub Accounts using SSH Keys
· 3 min read

Using Git Bash with Multiple GitHub Accounts using SSH Keys

Photo by Roman Synkevych on Unsplash Introduction: If you’re new to the world of version control and collaborating on GitHub, you might be wondering how to handle multiple GitHub accounts on the same computer efficiently. Fortunately, with a simple s...

· 2 min read

Oracle Cheat Sheet

Oracle Logo Oracle is one of the most popular relational database management systems in the world, used by many organizations to store and manage their data. SQL is the standard language used to interact with Oracle databases, allowing users to retri...

· 2 min read

MongoDB Cheat Sheet

MongoDB Logo MongoDB is a popular NoSQL database used in modern web applications. With its flexible document-based data model and scalability, it has become a go-to database for many developers. However, with its many features and options, it can be ...

· 2 min read

Guideline for reading papers.

Reading a paper can be a daunting task, especially if you are new to the field or the paper is particularly technical. Here is a step-by-step guideline that you can follow to read a paper: Start with the title and abstract: The title and abstract ca...

Mongoose Cheat Sheet
· 2 min read

Mongoose Cheat Sheet

mongoose If you’re working with Mongoose, the popular object data modeling (ODM) library for MongoDB in Node.js, having a quick reference guide or “cheat sheet” can be incredibly helpful. In this blog post, we provide a concise summary of some of the...