Skip to content

Let users edit the caption and thumbnail before cross-posting to Instagram #30

Description

@Bielcx

Request

Let the user edit the caption and choose a thumbnail before a post is cross-posted
to Instagram. Today it publishes straight through with no chance to adjust either.

Current behaviour

lib/instagram.ts:91-125 sends the snap body as the caption and has no thumbnail
field at all:

const payload: Record<string, unknown> = {
  hive_author: session.username,
  hive_permlink: args.permlink,
  body: args.body,          // ← this is the caption
  tags: args.tags ?? [],
  image_url: args.imageUrl,
  video_url: args.videoUrl,
  permalink_url: args.permalinkUrl,
};

The call is fire-and-forget immediately after the snap publishes
(maybeCrossPostToInstagram in app/(tabs)/create.tsx), so there is no moment in
the flow where a review step could slot in today.

What this needs

  1. A review step between publishing the snap and cross-posting — caption field
    prefilled from the body, thumbnail picker for videos, and a way to skip.
  2. Caption decoupled from the body, so the Hive post and the Instagram caption
    can differ.
  3. Thumbnail support in the payload.

Blocked on an answer

Items 2 and 3 depend on what POST /api/skatehive.app/api/instagram/post actually
accepts. If the endpoint only ever derives the caption from body and picks its own
frame, this needs API work first and the mobile UI can't be designed around it yet.

Question for whoever owns that endpoint: can it take an explicit caption
separate from body, and an explicit thumbnail URL for video posts?

Note

Video thumbnails are now available: the transcoder returns thumbnailUrl and the
app records it in json_metadata.images (#26), so a real frame exists to offer as
the default thumbnail rather than whatever Instagram picks.

Suggested label: enhancement, mobile, blocked

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions