I would like to create an application that allows users to create their own categories. Then other users will be able to discover those categories if they happen to be looking for the same thing. How can I allow users to create their own categories without ending up with several variations of the same category.

Let's say for example: I am looking for...

Home interior decorator

...but they don't find a category with that name, so they create a new category for it. The problem is there was already a category for "Interior designers" which had 300 different results. How can I avoid this problem without hard coding every single category (there would be too many to list them all).

  • 2
    Are people looking for category or items? What is their primary task? Who and how does create items? Are you using categorization as dynamic navigation or like a bookmarks for people? How the newly created category is filled with items? Commented Jun 21, 2013 at 3:36
  • If you could cgive us some of the information Alexey is asking for that would be a help in answering the question. Commented Jun 21, 2013 at 6:10
  • Yes, people will be searching for categories. The newly created categories will be filled by companies that offer these services. Let's say I have an interior design company. I can search for interior design, and then create a profile for that category. Then customers who are searching for interior design companies will find my company profile by searching for interior design. I'm not sure exactly what your other questions are asking though...
    – dannyp32
    Commented Jun 21, 2013 at 9:04
  • The way Stack Exchange does this (using tags not categories technically) is to use Tag Synonyms
    – Zelda
    Commented Jun 21, 2013 at 13:23
  • 1
    Typeahead would help mitigate this, when users are naming the category. If you are using that technique. Presenting the number of people viewing this collection will also nudge users to pick the category. Rather than enforcing a restriction, you are tempting them to join a bigger group. Commented Jun 21, 2013 at 13:30

4 Answers 4


Using search tool to find categories is not the best way:

  • Search terms may contain errors in typo
  • People tend to use different words for the same meaning
  • Search makes invisible all the categories, so it is guessing-like

The idea is to let create new category only after failing to get right one. To get appropriate category you could provide:

  • filtering categories - you display all the categories and let the user to hide unnecessary (tags, tags cloud, live filtering while user types)
  • leading users through categories' hierarchy with choices from more general to more specific (provide navigation pathes between levels of hierarchy)

These are user tools. Also you could provide admin tool for moderating the categories in regular basis to support clear hierarchy. Admin tool should let you perform easily split, join, rename and some other operations.

In case user don't detect needed category he could create it. But in the moment of creation he will be somewhere around right place in categories' hierarchy. I.e. using the graph terms, you let create new nodes only at the leaf nodes. To motivate creation category in right place you could apply "punishment" like moving client's profile to the bottom of the list after moderating.

So your task is to create initial hierarchy and perform moderation.


Also I propose completely different interaction steps which are very simple for users.

  1. User fills profile without setting category – as choosing category can be difficult task we let user do simple thing at first. Giving profile data to the system creates some mental link between user and system. So system "holds" the user.
  2. System auto-suggest category or list of categories. It is possible algorithmically based on profile text analysis and matching with existing categories' keywords.
  3. If user finds appropriate category or categories, assign category to profile just by selecting it (them).
  4. If there is no appropriate category, user creates new category. But selecting much easier than typing. This stimulates user first to try to choose existing category.
  5. If user doesn't assign category to profile, it is placed in "Others" category. The point here that the profile is not destroyed, it stays in the system and could be assigned to some category next time.

My first question is, do you have a karma/points system? As I understand it you have a community edited database. Each user has their own content, which is browsable with community editable cetegories.

You could use tags instead of categories. You could filter on tags with a certain level of fuzziness so that near duplicate and related tags are included.

Categories Together with Tags

If you firmly needed some categorization you could implement them in addition to tags (Wanelo has "Men", "Women"). People could vote on categories as well.

Instead of moderation, you could have a meta section where accounts with a certain age and number of received likes could vote on tag or category merges. Maybe voting issues could come up in the activity screen.

These are just some thoughts, I haven't got much information on the app to go on.


I think the short answer is you need some sort of curation process to merge the created categories. That process could be:

  1. Community-driven: if your community is big enough, get them to do the moderation, finding similar tags and merging them.
  2. Autocratic: if your community is small, just spend some time occasionally merging tags.

Neither approach is trivial.

  • The best solutions to complex problems are simple, in this case: "you see a problem, you fix it." Start with 2 to fix existing issues, then move to 1 over time. Getting people to understand and take responsibility is certainly non-trivial, but treat it as an evolutionary process and the result will be more sustainable. Commented Jun 26, 2013 at 11:46

It is correct that if you give the main controls of creating the categories in the hands of the user, then it will create a lot of mess and will surely give you the problem and redundancy in maintaining the site.

You can always specify the list of categories on a separate page provided with the Search box on the top right corner. It will be much easier to maintain the site from software development perspective.

Also the user can search for a particular category and can use that properly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.