Roadmap

Public product roadmap with Planned, In progress and Shipped columns or a quarter timeline, where cards fly between the two views through shared layout, re-sort by votes as you upvote with a direction-aware rolling count, carry tag badges, and can be filtered by status.

Preview

Roadmap preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/roadmap
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

items?
RoadmapItem[]
—
defaultItems?
RoadmapItem[]
[]
onItemsChange?
((items: RoadmapItem[]) => void)
—
view?
"board" | "timeline"
—
defaultView?
"board" | "timeline"
board
onViewChange?
((view: RoadmapView) => void)
—
statuses?
RoadmapStatus[]

Visible statuses (the status filter). Default: all three.

—
defaultStatuses?
RoadmapStatus[]
["planned", "in-progress", "shipped"]
onStatusesChange?
((statuses: RoadmapStatus[]) => void)
—
onVote?
((id: string, voted: boolean) => void)

Fires after the optimistic vote toggle.

—
quarters?
string[]

Quarter order for the timeline view; defaults to first-seen order.

—
className?
string
—

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.

Updated