Skip to content

Commit 8fa7323

Browse files
committed
feat: enhance content tagging system with new guidelines and quick reference
- Added a new section in CONTRIBUTING.md for a structured Content Tagging System to improve resource discoverability. - Introduced TAGGING_GUIDE.md for quick reference on available tags, best practices, and examples. - Updated layout.tsx to suppress hydration warnings for improved rendering consistency.
1 parent 0341059 commit 8fa7323

File tree

2 files changed

+254
-0
lines changed

2 files changed

+254
-0
lines changed

CONTRIBUTING.md

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ We really want to make space for all developers to feel comfortable and supporte
4040
- [Tips and Gotchas](https://github.com/Virtual-Coffee/virtualcoffee.io/blob/main/CONTRIBUTING.md#tips-and-gotchas)
4141
- [Reporting A Bug](https://github.com/Virtual-Coffee/virtualcoffee.io/blob/main/CONTRIBUTING.md#reporting-a-bug)
4242
- [Labelling conventions](https://github.com/Virtual-Coffee/virtualcoffee.io/blob/main/CONTRIBUTING.md#labelling-conventions)
43+
- [Content Tagging System](https://github.com/Virtual-Coffee/virtualcoffee.io/blob/main/CONTRIBUTING.md#content-tagging-system)
4344

4445
## What Type of Contributions We're Looking For
4546

@@ -161,6 +162,166 @@ This repository has three basic types of labels:
161162
- `Status` - What part of the process is this issue in. e.g. Active, Needs Review, Resolved, etc. (will be filled in by maintainers and some contributors). Only one active per issue.
162163
- `Context` - Additional info that helps people parse issues. e.g. "good first issue", "for maintainer only". Multiple may be active on one issue.
163164

165+
## Content Tagging System
166+
167+
Our resource filtering system uses a structured tagging approach to help users find relevant content quickly. All content tags are organized into logical categories to improve discoverability and user experience.
168+
169+
### Tag Categories
170+
171+
#### 🎯 Skill Level
172+
173+
Tags that indicate the experience level required for the resource:
174+
175+
- **`beginner`** - Content suitable for those new to programming or the specific topic
176+
- **`intermediate`** - Content for developers with some experience who want to deepen their knowledge
177+
- **`advanced`** - Content for experienced developers looking to master complex topics
178+
179+
#### 🛠️ Technologies
180+
181+
Tags for programming languages, frameworks, and tools:
182+
183+
- **`javascript`** - JavaScript language, ES6+, Node.js, and related concepts
184+
- **`typescript`** - TypeScript language, type systems, and TypeScript-specific patterns
185+
- **`react`** - React library, hooks, components, and React ecosystem
186+
- **`node`** - Node.js runtime, server-side JavaScript, and backend development
187+
- **`css`** - CSS styling, layouts, animations, and modern CSS features
188+
- **`html`** - HTML markup, semantic elements, and web standards
189+
- **`git`** - Git version control, branching strategies, and collaboration workflows
190+
191+
#### 📚 Topics
192+
193+
Subject areas and domains:
194+
195+
- **`career`** - Career development, job searching, professional growth, and industry insights
196+
- **`open-source`** - Contributing to open source, maintaining projects, and community involvement
197+
- **`testing`** - Testing strategies, frameworks, TDD, and quality assurance
198+
- **`deployment`** - Deployment strategies, CI/CD, hosting, and DevOps practices
199+
- **`interviewing`** - Technical interviews, coding challenges, and interview preparation
200+
201+
#### 📖 Format
202+
203+
Type of content or learning material:
204+
205+
- **`tutorial`** - Step-by-step instructional content with hands-on examples
206+
- **`reference`** - Quick lookup guides, documentation, and technical specifications
207+
- **`guide`** - Comprehensive walkthroughs and best practices
208+
- **`tips`** - Short, actionable advice and quick wins
209+
210+
### Tagging Guidelines
211+
212+
#### When to Add New Tags
213+
214+
**Add a new tag when:**
215+
216+
- A new technology, framework, or tool becomes widely adopted in the community
217+
- A new topic area emerges that doesn't fit existing categories
218+
- Multiple resources would benefit from a more specific tag than existing ones
219+
- The tag would help users find content more effectively
220+
221+
**Don't add a new tag when:**
222+
223+
- Only one or two resources would use the tag
224+
- An existing tag already covers the concept adequately
225+
- The tag is too specific or niche for general use
226+
- The tag duplicates functionality of existing tags
227+
228+
#### How to Add New Tags
229+
230+
1. **Propose the tag** - Create an issue or discussion explaining:
231+
- What the new tag represents
232+
- Which category it belongs to
233+
- Why existing tags don't suffice
234+
- Examples of content that would use this tag
235+
236+
2. **Get community feedback** - Allow time for maintainers and community members to discuss the proposal
237+
238+
3. **Update the system** - Once approved, the tag will be added to the `TAG_CATEGORIES` configuration in `src/util/tagCategories.ts`
239+
240+
#### Tagging Best Practices
241+
242+
**Do:**
243+
244+
- Use existing tags when they accurately describe your content
245+
- Apply multiple relevant tags from different categories
246+
- Be consistent with tag naming (lowercase, hyphenated for multi-word tags)
247+
- Consider your audience's skill level when choosing skill-level tags
248+
- Think about how users might search for your content
249+
250+
**Don't:**
251+
252+
- Create overly specific tags that only apply to one piece of content
253+
- Use tags that are too broad or vague
254+
- Apply tags that don't accurately represent the content
255+
- Use inconsistent naming conventions
256+
- Over-tag content (3-5 relevant tags are usually sufficient)
257+
258+
### Examples of Proper Tagging
259+
260+
#### Example 1: React Tutorial
261+
262+
```yaml
263+
contentTags:
264+
- beginner
265+
- react
266+
- javascript
267+
- tutorial
268+
```
269+
270+
**Rationale:** This is a beginner-friendly tutorial about React (JavaScript framework), so it gets skill level, technology, and format tags.
271+
272+
#### Example 2: Career Guide
273+
274+
```yaml
275+
contentTags:
276+
- intermediate
277+
- career
278+
- guide
279+
```
280+
281+
**Rationale:** This is an intermediate-level career development guide, covering the topic and format categories.
282+
283+
#### Example 3: Advanced Testing Resource
284+
285+
```yaml
286+
contentTags:
287+
- advanced
288+
- testing
289+
- javascript
290+
- reference
291+
```
292+
293+
**Rationale:** This is an advanced reference for JavaScript testing, covering skill level, topic, technology, and format.
294+
295+
#### Example 4: Open Source Contribution Tips
296+
297+
```yaml
298+
contentTags:
299+
- intermediate
300+
- open-source
301+
- git
302+
- tips
303+
```
304+
305+
**Rationale:** This provides intermediate-level tips for contributing to open source projects using Git, covering multiple relevant categories.
306+
307+
### Tag Maintenance
308+
309+
- **Regular Review**: Tags are reviewed periodically to ensure they remain relevant and useful
310+
- **Community Input**: Suggestions for new tags or modifications are welcome through issues or discussions
311+
- **Documentation Updates**: This documentation is updated when new tags are added or existing ones are modified
312+
- **Migration**: When tags are deprecated or renamed, existing content is updated accordingly
313+
314+
### Questions About Tagging?
315+
316+
If you're unsure about which tags to use for your content, or if you think a new tag might be needed, please:
317+
318+
1. Check existing similar content to see what tags are commonly used
319+
2. Ask in the [discussions board](https://github.com/Virtual-Coffee/virtualcoffee.io/discussions)
320+
3. Create an issue with your tagging question
321+
4. Reach out to maintainers for guidance
322+
323+
Remember: Good tagging helps the entire community find and benefit from your contributions!
324+
164325
## Add yourself to the Contributor's list
165326
166327
We want to thank you so much for contributing to our project. Check out all [contributor's documentation](https://allcontributors.org/docs/en/bot/usage) to learn how to add yourself to our Contributor's list.

TAGGING_GUIDE.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Content Tagging Quick Reference
2+
3+
## 🏷️ Available Tags by Category
4+
5+
### 🎯 Skill Level
6+
7+
- `beginner` - New to programming or topic
8+
- `intermediate` - Some experience, deepening knowledge
9+
- `advanced` - Experienced, mastering complex topics
10+
11+
### 🛠️ Technologies
12+
13+
- `javascript` - JavaScript, ES6+, Node.js
14+
- `typescript` - TypeScript language and patterns
15+
- `react` - React library and ecosystem
16+
- `node` - Node.js runtime and backend
17+
- `css` - CSS styling and layouts
18+
- `html` - HTML markup and standards
19+
- `git` - Version control and workflows
20+
21+
### 📚 Topics
22+
23+
- `career` - Career development and growth
24+
- `open-source` - Contributing and maintaining projects
25+
- `testing` - Testing strategies and frameworks
26+
- `deployment` - CI/CD, hosting, DevOps
27+
- `interviewing` - Technical interviews and prep
28+
29+
### 📖 Format
30+
31+
- `tutorial` - Step-by-step instructions
32+
- `reference` - Quick lookup guides
33+
- `guide` - Comprehensive walkthroughs
34+
- `tips` - Short, actionable advice
35+
36+
## ✅ Tagging Best Practices
37+
38+
### Do:
39+
40+
- Use 3-5 relevant tags maximum
41+
- Apply tags from different categories
42+
- Use lowercase, hyphenated naming
43+
- Consider your audience's skill level
44+
- Think about how users will search
45+
46+
### Don't:
47+
48+
- Create overly specific tags
49+
- Use tags that don't match content
50+
- Over-tag (more than 5 tags)
51+
- Use inconsistent naming
52+
- Apply vague or broad tags
53+
54+
## 📝 Example Tagging
55+
56+
```yaml
57+
# React Tutorial for Beginners
58+
contentTags:
59+
- beginner
60+
- react
61+
- javascript
62+
- tutorial
63+
64+
# Career Development Guide
65+
contentTags:
66+
- intermediate
67+
- career
68+
- guide
69+
70+
# Advanced Testing Reference
71+
contentTags:
72+
- advanced
73+
- testing
74+
- javascript
75+
- reference
76+
```
77+
78+
## 🔄 Adding New Tags
79+
80+
1. **Propose** - Create issue/discussion explaining the need
81+
2. **Discuss** - Get community feedback
82+
3. **Implement** - Update `src/util/tagCategories.ts` once approved
83+
84+
## ❓ Need Help?
85+
86+
- Check existing similar content for tag patterns
87+
- Ask in [discussions](https://github.com/Virtual-Coffee/virtualcoffee.io/discussions)
88+
- Create an issue with your question
89+
- Reach out to maintainers
90+
91+
---
92+
93+
_For detailed guidelines, see [CONTRIBUTING.md#content-tagging-system](CONTRIBUTING.md#content-tagging-system)_

0 commit comments

Comments
 (0)