Using Lunax

Feedback boards

Every app gets one public board where users post ideas, vote on them, and discuss. Boards are readable by anyone on the internet — no account needed to browse.

Anatomy of a board

A board isan app — there's no separate board object to create. Creating an app called Acme with the slug acme gives you three public pages immediately:

URLPage
/b/acmeThe board — every post, newest first
/b/acme/roadmapThree columns: Planned, In progress, Done
/b/acme/changelogEverything marked Done, most recent first
/b/acme/p/{id}A single post with its comments

One app means exactly one board. There are no sub-boards or multiple boards per product — the four categories below are the only way to divide posts.

Post statuses

Every post starts as Open. Only agents and admins can change it, and the status is what drives the roadmap and changelog pages.

StatusMeansShows on roadmapShows on changelog
OpenReceived, not triaged yetNoNo
PlannedAccepted, not startedPlanned columnNo
In progressBeing built nowIn progress columnNo
DoneShippedDone columnYes
DeclinedWon't buildNoNo
Status is your entire publishing workflow
Marking a post Done is what publishes it to the changelog — there is no separate publish step, draft state, or release-notes editor. Moving it off Done removes it from the changelog again.

Post an idea

  1. Open the board at /b/{slug} and sign in — posting requires an account.
  2. Use the form in the sidebar: a title, an optional description, and a category.
  3. Categories are Feedback, Bug, Feature, and Question. This list is fixed.
  4. Submit — you land on the new post, which starts at Open with zero votes.
Feedback posts are public and permanent
Anyone on the internet can read your post, your display name, and your comments. There is no edit or delete button for authors. Don't include account details, invoices, or anything private — use a support ticket for that.

Voting

  • You must be signed in. Anonymous visitors see the vote button but it's disabled.
  • One vote per person per post. Clicking again removes your vote — it's a toggle.
  • All votes count equally. There is no weighting by plan, seniority, or anything else.
  • Vote counts are public, and so is the record of who voted for what.

Votes are what order the roadmap: within each column, the highest-voted post sits at the top. On the board itself you have to choose Most votes to sort that way — the default is newest first.

Comments

  • Signed-in users only. Anonymous visitors see “Sign in to comment.”
  • Comments show oldest first, in a flat list — there are no threaded replies in the UI.
  • Each comment shows the author's name (or email) and a relative time. Staff are not badged, so an official answer looks like any other comment.
  • There is no edit, delete, hide, or report control — for authors or for staff.
There is no comment moderation
Once a comment is posted, nothing in the product can remove it. Removing one means a direct database edit. Factor that in before opening a board to a large audience.

Search, sort, and filter

Every control on the board writes to the URL, so any filtered view can be bookmarked or shared as a link.

ControlOptions
SortNewest (default), Oldest, Most votes
StatusAll, Open, Planned, In progress, Done, Declined
CategoryAll, Feature, Bug, Feedback, Question — shown as chips
SearchFull-text over titles and descriptions

Search syntax

Search understands quoted phrases, or, and - to exclude a word — so "dark mode" -mobile works as you'd expect. It matches word stems, so exportingfinds “export”. It searches titles and descriptions only, not comments.

Boards show up to 100 posts per view
There is no pagination. On a busy board, narrow with a status, category, or search term rather than scrolling. The counters in the header (“N shown”) describe the filtered view, not the board total.

Staff — moderating feedback

/feedback is the internal triage view for agents and admins. It lists the 100 most-recently-updated posts across every app.

Each row shows the status, category, title, app name, vote count, and last-updated time, plus a status dropdown. Changing that dropdown is the only action available on this screen.

Triage is deliberately thin
There is no search, no filter, no pagination, and no bulk action on this page. There is also no way to delete, merge, pin, or assign a post, and no internal notes on feedback. For anything beyond a status change, open the post on its public board.

A workable triage rhythm

  1. Sort the public board by Most votes, filtered to Open, to see what has traction.
  2. Move the ones you'll build to Planned — they appear on the roadmap immediately.
  3. Flip to In progress when work starts, so voters can see momentum.
  4. Mark Done on release — this publishes it to the changelog.
  5. Use Declined honestly, and leave a comment explaining why. Declined posts vanish from the roadmap but stay on the board.

Making a board private

An app has an is public flag. Turn it off and anonymous visitors get a 404 for the board, roadmap, changelog, and every post — while agents and admins keep full access. Use this for a product in closed beta.

Private hides posts, not comments
The privacy check covers the app and its posts. Comment rows are not scoped the same way, so a private board is a soft control, not a security boundary. Don't rely on it to protect confidential discussion.

Who can do what

ActionAnonymousCustomerAgent / Admin
Browse a public boardYesYesYes
Read roadmap and changelogYesYesYes
See vote counts and commentsYesYesYes
Post an ideaNoYesYes
VoteNoYesYes
CommentNoYesYes
Change a post's statusNoNoYes
Open /feedback triageNoNoYes
View a private app's boardNoNoYes