apps-ayokoding-web-developing-content
Comprehensive guide for creating content on ayokoding-web Hugo site using Hextra theme. Covers bilingual content strategy (default English), level-based weight ordering system, by-example tutorial annotation standards (1-2.25 comments per code line), absolute path linking requirements, and ayokoding-web specific frontmatter patterns. Essential for content creation tasks on ayokoding-web
Best use case
apps-ayokoding-web-developing-content is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Comprehensive guide for creating content on ayokoding-web Hugo site using Hextra theme. Covers bilingual content strategy (default English), level-based weight ordering system, by-example tutorial annotation standards (1-2.25 comments per code line), absolute path linking requirements, and ayokoding-web specific frontmatter patterns. Essential for content creation tasks on ayokoding-web
Teams using apps-ayokoding-web-developing-content should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/apps-ayokoding-web-developing-content/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How apps-ayokoding-web-developing-content Compares
| Feature / Agent | apps-ayokoding-web-developing-content | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Comprehensive guide for creating content on ayokoding-web Hugo site using Hextra theme. Covers bilingual content strategy (default English), level-based weight ordering system, by-example tutorial annotation standards (1-2.25 comments per code line), absolute path linking requirements, and ayokoding-web specific frontmatter patterns. Essential for content creation tasks on ayokoding-web
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Hugo ayokoding-web Development Skill
## Purpose
This Skill provides comprehensive knowledge for creating and managing content on the **ayokoding-web** Hugo site, which uses the Hextra theme and serves as a bilingual educational platform for Indonesian developers.
**When to use this Skill:**
- Creating educational content on ayokoding-web
- Setting up programming language tutorials
- Managing bilingual content (English/Indonesian)
- Configuring navigation and weight systems
- Writing by-example tutorials with proper annotation density
- Ensuring proper frontmatter configuration
- Following ayokoding-web specific conventions
## Core Concepts
### Site Overview
**ayokoding-web** (`apps/ayokoding-web/`):
- **Site**: ayokoding.com
- **Theme**: Hextra (modern documentation theme)
- **Purpose**: Bilingual educational platform
- **Languages**: Indonesian (id) and English (en)
- **Content Types**: Learning content, personal essays (celoteh/rants), video content
### Bilingual Strategy
**Default Language**: English (`en`)
**Critical Rule**: Content does NOT have to be mirrored between languages
- ✅ Content can exist in English only (`/en/`)
- ✅ Content can exist in Indonesian only (`/id/`)
- ✅ Content can exist in both (if explicitly created)
- ❌ Do NOT automatically create mirror content in other language
**Workflow**: Create English content first → Review → Decide if Indonesian version needed → Create Indonesian as separate task
### Content Structure
```
apps/ayokoding-web/content/
├── id/ # Indonesian content
│ ├── _index.md
│ ├── belajar/ # Learning (Indonesian)
│ ├── celoteh/ # Personal essays
│ └── konten-video/ # Video content
└── en/ # English content
├── _index.md
├── learn/ # Learning (English)
├── rants/ # Personal essays
└── video-content/ # Video content
```
### No H1 Headings in Content
**CRITICAL**: ayokoding-web content MUST NOT include ANY H1 headings (`# ...`) in markdown content.
**Rationale**: Hextra theme automatically renders frontmatter `title` as the page H1. Each page should have exactly ONE H1 (from frontmatter).
**Rule**: Content should start with introduction text or H2 headings (`## ...`).
## Weight System - Level-Based Ordering
### Powers of 10 Ranges
ayokoding-web uses a **level-based weight system** with powers of 10 ranges that reset for each parent folder:
- **Level 1**: 0-9 (language roots `/en/`, `/id/`)
- **Level 2**: 10-99 (children of language roots)
- **Level 3**: 100-999 (children of level 2 folders)
- **Level 4**: 1000-9999 (children of level 3 folders)
- **Level 5**: 10000-99999 (children of level 4 folders)
- **Level 6**: 100000-999999 (children of level 5 folders)
### Critical Rules
**Folder Representation**: `_index.md` represents the folder itself at level N → uses level N weight
**Content Inside**: Content INSIDE folder is one level deeper → uses level N+1 base weight
**Weights Reset Per Parent**: Each parent's children reset to base range independently
### Weight Calculation Example
```
Path: /en/ (1) → /learn/ (2) → /swe/ (3) → /prog-lang/ (4) → /golang/ (5) → /tutorials/ (6)
tutorials/ is level 6 folder:
- tutorials/_index.md: weight: 100002 (level 6 - represents folder)
- Content INSIDE tutorials/ uses level 7 (1000000, 1000001...)
by-concept/ is level 7 folder (child of tutorials/):
- by-concept/_index.md: weight: 1000000 (level 7 - first child)
- Content INSIDE by-concept/ uses level 8 (10000000, 10000001...)
by-example/ is level 7 folder (sibling of by-concept/):
- by-example/_index.md: weight: 1000001 (level 7 - second child)
- Content INSIDE by-example/ uses level 8 (10000000 - RESET, different parent)
```
## By-Example Tutorial Standards
### Annotation Density Requirement
**CRITICAL**: All code examples MUST meet annotation density standards
**Target**: 1.0-2.25 comment lines per code line **PER EXAMPLE**
- **Minimum**: 1.0 (examples below need enhancement)
- **Optimal**: 1-2.25 (target range)
- **Upper bound**: 2.5 (examples exceeding need reduction)
### Annotation Pattern
Use `// =>` or `# =>` notation to document:
```java
int x = 10; // => x is 10 (type: int)
String result = transform(x); // => Calls transform with 10
// => result is "10-transformed" (type: String)
System.out.println(result); // => Output: 10-transformed
```
**Simple lines get 1 annotation, complex lines get 2 annotations**
## Internal Link Requirements
**CRITICAL**: ALL internal links MUST use absolute paths with language prefix
**Format**: `/[language]/[section]/[path]/[filename]`
**Examples**:
```markdown
✅ Correct:
- [Python](/en/learn/swe/prog-lang/python)
- [Golang Overview](/en/learn/swe/prog-lang/golang/overview)
- [Ikhtisar](/id/belajar/swe/prog-lang/ikhtisar)
❌ Wrong:
- [Python](swe/prog-lang/python) # Relative path
- [Overview](./overview) # Relative path
- [Python](/learn/swe/prog-lang/python) # Missing language prefix
```
**Why**: Hugo resolves links based on current page context. Relative paths break when content rendered in different locations.
## Frontmatter Patterns
### Required Fields
```yaml
---
title: "Page Title"
date: 2025-12-07T10:00:00+07:00
draft: false
description: "Brief description"
weight: 100000 # Level-based weight
tags: ["tag1", "tag2"] # JSON array format
---
```
### Critical Rules
- **No categories field**: Causes raw text leak in Hextra theme
- **No author field**: Uses site-level config (except rants/celoteh directories)
- **Date format**: UTC+7 with ISO 8601 format
- **Weight field**: MANDATORY - uses level-based system
- **Tags**: JSON array format `["tag1", "tag2"]` (NOT dash-based YAML)
### Author Field Rules
**FORBIDDEN** in these directories (uses site-level author):
- `apps/ayokoding-web/content/en/learn/`
- `apps/ayokoding-web/content/id/belajar/`
- `apps/ayokoding-web/content/en/video-content/`
- `apps/ayokoding-web/content/id/konten-video/`
**ALLOWED** in these directories only:
- `apps/ayokoding-web/content/en/rants/` - Guest contributors possible
- `apps/ayokoding-web/content/id/celoteh/` - Guest contributors possible
## Overview/Ikhtisar Requirements
### Required Files
**CRITICAL**: EVERY content folder MUST have an intro content file
- **English folders** (`/en/learn/` and subfolders): MUST have `overview.md`
- **Indonesian folders** (`/id/belajar/` and subfolders): MUST have `ikhtisar.md`
### Overview/Ikhtisar Link Requirement
**CRITICAL**: ALL `_index.md` files (except language roots) MUST include overview/ikhtisar link as FIRST item in navigation list
**Examples**:
```markdown
<!-- File: /en/learn/_index.md -->
- [Overview](/en/learn/overview) # ← FIRST ITEM
- [Software Engineering](/en/learn/swe)
- [AI Engineering](/en/learn/ai)
<!-- File: /id/belajar/swe/_index.md -->
- [Ikhtisar](/id/belajar/swe/ikhtisar) # ← FIRST ITEM
- [Programming Languages](/id/belajar/swe/prog-lang)
```
### Title Format
- **`overview.md` files**: Title MUST be "Overview" (simple, generic)
- **`ikhtisar.md` files**: Title MUST be "Ikhtisar" (simple, generic)
Context provided by directory structure, not title.
## Navigation Depth (2 Layers)
**CRITICAL**: `_index.md` files MUST display navigation links 2 layers deep with complete coverage
**Layer Definition**:
- **Layer 1**: Parent section/category (current level)
- **Layer 2**: ALL immediate children (subdirectories and direct content files)
**Completeness Requirement**: Show ALL children (every subdirectory and direct content file)
**Terminal Directory Exemption**: Folders containing ONLY content files (no subdirectories) are exempt from 2-layer requirement
## Programming Language Structure
### Dual-Path Organization
**By Concept Path** (mandatory):
- Narrative-driven tutorials
- Deep explanations
- Progressive examples
- 0-95% coverage (beginner, intermediate, advanced)
**By Example Path** (optional):
- Code-first approach
- 75-90 heavily annotated examples
- Five-part structure per example
- 95% coverage efficiently
**Foundational Tutorials** (at root level, NOT nested):
- `initial-setup.md` - 0-5% coverage
- `quick-start.md` - 5-30% coverage
### Standard Tutorial Folder Arrangement
All topics with tutorials follow 5-item arrangement:
1. **overview** (weight: 100000)
2. **initial-setup** (weight: 100001)
3. **quick-start** (weight: 100002)
4. **by-example** (weight: 100003) - if exists
5. **by-concept** (weight: 100004) - optional
## Common Mistakes
### ❌ Mistake 1: Content using same level as folder
```yaml
# WRONG! Content should be one level deeper
# File: /en/learn/overview.md (inside level 2 folder)
weight: 10 # Should use level 3, not level 2
```
### ❌ Mistake 2: Not resetting weights for different parents
```yaml
# WRONG! Continuing numbers across different parents
/en/learn/swe/_index.md → weight: 102
/en/learn/ai/_index.md → weight: 103
/en/rants/2024/_index.md → weight: 104 # Should reset to 102
```
### ❌ Mistake 3: Using relative paths
```markdown
<!-- WRONG! -->
- [Python](swe/prog-lang/python)
<!-- RIGHT! -->
- [Python](/en/learn/swe/prog-lang/python)
```
### ❌ Mistake 4: Missing weight field
```yaml
# WRONG!
---
title: "Initial Setup"
# No weight field - Hugo sorts alphabetically
---
```
### ❌ Mistake 5: H1 in content
```markdown
---
title: "Software Engineering"
---
# Introduction # ← WRONG! No H1 in content
## What You'll Learn # ← CORRECT! Start with H2
```
## Best Practices
### Content Creation Workflow
1. **Determine language**: Default to English (`/en/`)
2. **Calculate weight**: Use level-based system (folder level + 1 for content)
3. **Create frontmatter**: Required fields with JSON array tags
4. **Write content**: Start with H2, use absolute paths
5. **Add overview file**: Create overview.md or ikhtisar.md for folder
6. **Update navigation**: Add to parent `_index.md` with overview link first
7. **Validate**: Check no H1 headings, absolute paths, proper weights
### By-Example Tutorial Creation
1. **Plan examples**: 75-90 examples achieving 95% coverage
2. **Write code first**: Self-contained, runnable examples
3. **Add annotations**: 1-2.25 comments per code line PER EXAMPLE
4. **Use `// =>` notation**: Document values, states, outputs
5. **Add diagrams**: Mermaid diagrams when appropriate (use accessible colors)
6. **Verify density**: Measure per-example annotation ratio
### Weight Calculation Strategy
1. **Identify path**: `/en/` (1) → `/learn/` (2) → `/swe/` (3) → ...
2. **Determine folder level**: Count from language root
3. **Apply rules**:
- Folder's `_index.md` uses folder's level weight
- Content inside folder uses next level deeper (base + position)
- Weights reset for different parents
## Deployment Workflow
Deploy ayokoding-web to production using Vercel integration.
### Production Branch
**Branch**: `prod-ayokoding-web`
**Purpose**: Deployment-only branch that Vercel monitors
**Build System**: Vercel (Hugo SSG with Hextra theme)
### Deployment Process
**Step 1: Validate Current State**
```bash
# Ensure on main branch
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$CURRENT_BRANCH" != "main" ]; then
echo "❌ Must be on main branch"
exit 1
fi
# Check for uncommitted changes
if [ -n "$(git status --porcelain)" ]; then
echo "❌ Uncommitted changes detected"
exit 1
fi
```
**Step 2: Force Push to Production**
```bash
# Deploy to production
git push origin main:prod-ayokoding-web --force
```
**Step 3: Vercel Auto-Build**
Vercel automatically:
- Detects push to prod-ayokoding-web branch
- Pulls latest content
- Builds Hugo site with Hextra theme
- Deploys to production URL
### Why Force Push
**Safe for deployment branches**:
- prod-ayokoding-web is deployment-only (no direct commits)
- Always want exact copy of main branch
- Trunk-based development: main is source of truth
### Deployment Safety
**Pre-deployment checks**:
- ✅ On main branch
- ✅ No uncommitted changes
- ✅ Latest from remote
**No local build**: Vercel handles all build operations
## References
**Primary Convention**: [Hugo Content Convention - ayokoding-web](../../../governance/conventions/hugo/ayokoding.md)
**Related Conventions**:
- [Programming Language Tutorial Structure](../../../governance/conventions/tutorial/programming-language-structure.md) - Dual-path organization
- [By Example Tutorial Convention](../../../governance/conventions/tutorial/by-example.md) - Annotation standards
- [Hugo Content Shared](../../../governance/conventions/hugo/shared.md) - Shared Hugo patterns
- [Content Quality Principles](../../../governance/conventions/content/quality.md) - Universal quality standards
**Related Skills**:
- `docs__creating-by-example-tutorials` - Detailed by-example tutorial guidance
- `docs__creating-accessible-diagrams` - Accessible diagram creation for tutorials
---
This Skill packages critical ayokoding-web development knowledge for progressive disclosure. For comprehensive details, consult the primary convention document.Related Skills
developing-claude-code-meta
MUST be loaded when setting up, installing, migrating, reviewing, auditing, or checking CLAUDE.md files in projects. Covers installing the standard CLAUDE.md into new projects, migrating existing CLAUDE.md content to READMEs (progressive disclosure), and auditing projects for conformance. Invoke PROACTIVELY when user mentions CLAUDE.md, project setup, agent configuration, or code meta files.
appstore-connect
App Store Connect 자동화 스킬. JWT API/Playwright 하이브리드 방식으로 앱 정보, 빌드, TestFlight 배포, 스크린샷 업로드, 앱 제출 지원. "ASC", "TestFlight", "앱스토어" 키워드로 활성화.
appsec-expert
Elite Application Security engineer specializing in secure SDLC, OWASP Top 10 2025, SAST/DAST/SCA integration, threat modeling (STRIDE), and vulnerability remediation. Expert in security testing, cryptography, authentication patterns, and DevSecOps automation. Use when securing applications, implementing security controls, or conducting security assessments.
appstore-submission
App Store submission prep for health + AI apps: privacy, review notes, rejection risks.
appstore-prep
App Store申請前のチェックリスト。プライバシーポリシー、権限説明、アイコン、スクリーンショットを確認。Use when: 申請、リリース、App Store、審査 を依頼された時。
appsec
Application security - OWASP, validation, secrets. Use when securing the app.
apps-script-list
Google Apps Script の一覧を取得する。「Apps Script 一覧」「スクリプト一覧」「GAS 一覧」「Apps Script を見たい」「GAS リスト」「Google スクリプト」などで起動。
apps-ose-platform-web-developing-content
Guide for creating content on ose-platform-web Hugo site using PaperMod theme. Covers English-only landing page structure, update posts with date-prefixed filenames, PaperMod frontmatter (cover images, table of contents, author field), simple flat organization, and ose-platform-web specific conventions. Essential for ose-platform-web content creation tasks
pcf-canvas-apps
Code components for canvas apps implementation, security, and configuration Triggers on: **/*.{ts,tsx,js,json,xml,pcfproj,csproj}
hig-components-content
Apple Human Interface Guidelines for content display components.
web-content
SEO and AI discovery (GEO) - schema, ChatGPT/Perplexity optimization
tripadvisor-content-api-automation
Automate TripAdvisor tasks via Rube MCP (Composio). Always search tools first for current schemas.