feat: add featured/pinned posts support #13

Open
opened 2026-05-29 09:25:25 +00:00 by GKaszewski · 0 comments
Owner

Context

The AP layer now serves GET /users/{id}/featured via k-ap, which calls ApContentReader::get_featured_objects(). Currently returns an empty collection (default no-op).

Requirements

  • Add pinned: bool column to thoughts table (migration)
  • Add pin/unpin use case + API endpoints (POST/DELETE /thoughts/{id}/pin)
  • Implement get_featured_objects() on ThoughtsObjectHandler to return AP URLs of pinned thoughts
  • Limit pins per user (e.g. max 5)

Mastodon and Pleroma follow the featured link from the actor profile to discover pinned posts.

## Context The AP layer now serves `GET /users/{id}/featured` via k-ap, which calls `ApContentReader::get_featured_objects()`. Currently returns an empty collection (default no-op). ## Requirements - Add `pinned: bool` column to `thoughts` table (migration) - Add pin/unpin use case + API endpoints (`POST/DELETE /thoughts/{id}/pin`) - Implement `get_featured_objects()` on `ThoughtsObjectHandler` to return AP URLs of pinned thoughts - Limit pins per user (e.g. max 5) Mastodon and Pleroma follow the `featured` link from the actor profile to discover pinned posts.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GKaszewski/thoughts#13