FPDP

Federated Personal Digital Platform

Your domain is your digital home — not a profile on someone else's platform.

Source code on GitHub

Open source (Apache-2.0): github.com/kukuhtw/fpdp — deploy your own node.

🏠

What is FPDP?

FPDP is a self-hosted personal digital platform. Each installation is one independent node, on one domain, owned by one person: their website, social profile, shop, and inbox in one place, connected to the fediverse.

  • Own your domain — your identity is @you@your-domain, not an account on a platform you don't control.
  • Own your content — posts, media, and data stay on your node.
  • Own your connections — follow and be followed by Mastodon users and other FPDP nodes.
  • Own your shop — sell your own products to visitors and pick the payment gateway yourself.
🌐

How federation works

FPDP speaks ActivityPub, the protocol behind Mastodon and the wider fediverse, so there is no central server.

  • Identity — every node publishes WebFinger and an actor document, and signs what it sends with its own RSA key (HTTP Signatures).
  • Follow — Follow, Accept, Reject, and Undo, including follow requests you approve yourself.
  • Delivery — your posts and promoted products are delivered to followers, with retry and backoff.
  • Timeline — incoming posts (created, edited, deleted, with images) join your local posts, external feeds, and products in one timeline.
🧰

What a node includes today

📝 Publishing

Posts and articles with media upload, drafts, visibility, and a public profile at /@handle.

🛍️ Personal online shop

Physical and digital products, public checkout, and downloads after payment. Promoted products appear in followers' fediverse timelines.

💳 Payments

Midtrans, PayPal, Paywuz, iPaymu, or manual bank transfer; confirmation, cancel, refund, and reconciliation from the dashboard.

🤖 AI chatbot

A chatbot answering from the owner's own documents and FAQ, using the owner's LLM provider, paid from a visitor wallet.

🔁 External feeds

RSS, Atom, YouTube, custom APIs, and LinkedIn pages, shown with attribution and links to the original.

🎨 Themes

Default, editorial, and minimal themes, switchable from the dashboard.

🔐 Owner dashboard

One owner per node, with an audit trail of sensitive actions such as payments, credentials, and federation trust.

🔗

Federation in action

Three independent nodes, each on its own domain — any of them could just as well be a Mastodon server:

kukuhtw.com
@kukuh
FPDP owner
⇄
maya.id
@maya
Friend
⇄
mastodon.social
@kukuhtw
Mastodon account
  1. Find: @kukuh looks up @kukuhtw@mastodon.social in the dashboard and previews the profile.
  2. Follow: kukuhtw.com sends a signed Follow; ari's server accepts it.
  3. Receive: when @kukuhtw posts, edits, or deletes a post, kukuhtw.com gets it and updates @kukuh's timeline.
  4. Share: when @kukuh promotes a product, it reaches @kukuhtw's timeline as a post linking back to the shop; on another FPDP node like maya.id it shows as a product card with the price and a "Buy on kukuhtw.com" button.
🔌

How to connect

  1. Get a node — deploy FPDP on your own domain (Docker/Dokploy, a VPS, or shared hosting — see GitHub).
  2. Share your address — people follow you at @handle@your-domain, from Mastodon or another FPDP node.
  3. Find people — in Dashboard → Federation, search an address, see follow-back suggestions, or browse a Mastodon server's directory and hashtags.
  4. Approve followers — incoming follow requests wait for your approval.
  5. Publish — new posts and promoted products are delivered to your followers automatically.

Federation is open — any ActivityPub server can connect without asking permission, and you can block any server or account.

📋

Federation status

FPDP is in active development. What the code does today:

FeatureStatus
WebFinger, actor documents, RSA keys & HTTP SignaturesDone
Follow / Accept / Reject / Undo, follow approvalDone
Signed delivery with retryDone
Incoming posts (create, edit, delete, images)Done
Promoted products to the fediverseDone
Account discovery (search, suggestions, directory, hashtags)Done
Block servers and accounts, mute connectionsDone
Works with Mastodon (mastodon.social, mastodon.world)Done
Likes, boosts, and repliesPlanned
Reporting accounts (Flag)Planned
Products as structured objects, with a "Buy on {seller}" card on other FPDP nodesDone
Ordering directly from another node's dashboard (signed order, paid on the seller's gateway, status synced back)Done
📖

Documentation

For developers and node operators — source code on GitHub, licensed under Apache-2.0: