Skip to content

feat(workshop): project tags, sorting, and filtering #121

@Crauzer

Description

@Crauzer

Summary

Add tagging, sorting, and filtering capabilities to the workshop project list so modders can organize and find their projects efficiently as their collection grows.

Proposed Features

Tags

  • Allow users to assign tags to projects (e.g., "champion-skin", "map", "hud", "sound", "wip", "released")
  • Tag chips visible on project cards
  • Color-coded tags for visual distinction
  • Predefined common tags + custom user-defined tags
  • Tags stored in mod.config.json or a separate workshop metadata file

Sorting

  • Sort dropdown in the toolbar with options:
    • Last Modified (current default)
    • Name A-Z / Z-A
    • Date Created
    • Version
  • Persist sort preference in app settings

Filtering

  • Filter by tag (click tag chips in toolbar to toggle filter)
  • Filter by validation status (healthy / has warnings / has errors)
  • Combine filters (e.g., "champion-skin" + "wip")
  • Clear all filters button
  • Show active filter count in toolbar

Search Improvements

  • Extend search to cover description and author fields (currently only name/slug)
  • Fuzzy/typo-tolerant search
  • Search highlighting in results

Why This Matters

Once a modder has more than ~10 projects, the current flat list sorted only by last-modified becomes hard to navigate. Tags and filters are essential for modders who maintain large collections or work on multiple mod types simultaneously.

Implementation Notes

  • Tags could be stored as a tags: string[] field in mod.config.json (or workshop-level metadata)
  • Sort and filter state should persist across sessions (store in app settings or localStorage)
  • Client-side filtering is fine for the expected project count (<500)
  • Consider a compact filter bar that collapses when no filters are active

Related

Metadata

Metadata

Assignees

Labels

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions