Welcome to FIY — Federate It Yourself!

FIY is a federation protocol and app platform that lets you own the services you use without losing the interconnectedness of the internet. With FIY, a single account works seamlessly across multiple apps and instances.

What is Federation?

Federation is when services agree on standards allowing them to operate in as a collective.

Email is a classic example. Because email is built on federated protocols, you can host your own Email server or use a public provider and still communicate with anyone else.

Why Federation?

Control of the internet is increasingly concentrated in the hands of a few powerful corporate monopolies. The public actions, profit incentives, poor governance, and lack of oversight have led to growing distrust in these custodians of the internet and a push for alternatives not under their control.

Most Alternatives fall into one of the following categories:

Corporate Alternative
Competition is good, however, these often face familiar outcomes:
  1. Acquisition by a larger company
  2. Changes in leadership or direction
  3. Service shutdown
  4. Same trust and privacy issues
Example: Switching from Microsoft Teams to Slack
Self-hosting
Users independently host alternatives to corporate services.
Many of these are also Free and Open Source Software (FOSS), which gives additional freedoms and transparency.
The independence and control this offers is perfect for single-user services, however, for multi-user services, users are forced to create accounts on every server they want to interact with.
Example: switching from Slack to RocketChat
Federated Alternatives
Servers running shared protocols that enable seamless cross-server interactions. Like email, you can use choose a provider or host your own and still interact with users on other servers.
This combines the freedom and control of self-hosting with the connectivity of centralized platforms.
Example: Switching from RocketChat to XMPP

FIY — Your Home for Federated Apps

Self-hosting your own services is possible but the redundant account systems and lack of cross-app integrations leads to a degraded user experience.

FIY solves this by providing a unified platform for federated apps on your server. Use the same account with any app installed on your instance. FIY handles authentication and makes it easy for developers to create or adapt apps for federation with easy to use APIs and tooling. This enables powerful features like a unified home for notifications, using the same profile and contacts across all apps, streamlined app management among other things.

Key Features

FIY offers many advantages over centralized apps and even over other federated services.

Self-hostable
Find an instance to join or host your own.
FIY is written in performant C++ and designed to be run on consumer hardware.
App Platform
Use the same account on all the apps installed on your instance, and even with 3rd party apps via OAuth.
Data Sovereignty
Own your data: control access, ensure deletion, easily make backups, etc.
Free and Open Source
The platform and protocol are open source allowing 3rd party audits and bug reports.

Built-in Apps

In addition to installable apps,

Git-IY
Federated GitHub alternative free from Microsoft's shenanegans.
Contribute to multiple open source projects with a single account.
Contacts-IY
Import, export, manage, share, etc. contacts knowing that they aren't being handled by an advertising firm.
Make a profile, choose what other users can see, use the same profile across all FIY apps.
Chat-IY
Store your messages in a database that you control (or don't store anything).
Encrypt your messages.
Notifications
Manage notifications across all your apps.
HTTP Server Utilities
FIY includes basic HTTP server functionality, similar to Apache/nginx. This allows you to host static websites, blogs, wikis, etc. or even dynamic apps via reverse-proxy or CGI scripts. Or just redirect users to another website.

App Development Platform

It's easy to develop or convert apps to work with FIY. It's like making any other webapp, except authentication is handled by the protocol server and there's an easy-to-use API for interacting with the host and making requests to other apps. There's also a native development toolkit that lets your app link directly with the protocol server, enabling maximum performance without the pains of network programming.

Make an account Host your own instance