Skip to content

commenting on posts

Comments live under posts. Anyone signed in can comment; anonymous comment posting is not supported (only voting and post submission are).

Comments are threaded one level deep. Top-level comments are sorted oldest-first; replies under a comment are also oldest-first. Spirby renders deleted top-level comments as tombstones if they still anchor a live reply, so the conversation stays readable; an empty deleted comment is hidden entirely.

You can edit your own comment for 15 minutes after posting. After that, the body is locked. There is no longer-window edit option, the constraint is by design so the conversation people see is the conversation that happened.

Admins are not bound by the 15-minute window and can edit any comment on the board, in addition to deleting them. Use this sparingly, edits to other people’s comments leave no audit trail in the ui.

Deleting a comment soft-deletes it: the body is replaced with an empty string and the author info is redacted. The row stays so threading does not break, replies stay attached to the tombstone.

Comments authored by someone with an admin role on the organization are flagged with is_admin_reply and rendered with a distinct style on the public board. This makes it easy for visitors to see the team’s response without scanning author names.

Comment creation is rate-limited:

  • per ip: 30 / hour
  • per signed-in user: 60 / hour

Hitting a limit returns a rate-limit error; limits reset on a rolling hourly window.

Bodies are written with tiptap and sanitized server-side before they are stored. Pasting raw html does not produce raw html in the rendered comment.