- C# 85.7%
- CSS 5.4%
- HTML 5.3%
- JavaScript 2.1%
- Python 0.9%
- Other 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| charts/fediprofile | ||
| docs | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| AGENTS.md | ||
| FediProfile.slnx | ||
| LICENSE.md | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.mjs | ||
| README.md | ||
Table of contents
FediProfile - The Decentralized Link-in-Bio
Your links, badges, and identity - powered by the Fediverse.
The open-source, federated alternative to Linktree.
What is FediProfile?
FediProfile is a free, privacy-respecting link-in-bio tool built on ActivityPub. Your profile page is itself a first-class Fediverse actor — people on Mastodon, Pleroma, Misskey, and any other ActivityPub platform can discover and interact with it directly.
It's designed for two audiences:
Newcomers — A clean, fast link-in-bio with no trackers, no ads, and no account lock-in. It also serves as a gateway into the Fediverse: your profile link is an ActivityPub actor, encouraging exploration of open platforms.
Fediverse power users — If you juggle multiple accounts (Mastodon, Pixelfed, Loops, a federated blog…), FediProfile gives you a single persona to share. It doesn't post on its own, but it automatically boosts content from your other accounts and has its own ActivityPub inbox — including the ability to receive and display verifiable badges issued through BadgeFed.
Features
- Unlimited Links — Add as many links as you want, organize them your way.
- ActivityPub Native — Your profile is discoverable and followable from any Fediverse instance.
- Badge Collection — Receive and showcase verifiable badges from issuers across the Fediverse via BadgeFed.
- Fediverse login — Authenticate with an existing Mastodon, Akkoma, Pleroma, or Pixelfed account. FediProfile detects the server software and rejects unsupported login flows before authorization.
- Auto-Boost & Relay — Consolidate your Fediverse presence by automatically boosting posts from your other accounts.
- Self-Hostable — Run your own instance with full control over your data.
- No Tracking — Zero analytics sold, zero ads, zero corporate surveillance.
How It Works
- Sign in with the Fediverse — Enter a supported server domain and authorize FediProfile.
- Pick an optional short name — The permanent account-qualified path (for example
/@michael@westergaard.social) always works; an available short alias such as/@michaelmay also be selected. - Add links & badges — Drop in your links. Badges arrive automatically from issuers across the Fediverse.
Documentation
- Compatibility: ActivityPub application and BadgeFed matrices
- Development: clone, build, test, run from source, and run with Docker
- Configuration: application settings, authentication, databases, object storage, and templates
- Deployment: production requirements and Kubernetes examples
- Architecture: project boundaries, replaceable infrastructure, and runtime data
Tech Stack
- Runtime: .NET 10.0 / ASP.NET Core
- UI: Blazor Server
- Database: LINQ to DB with SQLite or PostgreSQL
- Auth: Dynamically registered OAuth for Mastodon, Akkoma, Pleroma, and Pixelfed; optional GitHub and LinkedIn providers
- Protocol: ActivityPub / ActivityStreams
Comparison
| Feature | FediProfile | Linktree | Others |
|---|---|---|---|
| Unlimited links | ✓ Free | ✓ Free | Varies |
| Federated identity | ✓ | ✗ | ✗ |
| Badge / credential system | ✓ Built-in | ✗ | ✗ |
| ActivityPub integration | ✓ Native | ✗ | ✗ |
| Self-hostable | ✓ | ✗ | Some |
| Open source | ✓ | ✗ | Some |
| No tracking / analytics sold | ✓ | ✗ | ✗ |
| Price | Free forever | Free / $9+ | Varies |
Contributing
Contributions are welcome! Here's how to get involved:
- Fork the repository
- Create a branch for your feature or fix:
git checkout -b my-feature - Commit your changes:
git commit -m "Add my feature" - Push to your fork:
git push origin my-feature - Open a Pull Request against
main
If you find a bug or have an idea, open an issue.
License
Licensed under the GNU Lesser General Public License v3.