# Ferdi
[![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/kytwb/ferdi.svg?branch=master)](https://travis-ci.org/kytwb/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/kytwb/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/kytwb/ferdi/issues/15))
- [x] [Add option to change server to a custom](https://github.com/kytwb/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/vantezzen/ferdi-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/kytwb/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/kytwb/ferdi/issues/37))
- [x] Add an option to auto-hide the menubar ([#7](https://github.com/kytwb/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833))
- [x] Add CTRL+β and CTRL+β shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/kytwb/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] [Makes it possible to edit the "Franz Todo" server](https://github.com/kytwb/ferdi/wiki/Custom-Todo)
- [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/kytwb/ferdi/issues/6))
- [x] Comes with a custom branding proper to Ferdi
## Development
### Preparations
#### 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)):