Article Files:
content/docs/*.mdxCategory Icons? Learn how to configure icons for categories and content blocks in the Icons Guide.
What is Knowledge Base?
The Knowledge Base is a self-service help center where customers can find answers to common questions without contacting support. It includes:- Searchable articles - Full-text search functionality
- Category organization - Group articles by topic
- Rich content blocks - Text, images, code, videos, alerts
- SEO optimized - Each article has its own URL and meta tags
- Mobile responsive - Perfect on all devices
- Reduce support tickets by 60-80%
- 24/7 help for customers
- Improve SEO with quality content
- Build customer trust and confidence
Creating Article
Copy the Template
Navigate to Naming convention:
config/knowledgebase/articles/ and copy the template:- Use lowercase
- Use hyphens, not spaces
- Be descriptive
- Examples:
setup-minecraft-server.ts,how-to-upload-world.ts
Content Blocks Reference
Paragraph
Regular text with optional bold formatting:**bold**→ bold- Plain text (no italic support yet)
Headings
Create section headers:- Use H1 only once (main title)
- Use H2 for major sections
- Maintain hierarchy (don’t skip levels)
Code Blocks
Syntax-highlighted code with copy button:bash- Terminal commandsjavascript/js- JavaScripttypescript/ts- TypeScriptpython- Pythonjava- Javajson- JSONyaml- YAMLproperties- Config filescss- CSShtml- HTMLsql- SQL
Images
Add images with captions:- File location: Save in
public/images/kb/ - Naming: Use descriptive names:
minecraft-setup-step1.png - Format: PNG or JPG
- Size:
- Maximum width: 1200px
- Compress with TinyPNG
- Target: Under 200KB per image
- Alt text: Describe the image for accessibility
YouTube Videos
Embed YouTube videos:- From URL:
https://www.youtube.com/watch?v=dQw4w9WgXcQ - Video ID is:
dQw4w9WgXcQ
Alert Box
Highlight important information:Categories
Organize articles by category:| Category ID | Display Name | Icon | Use For |
|---|---|---|---|
getting-started | Getting Started | Rocket | Onboarding, first steps |
game-servers | Game Servers | Gamepad | Game-specific tutorials |
billing | Billing & Account | Credit Card | Payments, account management |
technical | Technical | Code | Advanced configurations |
security | Security | Shield | Security, DDoS, backups |
troubleshooting | Troubleshooting | Wrench | Fixing issues |
config/knowledgebase/index.ts:
Page Configuration
Customize the knowledge base landing page appearance and content.Config File:
config/pages/knowledgebase.tsHero Section
Configure the main header area with search:| Field | Type | Description | Example |
|---|---|---|---|
title | string | Main title text | ”How Can We” |
highlight | string | Highlighted text (brand colored) | “Help You” |
subtitle | string | Description below title | ”Search our knowledge base…” |
backgroundImage | string | Hero background image path | ”/assets/kb-hero-bg.jpg” |
searchPlaceholder | string | Search input placeholder | ”Search for articles…” |
Popular Articles
Showcase top articles on the main page:| Field | Type | Description | Default |
|---|---|---|---|
enabled | boolean | Show/hide popular section | true |
title | string | Section heading | ”Popular Articles” |
subtitle | string | Section description | ”Most viewed…” |
count | number | Number of articles to show | 3 |
Popular articles are taken from the first N articles in your
articles array. Manually reorder articles in config/knowledgebase/index.ts to control which appear.Categories Section
Control category filter buttons:| Field | Type | Description |
|---|---|---|
enabled | boolean | Show/hide category filters |
Articles Section
Configure article listings and empty states:| Field | Type | Description |
|---|---|---|
titleAllArticles | string | Title when viewing all articles |
titleSearchResults | string | Title when searching |
showingResultsText | string | Search results count text |
noArticlesTitle | string | Empty state heading |
noArticlesDescription | string | Empty state for search |
noArticlesCategoryDescription | string | Empty state for categories |
viewAllButton | string | Button text to clear filters |
Help CTA Section
Bottom call-to-action for support:| Field | Type | Description |
|---|---|---|
enabled | boolean | Show/hide help CTA |
title | string | CTA heading |
description | string | CTA description |
buttons | array | Array of button objects |
| Field | Type | Description |
|---|---|---|
text | string | Button label |
href | string | Link URL |
primary | boolean | true = brand colored, false = secondary |
Primary buttons use your brand color. Non-primary buttons have a secondary gray style. External links (Discord, etc.) automatically open in new tabs.
Complete Configuration Example
Styling & Theming
The knowledge base automatically uses your brand color fromconfig/branding.ts.
Automatic Brand Color Integration
All interactive elements automatically adapt to your brand color:- Search bar focus state
- Category filter buttons (when selected)
- Popular article cards borders and backgrounds
- Call-to-action buttons (primary)
- Article category badges
- Link hover states
No additional styling configuration needed! Change your brand color once and the entire knowledge base updates automatically.
Content Block Styling
All content blocks have consistent spacing:| Block Type | Vertical Spacing | Padding |
|---|---|---|
| Paragraphs | 24px bottom margin | None |
| Headings | 32px top, 16px bottom | None |
| Lists | 24px bottom margin | None |
| Code Blocks | 24px top & bottom | 16px all sides |
| Images | 24px top & bottom | None |
| YouTube | 24px top & bottom | None |
| Alerts | 24px top & bottom | 20px all sides |
Responsive Design
The knowledge base is fully responsive: Mobile (< 640px):- Single column article grid
- Horizontal scrolling categories
- Reduced text sizes
- Touch-optimized buttons
- 2-column article grid
- All features visible
- Medium text sizes
- 3-column article grid
- Full feature set
- Large text sizes
SEO Optimization
Per-Article SEO
Each article automatically generates:Best SEO Practices
-
Title Optimization:
- Keep under 60 characters
- Include target keyword
- Be descriptive and unique
- Example: “How to Setup Minecraft Server in 5 Minutes”
-
Description Optimization:
- 120-160 characters
- Include main keyword
- Compelling summary
- Example: “Step-by-step guide to setting up your Minecraft server with automatic backups and DDoS protection in under 5 minutes.”
-
Tag Strategy:
- 3-7 tags per article
- Mix of specific and general
- Use lowercase
- Example:
["minecraft", "setup", "beginner", "tutorial", "java-edition"]
-
Content Structure:
- Use proper heading hierarchy (H1 → H2 → H3)
- Include alt text for all images
- Add captions to images and videos
- Break up long paragraphs
-
Internal Linking:
- Link to related articles in content
- Use descriptive anchor text
- Example: “Learn about server backups”
Search Functionality
How Search Works
The built-in search indexes:- Article titles (highest weight)
- Article descriptions (medium weight)
- Article tags (medium weight)
- Category names (low weight)
- Real-time results as you type
- Case-insensitive matching
- Partial word matching
- Can combine with category filters
Search Algorithm
Best Practices
Article Writing
Use Clear, Action-Oriented Titles
Use Clear, Action-Oriented Titles
Good:
- “How to Setup a Minecraft Server”
- “Fixing Connection Timeout Errors”
- “Understanding Server Resource Usage”
- “Minecraft”
- “Problems”
- “Resources”
Start with Context
Start with Context
Begin every article with:
- What the article covers
- Who it’s for (beginner/advanced)
- Estimated time to complete
- Any prerequisites
Use Visual Aids
Use Visual Aids
- Add screenshots for complex steps
- Use alert boxes to highlight warnings
- Include code blocks with examples
- Embed tutorial videos when available
Test Your Instructions
Test Your Instructions
Before publishing:
- Follow your own instructions
- Have a beginner test them
- Note any confusing steps
- Add clarifications
- Assuming knowledge (explain acronyms)
- Skipping “obvious” steps
- Not mentioning where to find things
- Missing error handling instructions
Keep Content Updated
Keep Content Updated
- Add “Last updated” in article metadata
- Review articles quarterly
- Update screenshots when UI changes
- Archive outdated articles (don’t delete)
Content Organization
Article Structure Template:Performance Tips
-
Optimize Images:
- Use WebP format when possible
- Compress before uploading (target under 200KB)
- Use appropriate dimensions (max 1200px width)
- Lazy loading is automatic
-
Limit Article Count:
- Start with 10-15 quality articles
- Add more based on actual customer questions
- Don’t create articles “just because”
-
Code Block Length:
- Keep under 50 lines
- For longer code, link to external repo
- Use comments to explain complex parts
-
Video Embedding:
- YouTube embeds are lightweight
- Prefer embedding over hosting
- Keep videos under 10 minutes
- Add timestamps in caption
Troubleshooting
Article Not Appearing
Article Not Appearing
Check:
- Article is exported correctly:
export const article = {...} - Article is imported in
index.ts - Article is added to
articlesarray - File has
.tsextension - No TypeScript errors (
npm run build)
Images Not Loading
Images Not Loading
Solutions:
- Verify image path starts with
/ - Check file exists in
public/folder - Image names are case-sensitive
- Try clearing Next.js cache:
Search Not Finding Article
Search Not Finding Article
Reasons:
- Article title/description too different from search term
- Missing relevant tags
- Category filter active
Code Block Not Highlighting
Code Block Not Highlighting
Check:
- Language is supported (see Content Blocks section)
- Language name is lowercase
- Code is properly escaped in TypeScript string
Styling Looks Wrong
Styling Looks Wrong
Common causes:
- Brand color not set in
config/branding.ts - CSS cache issue - hard refresh (Ctrl+Shift+R)
- Custom CSS conflicting
Advanced Features
Custom List Block with Links
While lists support bold text, you can also include article links:Multi-Language Support
Option 1: Separate Article Files- Integrate with i18n library
- Use Crowdin/Lokalise for translations
- Requires custom code modifications
Analytics Integration
Track knowledge base usage:Custom Content Blocks
Want a custom block type? Extend the system:Quick Reference
File Locations
Common Commands
TypeScript Types
Need Help?
Check out the FAQ or join our Discord community for support!

