content tags and taxonomy
Taxonomy is the intersection of pure data organization and human needs to allow us to actually find stuff. Some basic principles of a solid taxonomy structure are:
- Broad and shallow is better than narrow and deep.
- Labels should be clear and unique.
- Resources shouldn’t, ideally, fit in lots of parallel terms within a single grouping.
- We should use language and words that site visitors use.
Taxonomy has a job on a website. The job of taxonomy on egghead.io is to:
- help users find “more lessons just like this”
- help users find “you might also like”
- guide users who are unsure what path to follow
- establish egghead.io as go-to learning resource by helping users feel confident and prepared while they’re learning new skills
egghead Resource Taxonomy
Languages
Programming language the lesson is written for. This list would be expanded over time: Ruby, C#, etc.
Libraries
“Built-with”, these are extensions to core languages. A single project can use lots of libraries together.
rxjs, lodash, express, tweenlite
Frameworks
“Built-on”, these are a foundational shortcut to a final product. Generally not combined with each other.
React, Angular, Ember, Svelte
Tools (and Utilities)
Things that make development life easier, these tend to be useful across languages and frameworks.
S3, github, vim, webpack, npm, chrome, eslint
Platform
Development or runtime platform (is that still a real word, “runtime”????) featured in the lesson. This isn’t for “I recorded this screencast on a Mac”, but rather “Here’s how you handle swipe animations on Android.”
Windows, Mac, iOS, Android, Linux, Node, Firebase
Skill Set
Broad grouping to help people narrow down the kinds of lessons they’re looking for. This list should be added to very sparingly, otherwise it can get overcrowded and turn into a generic tag-cloud pretty quickly.
front-end, back-end, full-stack, a11y, database, jamstack
Skill Level
Who is this lesson aimed at? Try to articulate, for new users, what the difference between the levels is.
- Beginner
- Intermediate
- Advanced
Collections
These are very task-focused, which both maps well to how people think about their jobs, and also helps establish egghead as simpatico experts who understand what this kind of work really entails.
- All collections are curated. They’re not simply pre-filtered lists, but thoughtfully organized resources designed to help the user develop a specific skill set.
- Any given lesson may fit in multiple collections.
- collections can be designed and created by a single instructor (in which case they may have some sort of “premier” label), or compiled after-the-fact from a patchwork of different resources.
- Collections should be tagged with the same technology and skill taxonomies as individual resources. These shouldn’t automatically be inherited up: if a collection includes a single React lesson, the collection shouldn’t be tagged with React. But if the collection as a whole is a bunch of resources about integrating React into your workflow, it should be tagged with React.
Remember that Libraries, Frameworks, and specific Utilities have their own sections and don’t belong in here. There’s no need to create a collection like “Introduction to Webstorm” if just filtering down resources to Tools > Webstorm will generate the same list.