You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
@@ -161,6 +162,166 @@ This repository has three basic types of labels:
161
162
-`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.
162
163
-`Context` - Additional info that helps people parse issues. e.g. "good first issue", "for maintainer only". Multiple may be active on one issue.
163
164
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
+
164
325
## Add yourself to the Contributor's list
165
326
166
327
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.
0 commit comments