Let's Build Project Management System Pt. 3

Monday, February 16, 2026

Inside the backend folder, let’s create an app.js file and write some base code to test our setup.

touch app.js

We will use the modern import...from syntax. We’ll update the necessary configuration in the package.json file shortly.

import express from "express";

const app = express();

Now, let’s define a /ping route that returns "pong" as a JSON response.

import express from "express";

const app = express();

app.get("/ping", (req, res) => {
    return res.json({ data: "pong" });
});

ðŸ’Ą Tip: Always use return when you want to stop the execution of a function after sending a response.

We will use port 3000 because the React application created using Vite runs on port 5173 by default.

import express from "express";

const app = express();

app.get("/ping", (req, res) => {
    return res.json({ data: "pong" });
});

const PORT = process.env.PORT || 3000;

Finally, let’s start the server and print the URL for future reference and debugging.

import express from "express";

const app = express();

app.get("/ping", (req, res) => {
    return res.json({ data: "pong" });
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`http://localhost:${PORT}`);
});

We need to make the following changes in the package.json file:

  • Change "type" from "commonjs" to "module" to support the import...from syntax.
  • Change "main" from index.js to app.js.
{
    "name": "backend",
    "version": "1.0.0",
    "description": "",
    "main": "app.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "type": "module",
    "dependencies": {
        "compression": "1.8.1",
        "cors": "2.8.6",
        "express": "5.2.1",
        "helmet": "8.1.0",
        "morgan": "1.10.1",
        "postgres": "3.4.8"
    }
}

I almost forgot — we also need nodemon to automatically restart the server when files change during development.

ðŸ’Ą Tip: This is an example of a non-perfect setup. You will always miss something — and that’s completely fine.

Install nodemon as a development dependency:

npm i -E -D nodemon

