Skip to content
πŸ§”πŸ½ Community fork of @meetfranz. Ferdi allows you to combine your favourite messaging services into one application
JavaScript TypeScript CSS HTML
Branch: develop
Clone or download
Latest commit df8535f Nov 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github #73 Give visibility to Ferdi's OpenCollective Sep 24, 2019
.vscode Replace public Franz occurences with Ferdi Aug 21, 2019
branding Improve hero picture Oct 26, 2019
build-helpers replace low res win app icon ico with multi-size variant Oct 27, 2019
docs/example-feature #145 Review development instructions Oct 21, 2019
packages Merge https://github.com/meetfranz/franz into franz-5.4.0-release Oct 24, 2019
recipes @ ecf037c Update ref to latest recipes fixes Nov 28, 2019
src Merge branch 'develop' into l10n_develop Nov 30, 2019
uidev Merge branch 'master' of https://github.com/meetfranz/franz into fran… Sep 7, 2019
.all-contributorsrc docs: update .all-contributorsrc Nov 12, 2019
.babelrc Release/5.0.1 beta.1 (#1344) Mar 18, 2019
.editorconfig initial commit Oct 13, 2017
.eslintignore Rename server to internal-server to avoid confusion Nov 28, 2019
.eslintrc Add local server to allow serverlesss usage Oct 14, 2019
.gitignore feat(App): Added Workspaces for all your daily routines πŸ₯³ Apr 11, 2019
.gitmodules Rename server to internal-server to avoid confusion Nov 28, 2019
.npmrc Add .npmrc Nov 19, 2018
.nvmrc Update note version Oct 25, 2019
.travis.yml Remove travis_wait for npx lerna bootstrap Nov 28, 2019
CHANGELOG.md Update CHANGELOG.md Oct 24, 2019
CODE_OF_CONDUCT.md Replace public Franz occurences with Ferdi Aug 21, 2019
CONTRIBUTING.md Replace public Franz occurences with Ferdi Aug 21, 2019
LICENSE initial commit Oct 13, 2017
README.md Review Dark Mode cop/case consistency Nov 29, 2019
appveyor.yml Disable artifacts storage on AppVeyor Nov 28, 2019
crowdin.yml Update Crowdin configuration file Sep 30, 2019
electron-builder.yml #185 Add RPM target to electron-builder Nov 5, 2019
gulpfile.babel.js Use electron-spellchecker instead of electron-hunspell Oct 19, 2019
jest.config.js fix issues with actions and reactions setup in feature store Apr 16, 2019
lerna.json test package order Apr 8, 2019
misty.yml Add misty config Nov 15, 2018
next_release.md #173 Update feature list Oct 30, 2019
package-lock.json 5.4.1-beta.2 Nov 28, 2019
package.json 5.4.1-beta.2 Nov 28, 2019
tsconfig.json Release/5.0.1 beta.1 (#1344) Mar 18, 2019
tsconfig.settings.json Set target to es5 Apr 1, 2019
tslint.json Release/5.0.1 beta.1 (#1344) Mar 18, 2019
webpack.config.base.js Release/5.0.1 beta.1 (#1344) Mar 18, 2019

README.md

Ferdi

Open Collective backers Open Collective sponsors Build Status Windows Build Status Mac & Linux

🀴🏽 Hard-fork of Franz, adding awesome features and removing unwanted ones.

Table of contents

Toggle navigation

What is Ferdi ?

Ferdi is a messaging browser that allows you to combine your favorite messaging services into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additonal 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.

What Ferdi looks like ?

Toggle screenshots

Keep all your messaging services in one place. "Keep all your messaging services in one place." Order your services with Ferdi Workspaces. "Order your services with Ferdi Workspaces." Always keep your Todo list open with Ferdi Todos. "Always keep your Todo list open with Ferdi Todos." Supporting all your services. "Supporting all your services."

Download Ferdi

You can find the installers in the latest stable release assets and all the other release here.

Or use homebrew (macOS only)

$ brew cask install ferdi

(Don't know homebrew? brew.sh)

Or use AUR (Arch Linux)

Ferdi has two seperate AUR packages you can use:

  • ferdi-build: Uses your debian build and extracts it to Arch
  • ferdi-git: Uses system electron version

If you use a AUR Helper e.g. yay, simply install it via Β΄yay -S ferdi-binΒ΄

ferdi-git may not work on all systems so we advice you to use ferdi-bin instead.

Ferdi-specific Features

  • Removes the counter-productive fullscreen app delay inviting users to upgrade
  • Removes pages begging you to donate after registration
  • Remove "Franz is better together" popup
  • Remove bug that would incorrectly display unread messages count on some services (more info in 7566ccd)
  • Makes all users Premium by default (#15)
  • Using the Ferdi API instead of Franz's servers
  • Add option to change server to a custom ferdi-server
  • Add option to use Ferdi without an account (#5)
  • Add "Private Notification"-Mode, that hides message content from notifications (franz#879)
  • Add Password Lock feature to keep your messages protected (#41, franz#810, franz#950, franz#1430)
  • Add an option to keep individual workspaces always loaded (#37)
  • Add Universal Dark Mode via the DarkReader extension (#71)
  • Add adaptable Dark Mode that will respect the system's Dark Mode setting (#173)
  • Add an option to auto-hide the menubar (#7, franz#833)
  • Add "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's Quick Switcher)
  • Add "Service Hibernation" that will automatically unload services when they are unused
  • Add "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's Work Hours)
  • Add CTRL+← and CTRL+β†’ shortcuts and menu options to go back and forward in the service browsing history(#39)
  • Add option to show a browser-like navigation bar on all services
  • Add option to change accent color
  • Add portable version for Windows
  • Add Process Manager to find services using a lot of resources
  • Add "npm run prepare-code" command for development to lint and beautify code
  • Add button to open darkmode.css for a service
  • Switch to electron-spellchecker to improve application size
  • Improve "About Ferdi" screen to better display versions
  • Minifying build files to improve app size
  • Makes it possible to edit the "Franz Todo" server
  • Makes RocketChat self-hosted generally available (#6)
  • Comes with a custom branding proper to Ferdi

Development

Install OS dependencies

Node.js

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.

Git

The version 2.23.0 for Git is working fine for development. You can then use the console from Git to do the development procedure.

Debian/Ubuntu

$ apt install libx11-dev libxext-dev libxss-dev libxkbfile-dev

Fedora

$ dnf install libX11-devel libXext-devel libXScrnSaver-devel libxkbfile-devel

Windows

$ npm install --global windows-build-tools --vs2015

Clone repository with submodule

$ git clone https://github.com/getferdi/ferdi.git
$ cd ferdi
$ git submodule update --init --recursive

It is important you execute the last command to get the required submodules (recipes, server).

Install dependencies

Run the following command to install all dependencies, and link sibling modules with Ferdi.

$ npx lerna bootstrap

If you previously ran npm install it sometimes is necessary to delete your node_modules folder before running npx lerna bootstrap.

Fix native modules to match current electron node version

$ npm run rebuild

Start development app

Run these two commands simultaneously in different console tabs:

$ npm run dev
$ npm run start

Be aware that the development database will be reset regularly.

Packaging

$ npm run build

Deliverables will be available in the out folder.

Release

$ git checkout develop && git pull && git checkout master
$ git merge --no-ff develop
$ git tag v5.3.4-beta.4
$ git push --tags

When pushing a new tag, the CI builds will create a draft GitHub release and upload the deliverables in the draft release assets. Wait for all the assets to be uploaded before publishing the draft release.

Contributors ✨

Thanks goes to these wonderful people (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

πŸ“¦
Makazzz
Makazzz

πŸ› πŸ’» 🌍 πŸ–‹ πŸ“– πŸ“¦
xthursdayx
xthursdayx

πŸ’» πŸ“– πŸš‡ πŸ“¦
Gaboris
Gaboris

πŸ’¬ πŸ›
Ce
Ce

πŸ›
Stanislav N.
Stanislav N.

πŸ›
Patrick Curl
Patrick Curl

πŸ€”
Benjamin Staneck
Benjamin Staneck

🎨
ammarmalhas
ammarmalhas

πŸ› πŸ›‘οΈ
Steliyan Stoyanov
Steliyan Stoyanov

πŸ’» πŸ€”
Bror Winther
Bror Winther

πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Backers via OpenCollective

Sponsors via OpenCollective

You can’t perform that action at this time.