aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorLibravatar Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com>2021-05-12 21:35:59 +0530
committerLibravatar GitHub <noreply@github.com>2021-05-12 21:35:59 +0530
commite01f9bd833e0e7c36b5a9304a3aa012a8fce9331 (patch)
tree47f6e43e712a6deefe946b15d6cf8c77e2da08a4 /README.md
parentRemove duplicated lines (probably introduced in a bad conflict-resolution step). (diff)
downloadferdium-app-e01f9bd833e0e7c36b5a9304a3aa012a8fce9331.tar.gz
ferdium-app-e01f9bd833e0e7c36b5a9304a3aa012a8fce9331.tar.zst
ferdium-app-e01f9bd833e0e7c36b5a9304a3aa012a8fce9331.zip
Updated the documentation (#1394)
Restructured the documentation. Added an important section for self-help: 'Troubleshooting recipes'. [skip ci]
Diffstat (limited to 'README.md')
-rw-r--r--README.md189
1 files changed, 45 insertions, 144 deletions
diff --git a/README.md b/README.md
index d6c8e7e38..e2448bde9 100644
--- a/README.md
+++ b/README.md
@@ -25,17 +25,18 @@
25 25
26🤴🏽 Hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted ones. 26🤴🏽 Hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted ones.
27 27
28### Table of contents 28## Table of contents
29 29
30<details> 30<details>
31<summary>Toggle navigation</summary> 31<summary>Toggle navigation</summary>
32 32
33- [Ferdi](#ferdi) 33- [Ferdi](#ferdi)
34 - [Table of contents](#table-of-contents) 34 - [Table of contents](#table-of-contents)
35 - [What is Ferdi?](#what-is-ferdi) 35 - [What is Ferdi?](#what-is-ferdi)
36 - [Features](#features) 36 - [Features](#features)
37 - [What does Ferdi look like?](#what-does-ferdi-look-like) 37 - [What does Ferdi look like?](#what-does-ferdi-look-like)
38 - [Download Ferdi](#download-ferdi) 38 - [How to get and start using Ferdi](#how-to-get-and-start-using-ferdi)
39 - [Download Ferdi](#download-ferdi)
39 - [Or use Chocolatey (Windows only)](#or-use-chocolatey-windows-only) 40 - [Or use Chocolatey (Windows only)](#or-use-chocolatey-windows-only)
40 - [Or use homebrew (macOS or Linux)](#or-use-homebrew-macos-or-linux) 41 - [Or use homebrew (macOS or Linux)](#or-use-homebrew-macos-or-linux)
41 - [Or use AUR (Arch Linux)](#or-use-aur-arch-linux) 42 - [Or use AUR (Arch Linux)](#or-use-aur-arch-linux)
@@ -44,36 +45,24 @@
44 - [Adds features to increase your productivity](#adds-features-to-increase-your-productivity) 45 - [Adds features to increase your productivity](#adds-features-to-increase-your-productivity)
45 - [Adds features to improve your privacy](#adds-features-to-improve-your-privacy) 46 - [Adds features to improve your privacy](#adds-features-to-improve-your-privacy)
46 - [Adds features to improve your experience using Ferdi](#adds-features-to-improve-your-experience-using-ferdi) 47 - [Adds features to improve your experience using Ferdi](#adds-features-to-improve-your-experience-using-ferdi)
47 - [Removed bugs](#removed-bugs) 48 - [Fixes bugs](#fixes-bugs)
48 - [Adds new platforms](#adds-new-platforms) 49 - [Adds new platforms](#adds-new-platforms)
49 - [Adds internal changes](#adds-internal-changes) 50 - [Adds internal changes](#adds-internal-changes)
50 - [Development](#development) 51 - [Contributing to Ferdi's development](#contributing-to-ferdis-development)
51 - [Install OS dependencies](#install-os-dependencies) 52 - [Nightly releases](#nightly-releases)
52 - [Node.js](#nodejs) 53 - [Troubleshooting recipes (self-help)](#troubleshooting-recipes-self-help)
53 - [Git](#git)
54 - [Debian/Ubuntu](#debianubuntu)
55 - [Fedora](#fedora)
56 - [Windows](#windows)
57 - [Clone repository with submodule](#clone-repository-with-submodule)
58 - [Local caching of dependencies](#local-caching-of-dependencies)
59 - [Install dependencies](#install-dependencies)
60 - [Fix native modules to match current electron node version](#fix-native-modules-to-match-current-electron-node-version)
61 - [Package recipe repository](#package-recipe-repository)
62 - [Start development app](#start-development-app)
63 - [Packaging](#packaging)
64 - [Release](#release)
65 - [Nightly releases](#nightly-releases)
66 - [Contributors ✨](#contributors-) 54 - [Contributors ✨](#contributors-)
67 - [Backers via OpenCollective](#backers-via-opencollective) 55 - [Backers via OpenCollective](#backers-via-opencollective)
68 - [Sponsors via OpenCollective](#sponsors-via-opencollective) 56 - [Sponsors via OpenCollective](#sponsors-via-opencollective)
69 - [Other Sponsors](#other-sponsors) 57 - [Other Sponsors](#other-sponsors)
70</details> 58</details>
71 59
72### What is Ferdi? 60## What is Ferdi?
73 61
74Ferdi is a desktop app that helps you organize how you use your favourite apps by combining them into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additional features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com). 62Ferdi is a desktop app that helps you organize how you use your favourite apps by combining them into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additional features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com).
75 63
76## Features 64## Features
65
77- [x] Ferdi puts all your web apps into one place 66- [x] Ferdi puts all your web apps into one place
78- [x] Native support for 100+ services 67- [x] Native support for 100+ services
79- [x] Workspaces to keep your personal and work life separated 68- [x] Workspaces to keep your personal and work life separated
@@ -86,9 +75,10 @@ Ferdi is a desktop app that helps you organize how you use your favourite apps b
86- [x] Ferdi speaks your language: Support for 20+ languages 75- [x] Ferdi speaks your language: Support for 20+ languages
87 76
88...and best of all: 77...and best of all:
78
89- [x] Its completely free! There are no restrictions on features, no paywalls 79- [x] Its completely free! There are no restrictions on features, no paywalls
90 80
91### What does Ferdi look like? 81## What does Ferdi look like?
92 82
93<details> 83<details>
94<summary>Toggle screenshots</summary> 84<summary>Toggle screenshots</summary>
@@ -104,7 +94,9 @@ Ferdi is a desktop app that helps you organize how you use your favourite apps b
104</p> 94</p>
105</details> 95</details>
106 96
107## Download Ferdi 97## How to get and start using Ferdi
98
99### Download Ferdi
108 100
109You can download Ferdi for Windows, Mac and Linux on [Ferdi's download page](https://getferdi.com/download) or you can find all variants in the [latest stable release](https://github.com/getferdi/ferdi/releases/latest) assets and [all the other release here](https://github.com/getferdi/ferdi/releases). 101You can download Ferdi for Windows, Mac and Linux on [Ferdi's download page](https://getferdi.com/download) or you can find all variants in the [latest stable release](https://github.com/getferdi/ferdi/releases/latest) assets and [all the other release here](https://github.com/getferdi/ferdi/releases).
110 102
@@ -123,6 +115,7 @@ You can download Ferdi for Windows, Mac and Linux on [Ferdi's download page](htt
123### Or use AUR (Arch Linux) 115### Or use AUR (Arch Linux)
124 116
125Ferdi has three separate AUR packages you can use: 117Ferdi has three separate AUR packages you can use:
118
126- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release - this version will work best on most systems. 119- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release - this version will work best on most systems.
127- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch. Use this version if you are having trouble with the `ferdi` package. 120- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch. Use this version if you are having trouble with the `ferdi` package.
128- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch and may be unstable but may also give you features that are not yet available in other versions. Please only use `ferdi-git` if you accept these risks. 121- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch and may be unstable but may also give you features that are not yet available in other versions. Please only use `ferdi-git` if you accept these risks.
@@ -132,12 +125,14 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
132## What makes Ferdi different from Franz? 125## What makes Ferdi different from Franz?
133 126
134### Removes unproductive paywalls and other other interruptions 127### Removes unproductive paywalls and other other interruptions
128
135- [x] Removes the counter-productive fullscreen app delay inviting users to upgrade 129- [x] Removes the counter-productive fullscreen app delay inviting users to upgrade
136- [x] Removes pages begging you to donate after registration 130- [x] Removes pages begging you to donate after registration
137- [x] Removes "Franz is better together" popup 131- [x] Removes "Franz is better together" popup
138- [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15)) 132- [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15))
139 133
140### Adds features to increase your productivity 134### Adds features to increase your productivity
135
141- [x] Adds 30+ new services 136- [x] Adds 30+ new services
142- [x] Adds "Find in Page" feature ([#67](https://github.com/getferdi/ferdi/issues/67)) 137- [x] Adds "Find in Page" feature ([#67](https://github.com/getferdi/ferdi/issues/67))
143- [x] Adds an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37)) 138- [x] Adds an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37))
@@ -153,6 +148,7 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
153- [x] Differentiates between indirect and direct notifications ([#590](https://github.com/getferdi/ferdi/issues/590)), 💖 [@Room4O4](https://github.com/Room4O4) [@mahadevans87](https://github.com/mahadevans87) [@FeikoJoosten](https://github.com/FeikoJoosten) [@sampathBlam](https://github.com/sampathBlam) 148- [x] Differentiates between indirect and direct notifications ([#590](https://github.com/getferdi/ferdi/issues/590)), 💖 [@Room4O4](https://github.com/Room4O4) [@mahadevans87](https://github.com/mahadevans87) [@FeikoJoosten](https://github.com/FeikoJoosten) [@sampathBlam](https://github.com/sampathBlam)
154 149
155### Adds features to improve your privacy 150### Adds features to improve your privacy
151
156- [x] [Adds option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server) 152- [x] [Adds option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server)
157- [x] Adds option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5)) 153- [x] Adds option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5))
158- [x] Uses the Ferdi API instead of Franz's servers 154- [x] Uses the Ferdi API instead of Franz's servers
@@ -163,6 +159,7 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
163- [x] Adds local [recipe repository](https://github.com/getferdi/recipes) that removes the need of downloading recipes from a remote server 159- [x] Adds local [recipe repository](https://github.com/getferdi/recipes) that removes the need of downloading recipes from a remote server
164 160
165### Adds features to improve your experience using Ferdi 161### Adds features to improve your experience using Ferdi
162
166- [x] Adds Universal Dark Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71)) 163- [x] Adds Universal Dark Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71))
167- [x] Adds Dark Reader settings ([#531](https://github.com/getferdi/ferdi/issues/531), [#568](https://github.com/getferdi/ferdi/issues/568)), 💖 [@Room4O4](https://github.com/Room4O4) & [@mahadevans87](https://github.com/mahadevans87) 164- [x] Adds Dark Reader settings ([#531](https://github.com/getferdi/ferdi/issues/531), [#568](https://github.com/getferdi/ferdi/issues/568)), 💖 [@Room4O4](https://github.com/Room4O4) & [@mahadevans87](https://github.com/mahadevans87)
168- [x] Adds adaptable Dark Mode that will respect the system's Dark Mode setting ([#173](https://github.com/getferdi/ferdi/issues/173), [#548](https://github.com/getferdi/ferdi/issues/548) (💖 [@Room4O4](https://github.com/Room4O4) & [@mahadevans87](https://github.com/mahadevans87))) 165- [x] Adds adaptable Dark Mode that will respect the system's Dark Mode setting ([#173](https://github.com/getferdi/ferdi/issues/173), [#548](https://github.com/getferdi/ferdi/issues/548) (💖 [@Room4O4](https://github.com/Room4O4) & [@mahadevans87](https://github.com/mahadevans87)))
@@ -193,7 +190,8 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
193- [x] Updates Microsoft Teams to allow Desktop Sharing ([getferdi/recipes#116](https://github.com/getferdi/recipes/issues/116)), 💖 [@Gautasmi](https://github.com/Gautasmi) 190- [x] Updates Microsoft Teams to allow Desktop Sharing ([getferdi/recipes#116](https://github.com/getferdi/recipes/issues/116)), 💖 [@Gautasmi](https://github.com/Gautasmi)
194- [x] Removes automatic reloading from WhatsApp 191- [x] Removes automatic reloading from WhatsApp
195 192
196### Removed bugs 193### Fixes bugs
194
197- [x] Fixes bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd)) 195- [x] Fixes bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd))
198- [x] Fixes zooming 196- [x] Fixes zooming
199- [x] Fixes login problems in Google services 197- [x] Fixes login problems in Google services
@@ -206,12 +204,14 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
206- [x] Refocuses Webview only for active service ([#610](https://github.com/getferdi/ferdi/issues/610)), 💖 [@Room4O4](https://github.com/Room4O4) & [@mahadevans87](https://github.com/mahadevans87) 204- [x] Refocuses Webview only for active service ([#610](https://github.com/getferdi/ferdi/issues/610)), 💖 [@Room4O4](https://github.com/Room4O4) & [@mahadevans87](https://github.com/mahadevans87)
207 205
208### Adds new platforms 206### Adds new platforms
207
209- [x] Adds portable version for Windows so you can use Ferdi without even installing it, 💖 [@Makazzz](https://github.com/Makazzz) 208- [x] Adds portable version for Windows so you can use Ferdi without even installing it, 💖 [@Makazzz](https://github.com/Makazzz)
210- [x] Adds Arch Linux AUR packages, 💖 [@AGCaesar](https://github.com/AGCaesar) 209- [x] Adds Arch Linux AUR packages, 💖 [@AGCaesar](https://github.com/AGCaesar)
211- [x] Adds Ferdi as a Flatpak on Flathub ([#323](https://github.com/getferdi/ferdi/issues/323)), 💖 [@lhw](https://github.com/lhw) 210- [x] Adds Ferdi as a Flatpak on Flathub ([#323](https://github.com/getferdi/ferdi/issues/323)), 💖 [@lhw](https://github.com/lhw)
212 211
213### Adds internal changes 212### Adds internal changes
214- [x] Upgrades to Electron 12.0.6 213
214- [x] Upgrades to Electron 12.0.7
215- [x] Switches to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size 215- [x] Switches to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size
216- [x] Minifies build files to improve app size 216- [x] Minifies build files to improve app size
217- [x] Adds "npm run prepare-code" command for development to lint and beautify code 217- [x] Adds "npm run prepare-code" command for development to lint and beautify code
@@ -223,134 +223,35 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
223 223
224> Thanks to all our [contributors](#contributors-) who helped realize all these amazing features! 💖 224> Thanks to all our [contributors](#contributors-) who helped realize all these amazing features! 💖
225 225
226## Development 226## Contributing to Ferdi's development
227
228### Install OS dependencies
229
230#### Node.js
231
232Please make sure you are running the exact node version used by the developers/contributors as specified in the [nvmrc file](./.nvmrc)
233
234#### Git
235
236The version [2.23.0](https://github.com/git-for-windows/git/releases/tag/v2.23.0.windows.1) for Git is working fine for development. You can then use the console from Git to do the development procedure.
237
238#### Debian/Ubuntu
239
240```bash
241$ apt install libx11-dev libxext-dev libxss-dev libxkbfile-dev rpm
242```
243
244#### Fedora
245
246```bash
247$ dnf install libX11-devel libXext-devel libXScrnSaver-devel libxkbfile-devel rpm
248```
249
250#### Windows
251
252Please make sure you run this command as an administrator:
253
254```bash
255$ npm install --global windows-build-tools --vs2015
256```
257 227
258### Clone repository with submodule 228We welcome all contributors. Please read the [contributing guidelines](CONTRIBUTING.md) to setup your development machine and proceed.
259 229
260```bash 230## Nightly releases
261$ git clone https://github.com/getferdi/ferdi.git
262$ cd ferdi
263$ git submodule update --init --recursive
264```
265 231
266It is important you execute the last command to get the required submodules (recipes, server). 232Nightly releases are automatically triggered every day ([details](https://github.com/getferdi/ferdi/pull/990)) and available in [getferdi/nightlies](https://github.com/getferdi/nightlies/releases). Maintainers still need to manually publish the draft releases as pre-releases for now.
267 233
234## Troubleshooting recipes (self-help)
268 235
269### Local caching of dependencies 236One of the issues being raised by the awesome users of Ferdi is that certain service-functionalities do not work. As good example of this is either the unread count (badge) stops working for specific services or the gmail logins don't work anymore. (These are just 2 of the most common problems reported).
270 237
271Set these env vars into your profile (or if you use [direnv](https://direnv.net/), you can manage them via the respective `.envrc` file) 238Since we (the contributors to Ferdi) also eat our own dog food, we use Ferdi as our day-to-day communication app - and most likely have faced the same/similar issue. As a first step before filing an issue, we request you to follow these simple steps to see if the issue gets fixed.
272```bash
273export ELECTRON_CACHE=$HOME/.cache/electron
274export ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
275```
276
277### Install dependencies
278 239
279Run the following command to install all dependencies, and link sibling modules with Ferdi. 240- Make sure you are on the latest version of Ferdi. As of this writing, since the nightly CI packaging process is broken, we request you to download the latest nightly from the link in [Nightly releases](#nightly-releases) section.
241- Stop Ferdi
242- Navigate to the Ferdi profile folder in your respective installation in your file explorer application.
280 243
281```bash 244```bash
282$ npx lerna bootstrap 245 Mac: ~/Library/Application Support/Ferdi/recipes
246 Windows: %appdata%/Ferdi/recipes
247 Linux: ~/.config/Ferdi/recipes
283``` 248```
284 249
285If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. If you encounter the `gyp: No Xcode or CLT version` error on macOS at this step, please have a look [here](https://medium.com/flawless-app-stories/gyp-no-xcode-or-clt-version-detected-macos-catalina-anansewaa-38b536389e8d). 250- Delete the folder of the service that is causing your issue - _in the file explorer application_. (Please note that if you have manually modified any files here, it will be your responsibility to merge the changes with the latest version of the recipe (or you can submit a [pull request](https://github.com/getferdi/recipes/pulls) for the same).
286 251- Open a browser and navigate to the [recipes](https://github.com/getferdi/recipes/tree/master/recipes) repository page, and copy ALL the files for your erroneous service into your local machine at the location that you deleted in the previous step
287### Fix native modules to match current electron node version 252- Restart Ferdi (this should upgrade your recipes to the latest working version that the contributors have fixed)
288 253- If this process did not fix the issue, please log a detailed bug report [here](https://github.com/getferdi/recipes/issues)
289```bash 254- _Note:_ An automated process to perform these steps is being ideated and tracked [here](https://github.com/getferdi/ferdi/issues/1302)
290$ npm run rebuild
291```
292
293### Package recipe repository
294
295Ferdi requires its recipes to be packaged before it can use it. When running Ferdi as a development instance, you'll need to package the local recipes before you can create any services inside Ferdi.
296
297```bash
298$ cd recipes
299$ npm install && npm run package
300```
301
302### Using Docker to build a package
303
304```bash
305$ docker build -t ferdi-package .
306$ docker run -v tmp-out:/ferdi-out -it ferdi-package sh
307```
308
309The above will place all the built artifacts into the `/ferdi` folder within the image. If you want to copy them outside of the image, simply mount a volume into a different location, and copy all files from `/ferdi` into the mounted folder (`/ferdi-out` in the 2nd example command above).
310
311### Start development app
312
313Run these two commands **simultaneously** in different terminals:
314
315```bash
316$ npm run dev
317$ DEBUG=Ferdi:* npm run start
318```
319
320Optionally, you can run both commands in one terminal with [misty](https://github.com/adlk/misty) (see [misty.yml](https://github.com/getferdi/ferdi/blob/develop/misty.yml)):
321
322```bash
323$ DEBUG=Ferdi:* npx misty
324```
325
326Note: please prefer [`debug()`](https://github.com/visionmedia/debug) over `console.log()`.
327
328### Packaging
329
330```bash
331$ npm run build
332```
333
334Assets will be available in the `out` folder.
335
336### Release
337
338Create a new [draft release](https://github.com/getferdi/ferdi/releases/new) that targets the `release` branch, then:
339
340```bash
341$ git checkout develop && git pull
342$ git checkout release
343$ git submodule update --remote --force
344$ git commit -am "Update submodules"
345$ git merge --no-ff develop
346$ git push
347```
348
349Once the draft release assets are uploaded (13 assets), publish the release. The last commit of the `release` branch will be tagged. You can then merge `release` into `master` and back into `develop` if needed.
350
351#### Nightly releases
352
353Nightly releases are automaticly triggered every day ([details](https://github.com/getferdi/ferdi/pull/990)) and available in [getferdi/nightlies](https://github.com/getferdi/nightlies/releases). Maintainers still need to manually publish the draft releases as pre-releases for now.
354 255
355## Contributors ✨ 256## Contributors ✨
356 257