# Ferdi [![Backers on Open Collective](https://opencollective.com/getferdi/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/getferdi/sponsors/badge.svg)](#sponsors) [![Build Status Windows](https://ci.appveyor.com/api/projects/status/2ckfbmoxp36fye5b?svg=true)](https://ci.appveyor.com/project/kytwb/ferdi) [![Build Status Mac & Linux](https://travis-ci.org/getferdi/ferdi.svg?branch=master)](https://travis-ci.org/getferdi/ferdi) 🀴🏽 Hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted ones. ## Download Ferdi You can find the installers in the [latest release](https://github.com/getferdi/ferdi/releases) assets. ### Or use homebrew (macOS only) `$ brew cask install ferdi` (Don't know homebrew? [brew.sh](https://brew.sh/)) ## Ferdi-specific Features - [x] Removes the counter-productive fullscreen app delay inviting users to upgrade - [x] Removes pages begging you to donate after registration - [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15)) - [x] [Add option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server) - [x] Add "Private Notification"-Mode, that hides message content from notifications ([franz#879](https://github.com/meetfranz/franz/issues/879)) - [x] Add Password Lock feature to keep your messages protected ([#41](https://github.com/getferdi/ferdi/issues/41), [franz#810](https://github.com/meetfranz/franz/issues/810), [franz#950](https://github.com/meetfranz/franz/issues/950), [franz#1430](https://github.com/meetfranz/franz/issues/1430)) - [x] Add an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37)) - [x] Add universal Dark-Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71)) - [x] Add an option to auto-hide the menubar ([#7](https://github.com/getferdi/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833)) - [x] Add "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's [Quick Switcher](https://rambox.pro/#feature-details/quick_switcher)) - [x] Add "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's [Work Hours](https://rambox.pro/#feature-details/work_hours)) - [x] Add CTRL+← and CTRL+β†’ shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/getferdi/ferdi/issues/39)) - [x] Add "npm run prepare-code" command for development to lint and beautify code - [x] Remove "Franz is better together" popup - [x] Remove bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd)) - [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/getferdi/ferdi/wiki/Custom-Todo) - [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/getferdi/ferdi/issues/6)) - [x] Comes with a custom branding proper to Ferdi ## Development ### Preparations #### Clone repository with submodule ```bash $ git clone git@github.com:getferdi/ferdi.git $ cd getferdi $ git submodule update --init --recursive ``` #### Install Linux OS dependencies [Guide: Linux distribution specific dependencies](docs/linux.md) #### Use right NodeJS version Please make sure you are running NodeJS v10 (v10.16.3 suggested). Versions above will throw an errow when trying to install due to an [old fsevent dependency](https://github.com/fsevents/fsevents/issues/278) #### Fix native modules to match current electron node version ```bash $ npm run rebuild ``` ### Install dependencies Run the following command to install all dependencies, and link sibling modules with Franz. ```bash $ npx lerna bootstrap ``` If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. ### Run Ferdi Development App Run these two commands **simultaneously** in different console tabs. ```bash $ npm run dev $ npm run start ``` Be aware that the development database will be reset regularly. ## Packaging ```bash $ npm run build ``` Deliverables will be available in the ./out folder. ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Bennett
Bennett

πŸ’» 🎨 πŸ“– πŸ€” 🌍 πŸ’‘ πŸ› πŸ–‹ πŸš‡ πŸ““ πŸ’¬ πŸ“† πŸ‘€
Stefan Malzner
Stefan Malzner

πŸ’» πŸ–‹ 🎨 πŸ“– πŸ€” πŸš‡ πŸ“† ⚠️ 🌍
Amine Mouafik
Amine Mouafik

πŸ’¬ πŸ’» πŸ“– πŸ€” 🚧 πŸ“¦ πŸ“† πŸ‘€ πŸš‡
ZeroCool
ZeroCool

πŸ’» πŸ€”
rseitbekov
rseitbekov

πŸ’»
Peter Bittner
Peter Bittner

πŸ€” πŸ›
Justus Saul
Justus Saul

πŸ› πŸ€”
igreil
igreil

πŸ€”
Marco Lopes
Marco Lopes

πŸ€”
dayzlun
dayzlun

πŸ›
Tobias GΓΌnther
Tobias GΓΌnther

πŸ€”
AGCaesar
AGCaesar

πŸ“¦
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! ## Backers via OpenCollective