9.8 KiB
How to Follow (Subscribe to) Fediverse Users in Solar Network
Overview
In ActivityPub terminology, "subscribing" to a user is called "following". This guide explains how users in Solar Network can follow users from other federated services (Mastodon, Pleroma, etc.).
User Guide: How to Follow Fediverse Users
Method 1: Via Search (Recommended)
-
Search for the user:
- Type their full address in the search bar:
@username@domain.com - Example:
@alice@mastodon.social - Example:
@bob@pleroma.site
- Type their full address in the search bar:
-
View their profile:
- Click on the search result
- You'll see their profile, bio, and recent posts
-
Click "Follow" button:
- Solar Network sends a Follow activity to their instance
- The remote instance will send back an Accept
- The user now appears in your "Following" list
Method 2: Via Profile URL
-
Visit their profile directly:
- If you know their profile URL, visit it directly
- Example:
https://mastodon.social/@alice
-
Look for "Follow" button:
- Click it to follow
-
Confirm the follow:
- Solar Network will send the follow request
- Wait for acceptance (usually immediate)
What Happens Behind the Scenes
The Follow Flow
User clicks "Follow"
↓
Solar Network creates Follow Activity
↓
Solar Network signs with publisher's private key
↓
Solar Network sends to remote user's inbox
↓
Remote instance verifies signature
↓
Remote instance processes the Follow
↓
Remote instance sends Accept Activity back
↓
Solar Network receives and processes Accept
↓
Relationship is established!
Timeline Integration
Once you're following a user:
- ✅ Their public posts appear in your "Home" timeline
- ✅ Their posts are federated to your followers
- ✅ Their likes, replies, and boosts are visible
- ✅ You can interact with their content
Following Different Types of Accounts
Individual Users
- What: Regular users like you
- Example:
@alice@mastodon.social - Works: ✅ Full support
Organizational/Bot Accounts
- What: Groups, bots, or organizations
- Example:
@official@newsbot.site - Works: ✅ Full support
Locked Accounts
- What: Users who manually approve followers
- Example:
@private@pleroma.site - Works: ✅ Follow request sent, waits for approval
Managing Your Follows
View Who You're Following
API Endpoint: GET /api/activitypub/following
Response Example:
{
"users": [
{
"actorUri": "https://mastodon.social/users/alice",
"username": "alice",
"displayName": "Alice Smith",
"bio": "I love tech and coffee! ☕",
"avatarUrl": "https://cdn.mastodon.social/avatars/...",
"followedAt": "2024-01-15T10:30:00Z",
"isLocal": false,
"instanceDomain": "mastodon.social"
}
]
}
Unfollowing Someone
API Endpoint: POST /api/activitypub/unfollow
Request Body:
{
"targetActorUri": "https://mastodon.social/users/alice"
}
Response:
{
"success": true,
"message": "Unfollowed successfully"
}
Searching Fediverse Users
API Endpoint: GET /api/activitypub/search?query=@username@domain.com
Response Example:
{
"users": [
{
"actorUri": "https://mastodon.social/users/alice",
"username": "alice",
"displayName": "Alice Smith",
"bio": "Software developer | Mastodon user",
"avatarUrl": "https://cdn.mastodon.social/avatars/...",
"isLocal": false,
"instanceDomain": "mastodon.social"
}
]
}
Follow States
| State | Meaning | What User Sees |
|---|---|---|
| Pending | Follow request sent, waiting for response | "Following..." (loading) |
| Accepted | Remote user accepted | "Following" ✓ |
| Rejected | Remote user declined | "Follow" button available again |
| Failed | Error occurred | "Error following" message |
Privacy & Visibility
Public Posts
- ✅ Federate to your followers automatically
- ✅ Appear in remote instances' timelines
- ✅ Can be boosted/liked by remote users
Private Posts
- ❌ Do not federate
- ❌ Only visible to your local followers
- ❌ Not sent to remote instances
Unlisted Posts
- ⚠️ Federate but not in public timelines
- ⚠️ Only visible to followers
Best Practices for Users
When Following Someone
-
Check their profile first:
- Make sure they're who you think they are
- Read their bio to understand their content
-
Start with a few interactions:
- Like a few posts
- Reply to something interesting
- Don't overwhelm their timeline
-
Respect their instance's rules:
- Each instance has its own guidelines
- Read community rules before interacting
-
Report spam/harassment:
- Use instance blocking features
- Report to instance admins
Following Across Instances
-
Use their full address:
@username@instance.com- This helps identify which instance they're on
-
Be aware of instance culture:
- Each instance has its own norms
- Some are more technical, others more casual
-
Check if they're from your instance:
- Local users show
isLocal: true - Usually faster interaction
- Local users show
Troubleshooting
"Follow button doesn't work"
Possible Causes:
- User doesn't exist
- Instance is down
- Network issue
Solutions:
- Verify the user's address is correct
- Check if the instance is accessible
- Check your internet connection
- Try again in a few minutes
"User doesn't appear in Following list"
Possible Causes:
- Follow was rejected
- Still waiting for acceptance (locked accounts)
- Error in federation
Solutions:
- Check the follow status via API
- Try following again
- Check if their account is locked
- Contact support if issue persists
"Can't find a user"
Possible Causes:
- Wrong username or domain
- User doesn't exist
- Instance blocking your instance
Solutions:
- Double-check the address
- Try searching from a different instance
- Contact the user directly for their handle
API Reference
Follow a Remote User
Endpoint: POST /api/activitypub/follow
Request:
{
"targetActorUri": "https://mastodon.social/users/alice"
}
Response: 200 OK
{
"success": true,
"message": "Follow request sent. Waiting for acceptance.",
"targetActorUri": "https://mastodon.social/users/alice"
}
Get Following List
Endpoint: GET /api/activitypub/following?limit=50
Response: 200 OK
{
"users": [
{
"actorUri": "https://mastodon.social/users/alice",
"username": "alice",
"displayName": "Alice Smith",
"bio": "...",
"avatarUrl": "...",
"followedAt": "2024-01-15T10:30:00Z",
"isLocal": false,
"instanceDomain": "mastodon.social"
}
]
}
Get Followers List
Endpoint: GET /api/activitypub/followers?limit=50
Response: 200 OK
{
"users": [
{
"actorUri": "https://mastodon.social/users/alice",
"username": "alice",
"displayName": "Alice Smith",
"bio": "...",
"avatarUrl": "...",
"isLocal": false,
"instanceDomain": "mastodon.social"
}
]
}
Search Users
Endpoint: GET /api/activitypub/search?query=alice&limit=20
Response: 200 OK
{
"users": [
{
"actorUri": "https://mastodon.social/users/alice",
"username": "alice",
"displayName": "Alice Smith",
"bio": "...",
"avatarUrl": "...",
"isLocal": false,
"instanceDomain": "mastodon.social"
}
]
}
What's Different About ActivityPub Following?
Unlike traditional social media:
| Feature | Traditional Social | ActivityPub |
|---|---|---|
| Central server | ✅ Yes | ❌ No - federated |
| All users on same platform | ✅ Yes | ❌ No - multiple platforms |
| Blocked instances | ❌ No | ✅ Yes - instance blocking |
| Following across platforms | ❌ No | ✅ Yes - works with Mastodon, Pleroma, etc. |
| Your data stays on your server | ❌ Maybe | ✅ Yes - you control your data |
User Experience Considerations
Making It Easy
-
Auto-discovery:
- When users search for
@username, suggest@username@domain.com - Offer to search the fediverse
- When users search for
-
Clear UI feedback:
- Show "Follow request sent..."
- Show "They accepted!" notification
- Show "Follow request rejected" message
-
Helpful tooltips:
- Explain what ActivityPub is
- Show which instance a user is from
- Explain locked accounts
-
Profile badges:
- Show instance icon/logo
- Show if user is from same instance
- Show if user is verified
Examples
Following a Mastodon User
User searches: @alice@mastodon.social
What happens:
- Solar Network fetches Alice's actor profile
- Solar Network stores Alice in
fediverse_actors - Solar Network sends Follow to Alice's inbox
- Alice's instance accepts
- Solar Network stores relationship in
fediverse_relationships - Alice's posts now appear in user's timeline
Following a Local User
User searches: @bob
What happens:
- Solar Network finds Bob's publisher
- Relationship created locally (no federation needed)
- Bob's posts appear in user's timeline immediately
- Same as traditional social media following
Summary
Following fediverse users in Solar Network:
- Search by
@username@domain.com- Works for any ActivityPub instance - Click "Follow" - Sends federated follow request
- Wait for acceptance - Remote user can approve or auto-accept
- See their posts in your timeline - Content federates to you
- Interact normally - Like, reply, boost, etc.
All of this is handled automatically by the ActivityPub implementation!