Skip to main content

Roadmap Module

The Roadmap module gives authenticated users a page to suggest features or bugs, vote on what matters most, and see where things stand. New suggestions go through a moderation step before they become visible to others.

Requires: Auth module

Public roadmap page

What you get

  • Roadmap page at /roadmap — authenticated users see all public items grouped by status
  • Voting — upvote or downvote items; score updates instantly without a page reload
  • Feature suggestions — users can submit new items directly from the roadmap page via a dialog
  • Moderation — new suggestions default to Pending Approval and are hidden until you review them
  • Item types — Feature or Bug, so your team can triage quickly
  • Six statuses — track items from suggestion through to completion
  • Filament CRUD — manage all roadmap items in the admin panel

Installation

composer require saucebase/roadmap
composer dump-autoload
php artisan module:enable Roadmap
php artisan module:migrate Roadmap --seed
npm run build

Admin panel

Navigate to /adminRoadmap Items to manage items.

Use the New roadmap item button to create an item directly. The form auto-generates a slug from the title.

Roadmap admin panel

The table is sorted by submission date (newest first) by default. Use the status filter to find items awaiting approval, and the type filter to separate features from bugs.

Item fields

FieldDescription
TitleThe name of the feature or bug
SlugUsed in the URL. Auto-generated from the title on create
DescriptionA detailed explanation of the item
StatusThe current state of the item (see statuses below)
TypeFeature or Bug
Submitted byThe user who suggested the item (nullable for admin-created items)

Item statuses

StatusVisible publiclyDescription
Pending ApprovalNoDefault when a user submits a suggestion. Hidden until you approve it
ApprovedYesApproved and open for voting
In ProgressYesYou have started working on it
CompletedYesDone
RejectedNoYou decided not to pursue this item
CancelledNoWork was started but cancelled

Only items with status Approved, In Progress, or Completed appear on the roadmap.

Frontend behavior

The roadmap page at /roadmap requires authentication — guests are redirected to the login page.

Items are grouped by status (In Progress → Planned → Completed) and sorted by vote score within each group. Clicking a sort button (Top / New / Old) re-fetches items without a full page reload.

  • Voting — clicking upvote or downvote updates the score and button color instantly (optimistic UI). Clicking the same vote again removes it. Items re-rank in real time when the score changes.
  • Suggestions — the "Suggest a feature" button opens a dialog. New suggestions are submitted with status Pending Approval and do not appear publicly until an admin approves them.

Suggest a feature dialog

Testing

php artisan test --testsuite=Modules --filter=Roadmap
npx playwright test --project="@Roadmap*"