Now, let’s add two scripts to package.json:

  • dev → runs nodemon app.js
  • start → runs node app.js
{
    "name": "backend",
    "version": "1.0.0",
    "description": "",
    "main": "app.js",
    "scripts": {
        "dev": "nodemon app.js",
        "start": "node app.js"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "type": "module",
    "dependencies": {
        "compression": "1.8.1",
        "cors": "2.8.6",
        "express": "5.2.1",
        "helmet": "8.1.0",
        "morgan": "1.10.1",
        "postgres": "3.4.8"
    },
    "devDependencies": {
        "nodemon": "3.1.11"
    }
}

With these changes, we are ready to run the application. Both scripts will start the server, but during development, we usually use:

npm run dev

Now open your browser and visit http://localhost:3000/ping. You should see { "data": "pong" } And yup — it’s working! 🎉 If everything works on your side, you’re ready to head over to the next article.

---

Let's Build Project Management System Pt. 2

Sunday, February 15, 2026

Let’s create a folder named peter and navigate into it.

mkdir peter
cd peter

Now, create two folders — frontend and backend. As the names suggest, the frontend folder will contain the React code, and the backend folder will contain the Node.js code.

mkdir frontend backend

Inside the frontend folder, let’s create a React application using Vite with the JavaScript template.

cd frontend
npm create vite@latest . -- --template react

While the process is running, open a new terminal tab (or window), navigate to the backend folder, and perform some initial setup such as creating a package.json file and installing the required dependencies.

cd ../backend

Let’s create a package.json file:

npm init -y

Now, install the express and postgres packages:

npm i -E express postgres

Next, install a few middleware packages:

  • morgan for logging
  • helmet for security
  • cors to allow API calls from the React application
  • compression to compress responses
npm i -E morgan helmet cors compression

Great! The initial setup is complete, and we’re ready to get started.

---

āŠļāŠ°્āŠĩāŠ­ૂāŠĪāŠŪાં āŠĻાāŠ°ાāŠŊāŠĢ

Saturday, February 14, 2026

āŠķ્āŠ°ીāŠ°ાāŠŪāŠ•ૃāŠ·્āŠĢ (āŠĻāŠ°ેāŠĻ્āŠĶ્āŠ°āŠĻે) - āŠĻāŠ°ેāŠĻ્āŠĶ્āŠ°! āŠĪું āŠķું āŠ•āŠđે āŠ›ે? āŠļંāŠļાāŠ°ી āŠēોāŠ•ો āŠĪો āŠ•ેāŠŸāŠēુંāŠŊ āŠŽોāŠēે! āŠŠāŠĢ āŠœો, āŠđાāŠĨી āŠœ્āŠŊાāŠ°ે āŠ°āŠļ્āŠĪાāŠŪાં āŠđોāŠŊ, āŠĪ્āŠŊાāŠ°ે āŠ•ેāŠŸāŠēાંāŠŊ āŠŠ્āŠ°ાāŠĢીāŠ“ āŠĪેāŠĻી āŠŠાāŠ›āŠģ āŠŠāŠĄે, āŠŠāŠĢ āŠđાāŠĨી āŠĪેāŠĻી āŠļાāŠŪું āŠœુāŠ āŠŠāŠĢ āŠĻāŠđિ. āŠĪાāŠ°ી āŠœો āŠ•ોāŠˆ āŠĻિંāŠĶા āŠ•āŠ°ે, āŠĪો āŠĪāŠĻે āŠ•ેāŠĩું āŠēાāŠ—ે?
 

āŠĻāŠ°ેāŠĻ્āŠĶ્āŠ° - āŠđું āŠŪાāŠĻું āŠ•ે āŠ•ૂāŠĪāŠ°ાં āŠđાāŠ‰ āŠđાāŠ‰ āŠ•āŠ°ે āŠ›ે.
 

āŠķ્āŠ°ીāŠ°ાāŠŪāŠ•ૃāŠ·્āŠĢ (āŠđāŠļીāŠĻે) – āŠĻા āŠ°ે āŠĻા, āŠāŠŸāŠēું āŠŽāŠ§ું āŠĻāŠđિ. (āŠļૌāŠĻું āŠđાāŠļ્āŠŊ) āŠˆāŠķ્āŠĩāŠ° āŠŠ્āŠ°ાāŠĢી āŠŪાāŠĪ્āŠ°āŠŪાં āŠ›ે. āŠŠāŠĢ āŠļાāŠ°ા āŠŪાāŠĢāŠļોāŠĻી āŠļાāŠĨે āŠđāŠģāŠĩું āŠŪāŠģāŠĩું āŠšાāŠēે; āŠœ્āŠŊાāŠ°ે āŠĻāŠ°āŠļા āŠŪાāŠĢāŠļોāŠĨી āŠĶૂāŠ° āŠ°āŠđેāŠĩું āŠœોāŠˆāŠ. āŠāŠŪ āŠĪો āŠĩાāŠ˜āŠĻી āŠ…ંāŠĶāŠ° āŠŠāŠĢ āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે; āŠāŠŸāŠēે āŠ•ંāŠˆ āŠĩાāŠ˜āŠĻે āŠ­ેāŠŸી āŠŠāŠĄાāŠŊ āŠĻāŠđિ! (āŠļૌāŠĻું āŠđાāŠļ્āŠŊ). āŠœો āŠāŠŪ āŠ•āŠđો āŠ•ે āŠĩાāŠ˜ āŠĪો āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે, āŠĪો āŠŠāŠ›ી āŠ­ાāŠ—ી āŠķા āŠŪાāŠŸે āŠœāŠĩું? āŠĪેāŠĻો āŠœāŠĩાāŠŽ āŠ āŠ•ે āŠœેāŠ“ āŠ•āŠđે āŠ›ે āŠ•ે ‘āŠ­ાāŠ—ી āŠœાāŠ“' āŠĪેāŠ“ āŠŠāŠĢ āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે, āŠĪો āŠĪેāŠŪāŠĻી āŠĩાāŠĪ āŠ•ેāŠŪ āŠĻ āŠļાંāŠ­āŠģāŠĩી?
 

'āŠāŠ• āŠĩાāŠĪ āŠļાંāŠ­āŠģો. āŠāŠ• āŠœંāŠ—āŠēāŠŪાં āŠāŠ• āŠļાāŠ§ુ āŠ°āŠđેāŠĪો āŠđāŠĪો. āŠĪેāŠĻે āŠ…āŠĻેāŠ• āŠķિāŠ·્āŠŊો. āŠĪેāŠĢે āŠāŠ• āŠĶિāŠĩāŠļે āŠķિāŠ·્āŠŊોāŠĻે āŠ‰āŠŠāŠĶેāŠķ āŠ†āŠŠ્āŠŊો āŠ•ે āŠļāŠ°્āŠĩāŠ­ૂāŠĪāŠŪાં āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે, āŠāŠŪ āŠœાāŠĢીāŠĻે āŠļૌāŠĻે āŠĻāŠŪāŠļ્āŠ•ાāŠ° āŠ•āŠ°āŠĩા. āŠāŠ• āŠĶિāŠĩāŠļ āŠāŠ• āŠķિāŠ·્āŠŊ āŠđોāŠŪ āŠŪાāŠŸે āŠēાāŠ•āŠĄાં āŠĩીāŠĢāŠĩા āŠœંāŠ—āŠēāŠŪાં āŠ—āŠŊો. āŠ āŠēાāŠ•āŠĄાં āŠĩીāŠĢāŠĪો āŠđāŠĪો āŠāŠŸāŠēાāŠŪાં āŠŽૂāŠŪ āŠļંāŠ­āŠģાāŠˆ āŠ•ે ‘āŠœે āŠ•ોāŠˆ āŠ°āŠļ્āŠĪાāŠŪાં āŠđો āŠĪે āŠĻાāŠļી āŠœāŠœો, āŠāŠ• āŠ—ાંāŠĄો āŠđાāŠĨી āŠ†āŠĩે āŠ›ે!' āŠ†āŠœુāŠŽાāŠœુāŠŪાંāŠĨી āŠŽāŠ§ા āŠĻાāŠļી āŠ—āŠŊા, āŠŠāŠĢ āŠķિāŠ·્āŠŊ āŠĻāŠđીં! āŠĪેāŠĢે āŠĩિāŠšાāŠ°્āŠŊું āŠ•ે āŠđાāŠĨી āŠŠāŠĢ āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે, āŠĪો āŠŠāŠ›ી āŠĻાāŠļāŠĩું āŠķા āŠŪાāŠŸે? āŠāŠŪ āŠĩિāŠšાāŠ°ીāŠĻે āŠĪે āŠŠāŠ­ો āŠ°āŠđ્āŠŊો; āŠ…āŠĻે āŠĻāŠŪāŠļ્āŠ•ાāŠ° āŠĩāŠ—ેāŠ°ે āŠ•āŠ°ીāŠĻે āŠļ્āŠĪુāŠĪિ āŠ•āŠ°āŠĩા āŠēાāŠ—્āŠŊો. āŠ† āŠŽાāŠœુ āŠŪāŠđાāŠĩāŠĪ āŠ‰āŠŠāŠ°āŠĨી āŠŽૂāŠŪો āŠŠાāŠĄી āŠ°āŠđ્āŠŊો. āŠ›ે āŠ•ે ‘āŠ­ાāŠ—ી āŠœાāŠ“, āŠ­ાāŠ—ી āŠœાāŠ“!' āŠĪોāŠŊ āŠķિāŠ·્āŠŊ āŠđāŠ•્āŠŊો āŠĻāŠđિ. āŠ›ેāŠĩāŠŸે āŠđાāŠĨી āŠĪેāŠĻે āŠļૂંāŠĒāŠŪાં āŠŠāŠ•āŠĄી āŠāŠ• āŠŽાāŠœુ āŠŦેંāŠ•ી āŠĶāŠˆāŠĻે āŠšાāŠē્āŠŊો āŠ—āŠŊો. āŠķિāŠ·્āŠŊ āŠēોāŠđીāŠēુāŠđાāŠĢ āŠ…āŠĻે āŠŽેāŠ­ાāŠĻ āŠĨāŠˆāŠĻે āŠŠāŠĄ્āŠŊો. āŠ°āŠđ્āŠŊો.

āŠ† āŠ–āŠŽāŠ° āŠ†āŠķ્āŠ°āŠŪāŠŪાં āŠŠāŠđોંāŠšāŠĪાં āŠ—ુāŠ°ુ āŠ…āŠĻે āŠķિāŠ·્āŠŊો āŠĪેāŠĻે āŠ‰āŠŠાāŠĄીāŠĻે āŠ†āŠķ્āŠ°āŠŪāŠŪાં āŠēāŠˆ āŠ†āŠĩ્āŠŊા, āŠ…āŠĻે āŠļાāŠ°āŠĩાāŠ° āŠ•āŠ°āŠĩા āŠēાāŠ—્āŠŊા. āŠĨોāŠĄીāŠĩાāŠ°ે āŠĪેāŠĻે āŠ­ાāŠĻ āŠ†āŠĩ્āŠŊું āŠĪ્āŠŊાāŠ°ે āŠ•ોāŠˆāŠ āŠĪેāŠĻે āŠŠૂāŠ›્āŠŊું: 'āŠđાāŠĨી āŠ†āŠĩે āŠ›ે āŠĪે āŠļાંāŠ­āŠģāŠĩા āŠ›āŠĪાં āŠĪāŠŪે āŠĻાāŠļી āŠ—āŠŊા āŠĻāŠđિ?' āŠĪે āŠŽોāŠē્āŠŊો, 'āŠ—ુāŠ°ુāŠĶેāŠĩે āŠ•āŠđ્āŠŊું āŠ›ે āŠ•ે āŠĻાāŠ°ાāŠŊāŠĢ āŠœ āŠŪાāŠĢāŠļ, āŠœીāŠĩ, āŠœંāŠĪુ, āŠŽāŠ§ું āŠĨāŠˆ āŠ°āŠđેāŠēા āŠ›ે. āŠāŠŸāŠēે āŠđાāŠĨી-āŠĻાāŠ°ાāŠŊāŠĢāŠĻે āŠ†āŠĩāŠĪા āŠĶેāŠ–ીāŠĻે āŠđું āŠĪ્āŠŊાંāŠĨી āŠ–āŠļ્āŠŊો āŠĻāŠđિ.' āŠĪ્āŠŊાāŠ°ે āŠ—ુāŠ°ુāŠ āŠ•āŠđ્āŠŊું, 'āŠŽાāŠŠુ, āŠđાāŠĨી-āŠĻાāŠ°ાāŠŊāŠĢ āŠ†āŠĩāŠĪા āŠđāŠĪા āŠ āŠ–āŠ°ું, āŠ āŠļāŠĪ્āŠŊ; āŠŠāŠĢ āŠŪāŠđાāŠĩāŠĪ-āŠĻાāŠ°ાāŠŊāŠĢે āŠĪો āŠĻાāŠļી āŠœāŠĩાāŠĻું āŠ•āŠđ્āŠŊું āŠđāŠĪું āŠĻે? āŠœો āŠŽāŠ§ાંāŠŊ āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે āŠĪો āŠŠāŠ›ી āŠĪેāŠĻું āŠ•āŠđેāŠĩું āŠ•ેāŠŪ āŠļાંāŠ­āŠģ્āŠŊું āŠĻāŠđિ? āŠŪāŠđાāŠĩāŠĪ-āŠĻાāŠ°ાāŠŊāŠĢāŠĻું āŠŠāŠĢ āŠļાંāŠ­āŠģāŠĩું āŠœોāŠˆāŠ āŠĻે?' (āŠļૌāŠĻું āŠđાāŠļ્āŠŊ)


‘āŠķાāŠļ્āŠĪ્āŠ°āŠŪાં āŠ•āŠđે āŠ›ે āŠ†āŠŠો āŠĻાāŠ°ાāŠŊāŠĢ; āŠœāŠģ āŠĻાāŠ°ાāŠŊāŠĢāŠĻું āŠļ્āŠĩāŠ°ૂāŠŠ āŠ›ે! āŠŠāŠ°ંāŠĪુ āŠ•ોāŠˆāŠ• āŠœāŠģ āŠ­āŠ—āŠĩાāŠĻāŠĻી āŠŠૂāŠœાāŠŪાં āŠšાāŠēે; āŠĪો āŠ•ોāŠˆāŠ• āŠœāŠģāŠĨી āŠđાāŠĨ-āŠŪોં āŠ§ોāŠĩાāŠĻું, āŠĩાāŠļāŠĢ āŠŪાંāŠœāŠĩાāŠĻું, āŠ•āŠŠāŠĄાં āŠ§ોāŠĩાāŠĻું āŠŪાāŠĪ્āŠ° āŠšાāŠēે, āŠŠāŠĢ āŠŠીāŠĩાāŠŪાં āŠ…āŠĨāŠĩા āŠ ાāŠ•ોāŠ°āŠœીāŠĻી āŠļેāŠĩાāŠŪાં āŠĻ āŠšાāŠēે. āŠĪેāŠŪ āŠļાāŠ§ુ, āŠ…āŠļાāŠ§ુ, āŠ­āŠ•્āŠĪ āŠ…āŠĻે āŠ…āŠ­āŠ•્āŠĪ - āŠļૌāŠĻા āŠ…ંāŠĪāŠ°āŠŪાં āŠĻાāŠ°ાāŠŊāŠĢ āŠ›ે, āŠŠāŠĢ āŠ…āŠļાāŠ§ુ, āŠ…āŠ­āŠ•્āŠĪ, āŠĶુāŠ·્āŠŸ āŠŪાāŠĢāŠļāŠĻી āŠļાāŠĨે āŠĩ્āŠŊāŠĩāŠđાāŠ° āŠ°ાāŠ–āŠĩો āŠšાāŠēે āŠĻāŠđિ. āŠđāŠģāŠĩું āŠŪāŠģāŠĩું āŠšાāŠēે āŠĻāŠđિ. āŠ•ોāŠˆāŠ•āŠĻી āŠļાāŠĨે āŠ•ેāŠĩāŠģ āŠŪોāŠĒાāŠĻી āŠĩાāŠĪāŠšીāŠĪāŠĻો āŠœ āŠĩ્āŠŊāŠĩāŠđાāŠ° āŠŠāŠ°āŠĩāŠĄે; āŠĪો āŠĩāŠģી āŠ•ોāŠˆāŠ•āŠĻી āŠļાāŠĨે āŠ āŠŠāŠĢ āŠšાāŠēે āŠĻāŠđિ. āŠāŠĩા āŠŪાāŠĢāŠļāŠĨી āŠĶૂāŠ° āŠ°āŠđેāŠĩું āŠœોāŠˆāŠ.'

~ āŠķ્āŠ°ીāŠ°ાāŠŪāŠ•ૃāŠ·્āŠĢ āŠ•āŠĨાāŠŪૃāŠĪāŠŪાંāŠĨી

---

Let's Build Project Management System Pt. 1

Welcome!

In this article series, we are going to build a project management system (or an issue tracking system) called Peter. The tech stack we will use includes Express for the back end and React for the front end. Along the way, we will also use GraphQL. The database will be PostgreSQL.

Please install the following software before we proceed:

  1. Node v24+
  2. npm v11+
  3. PostgreSQL 17+
  4. Insomnia (or any API client)
  5. VS Code (or any text-editor)
  6.  Terminal (I guess you already have one!)

Take your time to install this software. Once you're ready, head over to the next article.

---

The Great Man

Saturday, February 7, 2026

Although, this quote is from The Will to Power, I copied it from cat-v.org website.

‘The Great Man … is colder, harder, less hesitating, and without respect and without the fear of “opinion”; he lacks the virtues that accompany respect and “respectability”, and altogether everything that is the “virtue of the herd”. If he cannot lead, he goes alone. … He knows he is incommunicable: he finds it tasteless to be familiar. … When not speaking to himself, he wears a mask. There is a solitude within him that is inaccessible to praise or blame.’

– Friedrich Nietzsche, The Will to Power

---

āŠĻાāŠ• āŠĩાāŠŸે āŠķ્āŠĩાāŠļ āŠēેāŠĩો

Friday, February 6, 2026

āŠŪāŠĻુāŠ·્āŠŊāŠĻી āŠ›ાāŠĪીāŠŪાં āŠœે āŠŦેāŠŦāŠļાં āŠ›ે āŠĪેāŠĻું āŠ°āŠ•્āŠ·āŠĢ āŠ•āŠ°āŠĻાāŠ°ાં āŠĻાāŠ•ા āŠ•ે āŠĻાāŠ•āŠĻાં āŠŽે āŠ›િāŠĶ્āŠ°ો āŠ›ે. āŠđāŠĩાāŠĻે āŠ–ેંāŠšીāŠĻે āŠĪેāŠĻે āŠķુāŠĶ્āŠ§ āŠ•āŠ°ીāŠĻે āŠĪે āŠŦેāŠŦāŠļાંāŠĻે āŠŠુāŠ°ી āŠŠાāŠĄāŠĩી āŠ āŠĻાāŠ•āŠĻું āŠ•āŠ°્āŠĪāŠĩ્āŠŊ āŠ›ે. āŠđāŠĩાāŠŪાં āŠœે āŠ•ાંāŠˆ āŠ§ૂāŠģ āŠ•ે āŠ…āŠĻિāŠ·્āŠŸ āŠ°āŠœāŠ•āŠĢો āŠđોāŠŊ āŠĪે āŠĻાāŠ•āŠĻી āŠ…ંāŠĶāŠ°āŠĻા āŠĩાāŠģāŠŪાં āŠ­āŠ°ાāŠˆ āŠ°āŠđે āŠ›ે āŠ…āŠĻે āŠĪે āŠ‰āŠŠāŠ°ાંāŠĪ āŠĻાāŠ•āŠĻી āŠ‰āŠ·્āŠĢāŠĪા āŠĩāŠĄે āŠđāŠĩા āŠļ્āŠĩāŠš્āŠ› āŠĨાāŠŊ āŠ›ે āŠ…āŠĻે āŠŠāŠ›ી āŠœ āŠĪે āŠŦેāŠŦāŠļાંāŠļુāŠ§ી āŠŠāŠđોંāŠšે āŠ›ે. āŠ—ંāŠĶી āŠđāŠĩાāŠŪાં āŠ•ે āŠĶુāŠ°્āŠ—ંāŠ§āŠĩાāŠģે āŠļ્āŠĨāŠģે āŠŪાāŠĢāŠļ āŠœāŠˆ āŠšāŠĄે āŠ›ે, āŠĪ્āŠŊાāŠ°ે āŠĻાāŠ• āŠŠોāŠĪાāŠĻી āŠ—ંāŠ§āŠĻિāŠ°ીāŠ•્āŠ·āŠ• āŠķāŠ•્āŠĪિāŠĨી āŠŪાāŠĢāŠļāŠĻે āŠ–āŠŽāŠ° āŠ†āŠŠે āŠ›ે āŠ•ે āŠ…āŠđીં āŠŦેāŠŦāŠļાંāŠĻે āŠšોāŠ–્āŠ–ી āŠđāŠĩા āŠŠૂāŠ°ી āŠŠાāŠĄāŠĩાāŠĻું āŠ•ાāŠŪ āŠ•āŠ°āŠĩું āŠŪાāŠ°ે āŠŪાāŠŸે āŠŪુāŠķ્āŠ•ેāŠē āŠ›ે...āŠĻાāŠ• āŠ āŠāŠ• āŠ•ોāŠŪāŠģ āŠ‡ંāŠĶ્āŠ°િāŠŊ āŠ›ે. āŠ•ેāŠŸāŠēાāŠ•ો āŠŪ્āŠđોંāŠĩાāŠŸે āŠķ્āŠĩાāŠļ āŠēે āŠ›ે āŠŠāŠ°āŠĻ્āŠĪુ āŠĪે āŠĻુāŠ•āŠļાāŠĻāŠ•ાāŠ°āŠ• āŠ›ે. āŠ•ાāŠ°āŠĢāŠ•ે āŠĻાāŠ•āŠĶ્āŠĩાāŠ°ા āŠœે āŠđāŠĩાāŠķુāŠĶ્āŠ§િ āŠĨાāŠŊ āŠ›ે āŠĪે āŠŪ્āŠđોંāŠĶ્āŠĩાāŠ°ા āŠĨāŠĪી āŠĻāŠĨી. āŠĩāŠģી āŠĻાāŠ•āŠĻો āŠŪાāŠ°્āŠ— āŠŦેāŠŦāŠļાંāŠļુāŠ§ી āŠŠāŠđોંāŠšāŠĩા āŠŪાāŠŸે āŠēાંāŠŽો āŠ›ે āŠāŠŸāŠēે āŠđāŠĩાāŠĻે āŠĩāŠ§ાāŠ°ે āŠ‰āŠ·્āŠĢāŠĪા āŠŪāŠģે āŠ›ે āŠ…āŠĻે āŠ āŠ°ીāŠĪે āŠđāŠĩાāŠķુāŠĶ્āŠ§િ āŠĩિāŠķેāŠ· āŠĨાāŠŊ āŠ›ે. 

---

Wi-fi Power Saver Mode in Debian

Saturday, January 31, 2026

I’m using Xfce Debian. On other day, I was using Debian at lower battery % (< 10%). Then I started to face an issue with wifi. It work sometime but most of the time, I won’t. The issue was Debian (or Xfce?) aggressively enable the power saving options when the laptop is at low battery

Run the following command to get the list of devices.

sudo iw dev

This returns a list of devices. Get the interface name from the output e.g. wlp2s0 or similar for wifi and check if power saver is on or off.

sudo iw dev wlp2s0 get power_save

You should see a result like - Power save: on. Turn off by running following command.

sudo iw dev wlp2s0 set power_save off

---

āŠ•ુંāŠĄāŠēિāŠĻી āŠœાāŠ—ૃāŠĪ ≠ āŠļāŠŪાāŠ§િ

Wednesday, January 28, 2026

āŠ•ુંāŠĄāŠēિāŠĻી āŠœાāŠ—ૃāŠĪ āŠĨāŠŊા āŠŠāŠ›ી āŠļāŠŪાāŠ§િ āŠĨાāŠŊ āŠĪે āŠ…āŠĩāŠļ્āŠĨાāŠ āŠŠāŠđોંāŠšāŠĩાāŠŪાં āŠ“āŠ›ાāŠŪાં āŠ“āŠ›ાં āŠĪ્āŠ°āŠĢ āŠĩāŠ°્āŠ· āŠ…āŠĻે āŠĩāŠ§ુāŠŪાં āŠĩāŠ§ુ āŠ…āŠĒાāŠ° āŠĩāŠ°્āŠ· āŠēાāŠ—ે āŠ›ે. āŠŠāŠ°ંāŠĪુ āŠĪે āŠŪાāŠŸે āŠļિāŠ§્āŠ§āŠŊોāŠ—ીāŠĻી āŠ•ૃāŠŠા āŠ āŠŠāŠĢ āŠœāŠ°ૂāŠ°ી āŠ›ે.

~ āŠ•ુંāŠĄāŠēિāŠĻી āŠŊોāŠ—, āŠĩિāŠ­ાāŠ•āŠ° āŠŠંāŠĄ્āŠŊા

---

āŠĶેāŠĩ-āŠĶેāŠĩીāŠાāŠ āŠĩિāŠĶાāŠŊ āŠēીāŠ§ી

Friday, December 19, 2025

āŠāŠ• āŠĩાāŠ° āŠŪા āŠ†āŠĻંāŠĶāŠŪāŠŊીāŠĻા āŠ…ંāŠĪેāŠĩાāŠļી āŠ—ુāŠ°ુāŠŠ્āŠ°િāŠŊા āŠĶેāŠĩી āŠ…āŠĻે āŠ…āŠĻ્āŠŊ āŠ­āŠ•્āŠĪો āŠŪાāŠĻી āŠŠાāŠļે āŠāŠ• āŠ†āŠķ્āŠ°āŠŪāŠŪાં āŠŽેāŠ ાં āŠđāŠĪાં. āŠŪાāŠ āŠŠોāŠĪાāŠĻા āŠķૈāŠķāŠĩāŠ•ાāŠģāŠĻી āŠĩાāŠĪ āŠ•ાāŠĒી — "āŠāŠ• āŠĩાāŠ° āŠ–ેāŠĩāŠĄાāŠŪાં āŠķાāŠ°āŠĶાāŠŠૂāŠœા āŠ…āŠĻે āŠĶુāŠ°્āŠ—ાāŠŠૂāŠœાāŠĻો āŠ‰āŠĪ્āŠļāŠĩ āŠ‰āŠœāŠĩાāŠĪા āŠđāŠĪો. āŠđું āŠĪ્āŠŊાāŠ°ે āŠļાāŠĩ āŠĻાāŠĻી āŠđāŠĪી. āŠŠૂāŠœાāŠĻા āŠ†āŠ—āŠēા āŠĶિāŠĩāŠļે āŠđું āŠĶાāŠĶીāŠŪા āŠļાāŠĨે āŠœāŠŪāŠĩા āŠŽેāŠ ી. āŠœāŠŪāŠĪા āŠœāŠŪāŠĪાં āŠŪેં āŠ–ુāŠē્āŠēી āŠ†ંāŠ–ે āŠœોāŠŊું āŠ•ે āŠĶુāŠ°્āŠ—ા āŠŪાāŠĪા āŠ…āŠĻે āŠ…āŠĻ્āŠŊ āŠĶેāŠĩ-āŠĶેāŠĩીāŠ“ āŠ‰āŠĪ્āŠļāŠĩāŠĻા āŠļ્āŠĨāŠģેāŠĨી āŠĩિāŠĶાāŠŊ āŠēે āŠ›ે. āŠœāŠĪી āŠĩāŠ–āŠĪે āŠĶુāŠ°્āŠ—ા āŠŪાāŠĪાāŠ āŠāŠŸāŠēું āŠœ āŠ•āŠđ્āŠŊું āŠ•ે— “āŠ† āŠ…āŠĻુāŠ·્āŠ ાāŠĻāŠŪાં āŠ…āŠŪુāŠ•āŠĻા āŠ˜āŠ°āŠŪાં āŠļૂāŠĪāŠ•āŠĻે āŠļ્āŠŠāŠ°્āŠķāŠĶોāŠ· āŠĨāŠŊો āŠ›ે. āŠļંāŠĪાāŠĻ-āŠŠ્āŠ°āŠļāŠĩāŠŪાં āŠŠાāŠģāŠĩાāŠŪાં āŠ†āŠĩāŠĪા āŠļ્āŠŠāŠ°્āŠķાāŠļ્āŠŠāŠ°્āŠķāŠĻે āŠĻિāŠŊāŠŪ āŠĪૂāŠŸāŠŊો āŠ›ે. āŠ† āŠļ્āŠĨāŠģ āŠ…āŠŠāŠĩિāŠĪ્āŠ° āŠĨāŠŊું āŠ›ે. āŠ…āŠđીં āŠ…āŠŪાāŠ°ાāŠĨી āŠ°āŠđી āŠķāŠ•ાāŠŊ āŠĪેāŠŪ āŠĻāŠĨી. āŠ…āŠŪે āŠļૌ āŠđāŠĩે āŠŠ્āŠ°āŠļ્āŠĨાāŠĻ āŠ•āŠ°ીāŠ āŠ›ીāŠ.” āŠŪેં āŠ† āŠŽāŠ§ું āŠāŠ•ાāŠ—્āŠ° āŠĨāŠˆ āŠļાંāŠ­āŠģ્āŠŊું āŠ…āŠĻે āŠĶેāŠĩ-āŠĶેāŠĩીāŠ“āŠĻે āŠœāŠĪાં āŠœોāŠŊાં. āŠĶાāŠĶીāŠŪાāŠĻે āŠ†āŠĻા āŠĩિāŠ·ે āŠ•āŠķું āŠœ્āŠžાāŠĻ āŠĻ āŠđāŠĪું. āŠāŠŪāŠĢે āŠŪāŠĻે āŠļāŠđેāŠœ āŠ§āŠ•્āŠ•ો āŠŪાāŠ°ી āŠ•āŠđ્āŠŊું —āŠœāŠŪ āŠĻે! āŠœāŠŪāŠĩા āŠŽેāŠ ી āŠ›ે āŠ•ે āŠ†āŠŪāŠĪેāŠŪ āŠĄાāŠŦેāŠĄિāŠŊા āŠ­āŠ°āŠĩા āŠŽેāŠ ી āŠ›ે?' āŠŪેં āŠĪેāŠŪāŠĻે āŠ•ંāŠˆ āŠœ āŠ•āŠđ્āŠŊું āŠĻāŠđિ. āŠŪૌāŠĻ āŠ°āŠđી.”
āŠŪાāŠĻી āŠ† āŠĩાāŠĪ āŠļાંāŠ­āŠģી āŠŠાāŠļે āŠŽેāŠ ેāŠēા āŠāŠ• āŠ­āŠ•āŠĪે āŠ•āŠđ્āŠŊું—“āŠŪા, āŠ† āŠĩાāŠĪāŠĻે āŠœāŠ°ા āŠĩāŠ§ાāŠ°ે āŠļ્āŠŠāŠ·્āŠŸ āŠ•āŠ°ોāŠĻે!”
āŠĪ્āŠŊાāŠ°ે āŠŪા āŠŽોāŠē્āŠŊાં—“āŠœ્āŠŊાં āŠĻૈāŠŪિāŠĪ્āŠĪિāŠ• āŠ•āŠ°્āŠŪ āŠ•āŠ°āŠĩાāŠŪાં āŠ†āŠĩે āŠ›ે āŠĪ્āŠŊાં āŠļ્āŠŠāŠ°્āŠķાāŠļ્āŠŠāŠ°્āŠķāŠĻું āŠ…āŠĻે āŠŠૂāŠ°ી āŠŠāŠĩિāŠĪ્āŠ°āŠĪા āŠœાāŠģāŠĩāŠĩાāŠĻું āŠ§્āŠŊાāŠĻ āŠ°ાāŠ–āŠĩું āŠĩિāŠķેāŠ· āŠ›ે. āŠ…āŠĻુāŠ·્āŠ ાāŠĻ āŠˆāŠĪ્āŠŊાāŠĶિāŠŪાં āŠļ્āŠŠāŠ°્āŠķાāŠļ્āŠŠāŠ°્āŠķāŠĻો āŠĻિāŠŊāŠŪ āŠŠૂāŠ°ેāŠŠૂāŠ° āŠœāŠ°ૂāŠ°ી āŠđોāŠŊ āŠ›ે. āŠŠાāŠģāŠĩો āŠœોāŠˆāŠ.”

~ āŠŪા āŠ†āŠĻંāŠĶāŠŪāŠŊીāŠĻી āŠ†āŠĻંāŠĶāŠŊાāŠĪ્āŠ°ા, āŠ°āŠĢāŠ§ીāŠ° āŠ‰āŠŠાāŠ§્āŠŊાāŠŊ

---

āŠĩૃāŠ•્āŠ·ો āŠļાāŠĨે āŠĩાāŠĪāŠšીāŠĪ

Tuesday, December 16, 2025

āŠļુāŠēāŠĪાāŠĻāŠŠુāŠ°āŠĻી āŠœ āŠ† āŠ˜āŠŸāŠĻા āŠ›ે. āŠļāŠ–ી-āŠļāŠŪુāŠĶાāŠŊ āŠļાāŠĨે āŠ–ેāŠĪāŠ°āŠŪાં āŠ†ંāŠŸા āŠŪાāŠ°ી āŠĻિāŠ°્āŠŪāŠģા(āŠŪા āŠ†āŠĻંāŠĶāŠŪāŠŊી) āŠĩāŠĻāŠ°ાāŠœિāŠŪાં āŠŠ્āŠ°āŠĩેāŠķી. āŠ˜āŠĢી āŠŽāŠ§ી āŠœાāŠĪāŠĻા āŠĪ્āŠŊાં āŠĻાāŠĻાં-āŠŪોāŠŸાં, āŠŠāŠšાં-āŠĻીāŠšાં, āŠēીāŠēાં-āŠļૂāŠ•્āŠ•ાં āŠાāŠĄ āŠđāŠĪાં. āŠāŠ• āŠĩૃāŠ•્āŠ·āŠļāŠŪૂāŠđ āŠŠાāŠļે āŠĻિāŠ°્āŠŪāŠģા āŠ†āŠĩીāŠĻે āŠ…āŠŸāŠ•ી āŠ…āŠĻે āŠĻ āŠļāŠŪāŠœાāŠŊ āŠāŠĩી āŠ°ીāŠĪે āŠ āŠĩāŠ°āŠĪāŠĩા āŠēાāŠ—ી. āŠāŠĢે āŠĩૃāŠ•્āŠ·ે āŠļાāŠĨે āŠĩાāŠĪો āŠ•āŠ°ી, āŠĪેāŠŪāŠĻો āŠļ્āŠŠāŠ°્āŠķ āŠ•āŠ°્āŠŊો, āŠĩાāŠ°ંāŠĩાāŠ° āŠŪાāŠĨું āŠđāŠēાāŠĩ્āŠŊું, āŠđāŠļી, āŠ—ંāŠ­ીāŠ° āŠĨāŠˆ āŠ…āŠĻે āŠĩāŠģી āŠŪૌāŠĻ āŠ°āŠđી. āŠļāŠ–ી āŠļāŠŪુāŠĶાāŠŊ āŠļāŠŪāŠœી āŠ—āŠŊો āŠ•ે āŠĻિāŠ°્āŠŪāŠģા āŠĩૃāŠ•્āŠ·ો āŠļાāŠĨે āŠĩાāŠ°્āŠĪાāŠēાāŠŠ āŠ•āŠ°ે āŠ›ે. āŠŪāŠĻુāŠ·્āŠŊāŠœાāŠĪિāŠĻી āŠœેāŠŪ āŠĩૃāŠ•્āŠ·ાāŠĩāŠēી āŠļાāŠĨે āŠāŠĻે āŠĻિāŠ•āŠŸāŠĻો āŠĻાāŠĪો āŠ›ે āŠ…āŠĻે āŠĪેāŠĨી āŠœ āŠĪેāŠŪāŠĻી āŠļાāŠĨે āŠāŠ• āŠĨāŠˆ āŠļંāŠĩાāŠĶ āŠ•āŠ°ે āŠ›ે. āŠ āŠŽāŠđેāŠĻોāŠĻે āŠāŠĩું āŠŠāŠĢ āŠēાāŠ—્āŠŊું āŠ•ે āŠĩૃāŠ•્āŠ·ો āŠŠ્āŠ°āŠĪ્āŠŊુāŠĪ્āŠĪāŠ° āŠĩાāŠģે āŠ›ે. āŠ†āŠŪ āŠĨોāŠĄી āŠĩાāŠ° āŠĨāŠŊું. āŠĪ્āŠŊાāŠ° āŠŽાāŠĶ āŠ āŠ›ોāŠ•āŠ°ીāŠ“ āŠ˜āŠ° āŠ­āŠĢી āŠšાāŠēāŠĩા āŠēાāŠ—ી. āŠ°āŠļ્āŠĪાāŠŪાં āŠĻિāŠ°્āŠŪāŠģાāŠĻે āŠĪેāŠĻી āŠŽāŠđેāŠĻāŠŠāŠĢીāŠ“āŠ āŠĩૃāŠ•્āŠ·ો āŠļાāŠĨેāŠĻી āŠĩાāŠĪāŠšીāŠĪ āŠ…ંāŠ—ે āŠŠૂāŠ›્āŠŊું. āŠĻિāŠ°્āŠŪāŠģાāŠ āŠŦāŠ•્āŠĪ āŠāŠŸāŠēું āŠ•āŠđ્āŠŊું āŠ•ે āŠ āŠĩૃāŠ•્āŠ·ો āŠœીāŠĩિāŠĪ āŠ›ે. āŠ•ેāŠŸāŠēાāŠ• āŠĪો āŠļાāŠ§ુ--āŠļંāŠĪ āŠ›ે. āŠ† āŠœāŠĻ્āŠŪે āŠĩૃāŠ•્āŠ· āŠĨāŠŊા āŠ›ે. āŠĪેāŠŪāŠĢે āŠŪāŠĻે āŠŽોāŠēાāŠĩી āŠđāŠĪી. āŠĪેāŠŪāŠĢે āŠŠોāŠĪાāŠĻી āŠĩાāŠĪ āŠŪāŠĻે āŠ•āŠ°ી. āŠļāŠ–ીāŠ“ āŠŪોં āŠŦાāŠĄી āŠĻિāŠ°્āŠŪāŠģાāŠĻી āŠĩાāŠĪ āŠļાંāŠ­āŠģી āŠ°āŠđી. āŠ•ંāŠˆ āŠ—āŠŪ āŠĻ āŠŠāŠĄી.

~ āŠŪા āŠ†āŠĻંāŠĶāŠŪāŠŊીāŠĻી āŠ†āŠĻંāŠĶāŠŊાāŠĪ્āŠ°ા, āŠ°āŠĢāŠ§ીāŠ° āŠ‰āŠŠાāŠ§્āŠŊાāŠŊ

---