Skip to content

Instantly share code, notes, and snippets.

@nikclayton
Created February 2, 2026 15:51
Show Gist options
  • Select an option

  • Save nikclayton/32825870b4552c74ae0e221ba5cb6b08 to your computer and use it in GitHub Desktop.

Select an option

Save nikclayton/32825870b4552c74ae0e221ba5cb6b08 to your computer and use it in GitHub Desktop.

Most important

Survey what other servers have done and don't reinvent the wheel.

Support posting a thread

See mastodon/mastodon#32171. In that I suggest v1/thread, but this could just as easily be v2/statuses.

Different API routes for posting a scheduled vs. a non-scheduled status

This ensures that a server that doesn't support scheduled statuses can't accept a scheduled status but post it immediately.

Relax content restrictions

Mastodon doesn't allow people to post e.g., media + polls, but will serve statuses with this mixture.

Relax the restriction in the API -- if you want to continue to enforce this when creating posts in your web UI then fine, but allow third party clients the option to create richer posts.

Allow for different MIME types

Make the MIME type of the incoming content a non-optional property. You might only accept text/plain, other servers might accept text/markdown or text/html. This allows clients to provide a richer editing experience based on what the server supports.

Pleroma and GotoSocial call this content_type.

Expose the list of supported status MIME types in the instanceinfo.

Allow poll[expires_at] as an alternative to poll[expires_in].

Consistent with the response returned when fetching a status to edit. This makes it easier for clients to safely round-trip status edits, and provide additional UI for setting when a poll should end.

Extend language support

Extend the language property to ISO 639-3 three letter language codes, which cover many additional languages, https://iso639-3.sil.org/code_tables/639/data.

quote_approval_policy

Standardise on either quote_approval_policy or quote_policy as the property name (per https://discord.com/channels/1100160301254590525/1100203946502533221/1442981409433059501)

Rename spoiler_text to subject

Allow custom emojis in the subject

Be specific about custom emojis in poll options

See mastodon/mastodon#28336

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment