diff --git a/README.md b/README.md
index d5ae6be7..60ede43f 100644
--- a/README.md
+++ b/README.md
@@ -296,7 +296,53 @@ $ set UPGRADE_EXTENSIONS=1 && npm run dev
### Troubleshooting
-#### Your device is not recognized
+#### Error while building the app - `No module named 'distutils'`
+
+To resolve this issue, install Python setuptools:
+
+```shell
+brew install python-setuptools
+```
+
+#### Error: npm version issue due to node-gyp bug
+
+If you encounter an error message like:
+
+```txt
+Error: This project requires npm version >=6.x <=8.16.0. You have version 10.24.0.
+Please downgrade your npm, this is due to a bug in node-gyp.
+GitHub issue: https://github.com/ganeshrvel/openmtp/issues/367.
+command: npm install -g npm@8.16.0
+```
+
+Follow these steps:
+
+1. If you use `nvm`, switch to Node.js version `16.19.0`:
+
+ ```shell
+ nvm install 16.19.0
+ nvm use 16.19.0
+ ```
+
+2. Then, install the compatible npm version:
+
+ ```shell
+ npm install -g npm@8.16.0
+ ```
+
+#### For non-nvm users
+
+If you don't use `nvm`, you can directly install Node.js version `16.19.0` from the [official website](https://nodejs.org/en/download/releases/), or you can use a package manager like `brew` to install the correct version:
+
+```shell
+brew install node@16
+```
+
+After installation, ensure npm is downgraded to the required version:
+
+```shell
+npm install -g npm@8.16.0
+```
#### **node-mac-permissions** throws `Speech framework is not compatible with macOS < 10.15`
diff --git a/app/constants/index.js b/app/constants/index.js
index 7a134db5..d461a0da 100644
--- a/app/constants/index.js
+++ b/app/constants/index.js
@@ -56,3 +56,5 @@ export const DELETE_KEIS_SMARTSWITCH_URL = `https://farazfazli.medium.com/how-i-
export const USB_HOTPLUG_MAX_ATTEMPTS = 6;
export const USB_HOTPLUG_MAX_ATTEMPTS_TIMEOUT = 15000; // in ms
+
+export const GANESHR_PORTFOLIO_URL = 'https://www.ganeshrvel.com/?c=openmtp'; // in ms
diff --git a/app/containers/HomePage/components/FileExplorer.jsx b/app/containers/HomePage/components/FileExplorer.jsx
index 26bc7df8..478db98e 100644
--- a/app/containers/HomePage/components/FileExplorer.jsx
+++ b/app/containers/HomePage/components/FileExplorer.jsx
@@ -67,6 +67,7 @@ import {
import {
BUY_ME_A_COFFEE_URL,
DEVICES_LABEL,
+ GANESHR_PORTFOLIO_URL,
SUPPORT_PAYPAL_URL,
USB_HOTPLUG_MAX_ATTEMPTS,
USB_HOTPLUG_MAX_ATTEMPTS_TIMEOUT,
@@ -1985,6 +1986,11 @@ class FileExplorer extends Component {
});
};
+ _handlePortfolioUrlTap = () => {
+ analyticsService.sendEvent(EVENT_TYPE.GANESHR_PORTFOLIO_URL, {});
+ openExternalUrl(GANESHR_PORTFOLIO_URL);
+ };
+
render() {
const {
classes: styles,
@@ -2061,6 +2067,17 @@ class FileExplorer extends Component {
maxWidthDialog="sm"
helpText="If the progress bar freezes while transferring the files, restart the app and reconnect the device. This is a known Android MTP bug."
>
+