Black Lives Matter. Support the Equal Justice Initiative and read our statement here.
Ferdi

Ferdi

All your messaging services in one place.

Download

Ferdi

GitHub Releases Contributors Open Collective backers Open Collective sponsors Build Status Windows Build Status Mac & Linux Gitter Chat Room

🤴🏽 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 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.

Features

  • Ferdi puts all your messaging services into one place
  • Native support for 100+ services
  • Workspaces to keep your personal and work life separated
  • Support for multiple accounts on any service
  • Dark Mode support for all of your services
  • Optional cloud sync to keep your services synchronized between devices
  • Better control over when you get which notifications
  • Cross-platform so you can view your services on all your computers
  • Full proxy support to work in every network environment
  • Ferdi speaks your language: Support for 20+ languages

...and best of all:

  • Its completely free! There are no restrictions on features, no paywalls

What does Ferdi look 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 Todos list open with Ferdi Todos. "Always keep your Todos list open with Ferdi Todos." Supporting all your services. "Supporting all your services."

Download Ferdi

You can download Ferdi for Windows, Mac and Linux on Ferdi's download page or you can find all variants 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 three separate AUR packages you can use:

  • ferdi: Uses your system electron version to run the latest release - this version will work best on most systems.
  • ferdi-bin: Uses the latest Fedora release and extracts it to Arch. Use this version if you are having trouble with the ferdi package.
  • 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.

If you use an AUR Helper e.g. yay, simply install it via yay -S ferdi.

What makes Ferdi different from Franz?

