Context
To federate workout activity via ActivityPub, we need WordPress custom post types that represent fitness events. These posts are the bridge between the app's internal data and the Fediverse.
Proposed Post Types
br_workout — Completed Workout
Published when a user completes a training day.
Today's workout: Oberkörper (Upper Body)
✅ Bankdrücken — 3×12 @ 65kg
✅ Rudern — 3×12 @ 50kg
✅ Schulterdrücken — 3×10 @ 30kg
Duration: 45 min | 🔥 Day 42 streak
br_achievement — Milestone / Achievement
Published when a user earns a badge, levels up, or hits a streak milestone.
🏆 New achievement: 30-Day Streak!
Completed 30 consecutive training days.
br_personal_record — Personal Record
Published when a user sets a new weight/rep PR.
💪 New PR: Bankdrücken — 70kg × 12
Previous best: 65kg × 12
Questions for Matthias (ActivityPub)
- What's the best ActivityPub object type for fitness activities?
Note? Article? Custom Activity type?
- How does the ActivityPub plugin handle custom post types — automatic, or does it need explicit registration?
- Should workout data be in the post content (human-readable) or in structured metadata (machine-readable) or both?
- Is there an emerging standard for fitness data in ActivityPub (like Strava's FIT format but for AP)?
Questions for Alex (Friends)
- How would these post types appear in a Friends timeline?
- Can Friends render custom post types with special formatting (e.g., exercise tables, progress bars)?
- Would it make sense to register a custom Friends parser for Body Refactoring content?
Privacy Considerations
- Users must explicitly opt-in to publishing workouts
- Granularity control: share completions only, or include weights/reps?
- Private by default, public opt-in per post type
Context
To federate workout activity via ActivityPub, we need WordPress custom post types that represent fitness events. These posts are the bridge between the app's internal data and the Fediverse.
Proposed Post Types
br_workout— Completed WorkoutPublished when a user completes a training day.
br_achievement— Milestone / AchievementPublished when a user earns a badge, levels up, or hits a streak milestone.
br_personal_record— Personal RecordPublished when a user sets a new weight/rep PR.
Questions for Matthias (ActivityPub)
Note?Article? CustomActivitytype?Questions for Alex (Friends)
Privacy Considerations