How to Design Software — Tags and Groups

Learn how to design a tagging system and provide the ability to order, filter, group, or organize records based on some arbitrary properties.

A feature you often need in web applications is the ability to order, filter, group, or organize records based on some arbitrary properties. In many situations, it’s simply called a “tag”, but the purpose and behavior is the same whether it’s called categories, metadata, groups, or descriptors.