commenting on posts
Comments live under posts. Anyone signed in can comment; anonymous comment posting is not supported (only voting and post submission are).
threading
Section titled “threading”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.
edit window
Section titled “edit window”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.
delete
Section titled “delete”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.
admin replies
Section titled “admin replies”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.
rate limits
Section titled “rate limits”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.
sanitization
Section titled “sanitization”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.