Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Governance Forum Web3 Block for Solid

A DAO forum in a fixed-height window: six proposal threads with category chips, author roles, upvote toggles and comment counts, a thread reader with replies, and a composer where Enter posts and Shift+Enter breaks the line.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Talk a proposal through before anyone votes on it, with this governance forum for Solid with Ark UI. It's the forum of Commonroom, a DAO forum, in a fixed-height window with no sidebar. The top bar names it and holds a Native Select that narrows the six threads by category: Grants, Treasury, Governance or Tooling. The start pane lists the threads, each with its title, a category chip, the author's role as Core, Delegate or Member, a comment count and an upvote Toggle with its count. The end pane reads the chosen thread: the post, its typed replies with their roles and times, an upvote on each, and a composer. Enter posts, Shift+Enter adds a line, and a post stays on this page only. Move to a vote is a link that goes nowhere in the demo. For DAOs, communities and any discussion board with roles.

FAQ

What do the roles mean?

Core is a contributor who works for the DAO, Delegate is a member who holds votes on behalf of others, and Member is anyone else with tokens. They are typed labels on the threads and replies, shown as a chip so a reader can weigh a reply by who wrote it.

How do upvotes work here?

Each thread and reply has a toggle that adds one to its count while it is pressed, kept in local state, and takes it back when pressed again. The list keeps its order when counts change, so rows never jump under your pointer.

How does the composer work?

It is a labelled text area. Enter posts the reply to the open thread and Shift+Enter breaks the line, as the hint under the field says; an empty reply is refused with a message. The new reply appears at the end of the thread, scrolls the thread into view without moving the page, and counts toward the comment total.

What stays local, and how do I wire it?

All of it. Threads, replies, handles and times are typed constants, and a post is kept in local state and lost on reload. In your app load threads from your forum API, post replies with the signed-in member, derive the role from their on-chain or off-chain standing, and make Move to a vote link to the proposal page.

Is it accessible from the keyboard?

Yes. The thread list is real buttons with the current one marked, the reader is a named article, each upvote says what it votes for, and focus goes to the thread heading when a choice hides the list on a phone and back to the row from Back. One polite status line reports each action.

How does it look on a phone?

The list and the thread become one pane at a time: choosing a thread shows it with a Back button, and Back returns to the list with your row focused. The window keeps its height and only the panes scroll.