A Venn view that shows how tasks overlap across labels

Title: Feature idea: a Venn view that shows how tasks overlap across labels


Hi all! I use labels as “branches” of my work, and many tasks belong to more than one. List, Table and Kanban show which labels a task has, but not how the labels overlap. So I prototyped a fifth project view kind, Venn, and wanted to check whether this is something you’d consider for Vikunja before I open an issue or PR.

What it does

  • One circle per label, sized by how many tasks carry it. Circles overlap only where tasks actually share those labels; labels that share nothing sit apart.
  • Each overlap shows a count. Click it to list exactly those tasks below the diagram.
  • A label list on the left (with counts) shows/hides circles. The layout never moves; only the circles and counts change.
  • The columns of the project’s Kanban board appear as toggles on top, e.g. hide “Published” to see what’s still in progress.
  • Tasks without any of the shown labels get their own count, so nothing is hidden.


)

Example: a YouTube channel project with Tutorial / Shorts / Sponsored / Community labels and Ideas → Filming → Editing → Published columns.

How it’s built (prototype)

  • Backend: one new view_kind value (venn). No migration, no new endpoints; it reads the same task list as the other views.
  • Frontend: a new view component plus a small, unit-tested layout helper (no new dependencies). Works up to 12 labels; overlaps that can’t be drawn with circles are listed under the diagram instead of being dropped.
  • Show/hide preferences are kept per viewer in the browser, like the Table view’s columns.
  • It’s opt-in: existing projects don’t get the view until someone adds it under Views.

Questions for the maintainers

  1. Would a view like this be welcome in core?
  2. Should it land in one PR, or the basic view first and the label sidebar / column toggles as a follow-up?
  3. Should the show/hide state stay in the browser, or be stored with the view on the server?

Disclosure: I built the prototype with help from an AI coding assistant (Claude). I’ve reviewed and tested it myself, and I’m happy to rework anything.

Hey :waving_hand:

This is pretty wild!

I see where it can be useful in your workflow, but it feels like it’s really bespoke to your way of working. Therefore, I wouldn’t include it in the core at this time, maybe if enough people from the community want it.

Keep it up though, exploring things like this is pretty good!