Removes unproductive paywalls and other other interruptions

  • Removes the counter-productive fullscreen app delay inviting users to upgrade
  • Removes pages begging you to donate after registration
  • Removes "Franz is better together" popup
  • Makes all users Premium by default (#15)

Adds features to increase your productivity

Adds features to improve your privacy

Adds features to improve your experience using Ferdi

  • Adds Universal Dark Mode via the DarkReader extension (#71)
  • Adds Dark Reader settings (#531, #568), 💖 @Room4O4 & @mahadevans87
  • Adds adaptable Dark Mode that will respect the system's Dark Mode setting (#173, #548 (💖 @Room4O4 & @mahadevans87))
  • Adds a hotkey to quickly toggle darkmode (#530, #537), 💖 @Room4O4 & @mahadevans87
  • Adds an option to start Ferdi minimized (#490, #534)
  • Adds ability to change the services icons size and sidebar width (#153)
  • Adds an option to auto-hide the menubar (#7, franz#833)
  • Enhances system tray icon behaviour (#307)
  • Adds option to show draggable window area on macOS (#304, #532)
  • Adds a notification & audio toggle action to the tray context menu (#542), 💖 @Room4O4 & @mahadevans87
  • Adds option to show a browser-like navigation bar on all services
  • Adds option to change accent color
  • Reflects your currently opened service name to the window title to improve support for Password Managers (#213), 💖 @gmarec
  • Allows using SVGs for service custom icon
  • Adds button to open darkmode.css for a service
  • Improves "About Ferdi" screen to better display versions
  • Improves user onboarding (#493)
  • Improves "Updates" section in settings (#506), 💖 @yourcontact
  • Improves draggable window area height for macOS (#304, #479)
  • Adds option to start Ferdi in system tray (#331), 💖 @jereksel
  • Fixes and enhances context menu (#357 #413 #452 #354 #227)
  • Adds better support for macOS dark mode
  • Adds option to disable reload of services after resuming Ferdi (#442), 💖 @n0emis
  • Comes with a custom branding proper to Ferdi
  • Adds better separation in settings
  • Adds various other UI improvements
  • Improves documentation of development so more developers can help making Ferdi even better
  • Updates Microsoft Teams to allow Desktop Sharing (getferdi/recipes#116), 💖 @Gautasmi
  • Removes automatic reloading from WhatsApp

Removed bugs

  • Fixes bug that would incorrectly display unread messages count on some services (more info in 7566ccd)
  • Fixes zooming
  • Fixes login problems in Google services
  • Fixes missing Slack services custom icons (#290)
  • Fixes bug that marked valid domains as invalid (#276)
  • Fixes microphone/camera access on some versions of macOS (#193)
  • Fixes cache clearing not working in Windows 10 (#541, #544), 💖 @Room4O4 & @mahadevans87
  • Fixes Home button in navigation bar not correctly navigating (#571, #573), 💖 @Room4O4 & @mahadevans87
  • Fixes notifications for various services, 💖 @FeikoJoosten
  • Refocuses Webview only for active service (#610), 💖 @Room4O4 & @mahadevans87

Adds new platforms

  • Adds portable version for Windows so you can use Ferdi without even installing it, 💖 @Makazzz
  • Adds Arch Linux AUR packages, 💖 @AGCaesar
  • Adds Ferdi as a Flatpak on Flathub (#323), 💖 @lhw

Adds internal changes

  • Upgrades to Electron 8.1.1
  • Switches to electron-spellchecker to improve application size
  • Minifies build files to improve app size
  • Adds "npm run prepare-code" command for development to lint and beautify code
  • Adds "npm run link-readme" command to automatically add links to issues and users inside README.md
  • Fixes incorrect body closing tag (#330), 💖 @jereksel
  • Uses CrowdIn to improve i18n
  • Adds retry commands to flaky build steps (#498)
  • Runs utility scripts pre-commit instead of pre-push (#515)

Thanks to all our contributors who helped realize all these amazing features! 💖

Development

Install OS dependencies

Node.js

Please make sure you are running NodeJS v10 or above.

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. If you encounter the gyp: No Xcode or CLT version error on macOS at this step, please have a look here.

Fix native modules to match current electron node version

$ npm run rebuild

Start development app

Run these two commands simultaneously in different terminals:

$ npm run dev
$ DEBUG=Ferdi:* npm run start

Optionally, you can run both commands in one terminal with misty (see misty.yml):

$ DEBUG=Ferdi:* npx misty

Note: please prefer debug() over console.log().

Packaging

$ npm run build

Deliverables will be available in the out folder.

Release

Create a new draft release that targets the release branch, then:

$ git checkout develop && git pull
$ git checkout release
$ git submodule update --remote --force
$ git add .
$ git commit -m "Update submodules"
$ git merge --no-ff develop
$ git push

Once 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.

Nightly

$ git checkout develop && git pull
$ git checkout nightly
$ git submodule update --remote --force
$ git add .
$ git commit -m "Update submodules"
$ git merge --no-ff develop
$ git push

The draft release and assets will be available in getferdi/nightlies releases. You need to manually publish the draft release as a pre-release for now.

Contributors

Thanks goes to these wonderful people (emoji key):


Bennett

💻 🎨 📖 🤔 🌍 💡 🐛 🖋 🚇 📓 💬 📆 👀

Amine Mouafik

💻 🎨 📖 🤔 🐛 🖋 🚇 📓 💬 📆 👀 🚧 📦 🔍 📝 🌍

Stefan Malzner

💻 🖋 🎨 📖 🤔 🚇 📆 ⚠️ 🌍

Makazzz

🐛 💻 🌍 🖋 📖 📦

ZeroCool

💻 🤔

rseitbekov

💻

Peter Bittner

🤔 🐛

Justus Saul

🐛 🤔

igreil

🤔

Marco Lopes

🤔

dayzlun

🐛

Tobias Günther

🤔

AGCaesar

📦

xthursdayx

💻 📖 🚇 📦

Gaboris

💬 🐛

Ce

🐛

Stanislav N.

🐛

Patrick Curl

🤔

Benjamin Staneck

🎨

ammarmalhas

🐛 🛡️

Steliyan Stoyanov

💻 🤔

Bror Winther

📖

Felix W. Dekker

📖

Sauceee

🎨

Lennart Weller

📦

Andrzej Ressel

💻

Daniel Peukert

💻

Ali M. Shiple

🌍

elviseras

🌍

J370

🌍

Koen

🌍

Leandro Gehlen

🌍

Matthieu42

🌍

Nikita Bibanaev

🌍

Tatjana1998

🌍

tinect

🌍

Wonsup Yoon

🌍

zutt

🌍

n0emis

💻 🌍

gmarec

💻

127oo1

🌍

ChTBoner

🌍

Johan Engstrand

🌍

Marouane R

💻

Roman

💻 🤔

Mahadevan Sreenivasan

💻 🤔 👀 🐛 📖 📓

Jake Lee

🖋

Sampath Kumar Krishnan

💻 👀 🤔 🐛 📖 📓

saruwman

📖 💻

dorukkarinca

🐛

Gautam Singh

💻

Feiko Joosten

💻

2bdelghafour

🌍

Abderrahim Tantaoui

🌍

AndiLeni

🌍

Bruno Almada

🌍

Catarino Gonçalo

🌍

Edilson Alzemand Sigmaringa Junior

🌍

MAT-OUT

🌍

mazzo98

🌍

paprika-naught-tiffin-flyspeck

🌍

Patrick Valle

🌍

peq42_

🌍

Pumbinha

🌍

Serhiy Dmytryshyn

🌍

SMile61

🌍

tinect

🌍

gega7

🐛

tristanplouz

💻 🤔

Danny Qiu

💻 🐛

Youssef Belyazidi

💻

Gabriel Speckhahn

📦

Nadiia Ridko

💻

Jan Hohner

📓

Kristóf Marussy

💻

Juan Mora

💻

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

Backers via OpenCollective

Mention to the individuals backing us via GitHub Sponsors as well.

Sponsors via OpenCollective

Other Sponsors

not_used
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.

Something missing? Edit this app.

Keyboard Shortcuts

Key Action
/ Focus the search bar
Esc Focus the search bar and cleans it
Select the next search result
Select the previous search result
Enter Open the selected search result
cmdEnter Ctrl+Enter Open the selected search result in a new tab