Skip to content

feat: add project tags for organizing services#3706

Open
cucumber-sp wants to merge 6 commits intoDokploy:canaryfrom
cucumber-sp:canary
Open

feat: add project tags for organizing services#3706
cucumber-sp wants to merge 6 commits intoDokploy:canaryfrom
cucumber-sp:canary

Conversation

@cucumber-sp
Copy link

@cucumber-sp cucumber-sp commented Feb 13, 2026

Summary

Implements Option B (Tags) from #3703 — project tagging system for organizing services at scale.

  • Tag management page in Settings (create, edit, delete tags with custom colors, scoped per organization)
  • Tag selector in project create/edit form with inline "Create Tag" action when no tags exist
  • Tag filter on the project list with count badge and localStorage persistence
  • Tag badges displayed on project cards for visual identification
  • Database schema: tag and project_tag tables with Drizzle migration, organization scoping, and cascade deletes

Screenshots

Снимок экрана 2026-02-13 в 7 27 06 PM Снимок экрана 2026-02-13 в 7 27 19 PM Снимок экрана 2026-02-13 в 7 27 29 PM Снимок экрана 2026-02-13 в 7 27 34 PM Снимок экрана 2026-02-13 в 7 27 39 PM

Test plan

  • Create tags with different colors in Settings > Tags
  • Edit and delete existing tags
  • Assign tags to projects via create/edit project form
  • Verify tag badges appear on project cards
  • Filter projects by tags (OR logic — shows projects matching any selected tag)
  • Verify tag filter persists across page reloads (localStorage)
  • Verify "Create Tag" button appears in empty tag dropdowns
  • Verify tags are scoped per organization
  • Verify cascade delete (deleting a tag removes it from all projects and clears filter)

Fixes #3703

Greptile Overview

Greptile Summary

Implements a comprehensive project tagging system with proper organization scoping, tag management UI, and filtering capabilities. The implementation includes database schema with cascade deletes, API endpoints with authorization checks, and React components for tag creation, assignment, and filtering with localStorage persistence.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The implementation demonstrates strong engineering practices with proper authorization checks, organization scoping, database constraints, and cascade deletes. The tag router includes comprehensive security validations, the frontend components handle edge cases well, and the localStorage-based filter persistence includes cleanup logic for deleted tags.
  • No files require special attention

Last reviewed commit: 0df6cc5

(2/5) Greptile learns from your feedback when you react with thumbs up/down!

Add tag management system that allows users to create, edit, and delete
tags scoped to their organization, and assign them to projects for
better organization and filtering.

- Add tag and project_tag database schemas with Drizzle migration
- Add tRPC router for tag CRUD and project-tag assignment operations
- Add tag management page in Settings with color picker
- Add tag selector to project create/edit form
- Add tag filter to project list with localStorage persistence
- Display tag badges on project cards
Show only the count inside the filter button instead of rendering
individual tag badges alongside it.
Remove variant="blank" (forced h-4) and flex-1 (full width stretch)
to match the tag badge appearance from the settings page.
Replace duplicated inline badge styling with a reusable TagBadge
component to ensure consistent appearance across all tag displays.
Remove deleted tag IDs from the selected filter state when the
available tags list changes.
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

18 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Project folders / tags for organizing services

1 participant

Comments