shadcn.io is not affiliated with official shadcn/ui
Feature Request Todo List Block for Svelte
A feedback board with a vote toggle per request, status filters with counts, a one-time sort by votes, and a submit form that suggests similar requests while you type.
Installation
Overview
Let people vote on what to build next, with this feature request board for Svelte with Ark UI. Each request has a vote Toggle with its count (pressed is your vote, pressing again takes it back), a one-line detail and a status Badge: Under review, Planned, In progress, Shipped or Declined. A Toggle Group filters by status with live counts, and "Sort by votes" orders the list once and then reads "Sorted by votes" until a vote changes it. The submit cell comes first on a phone and sits beside the list on a wide screen. While you type it suggests up to three similar requests by shared words, each with "Vote for this instead", and "Submit request", the Shine Button, adds yours with one vote. The list region keeps its height, with an Empty state for a status nothing is in. Guides rule the bands. For product feedback, roadmaps and idea boards.
FAQ
How are similar requests found?
The draft and each request title are cut into words of four letters or more, common words are dropped, and each word is shortened to its first five letters. Requests that share at least one are ranked by how many they share, then by votes, and the best three show. It is plain word overlap, not a model.
What does a vote do?
Pressing a vote toggle adds one to that request and presses it; pressing again takes the vote back. "Vote for this instead" does the same for the request you pick and clears your draft, so you don't add a duplicate.
Why does Sort by votes read as a status?
Sorting reorders the list once, from the votes at that moment, so the order doesn't jump while you vote. The button then says "Sorted by votes" until a vote or a new request makes it stale.
What stays local, and how do I wire it for real?
Requests and votes live in the page and reset on reload. Write each vote and each new request to your own store from vote and submit, and keep one vote per person on the server.