Developer Relations
Open Source Community Management
Community Health Scorecard
| Metrik | Saglikli | Dikkat | Kritik | |--------|---------|--------|--------| | Time to First Response | < 24 saat | 1-3 gun | > 3 gun | | Issue Close Rate (monthly) | > %70 | %40-70 | < %40 | | PR Merge Time | < 3 gun | 3-7 gun | > 7 gun | | External Contributors | > %30 | %10-30 | < %10 | | Bus Factor | > 3 | 2-3 | 1 | | Release Cadence | Regular (2-4 hafta) | Duzensiz | > 3 ay | | Documentation Coverage | > %80 | %50-80 | < %50 |
Community Roles & Responsibilities
Maintainer
|-- Core Contributor (write access)
| |-- Regular Contributor (frequent PRs)
| | |-- Occasional Contributor (1-5 PRs)
| | |-- First-time Contributor
|-- Reviewer (code review)
|-- Triage (issue labeling)
|-- Community Moderator (Discord/Slack)
|-- Documentation Contributor
Issue Triage Labels
# Issue labels taxonomy
type:
- bug # Something isn't working
- feature # New feature request
- enhancement # Improvement to existing feature
- documentation # Documentation update
- question # Community question
priority:
- critical # Production breaking
- high # Important, next release
- medium # Normal priority
- low # Nice to have
status:
- needs-triage # Awaiting maintainer review
- confirmed # Bug confirmed, feature accepted
- needs-info # Waiting for reporter input
- in-progress # Being worked on
- blocked # Dependency blocker
experience:
- good-first-issue # Newcomer friendly
- help-wanted # Community contribution welcome
- mentor-available # Maintainer will guide
Automated Community Workflows
# .github/workflows/community.yml
name: Community Management
on:
issues:
types: [opened]
pull_request:
types: [opened]
jobs:
welcome-new-contributor:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
issue-message: |
Welcome to the project! Thanks for opening your first issue.
Please make sure you've filled out the issue template completely.
A maintainer will review this shortly.
pr-message: |
Thanks for your first PR! A maintainer will review it soon.
Please make sure all checks pass and you've signed the CLA.
auto-label:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
stale-check:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
stale-issue-message: "This issue has been inactive for 30 days. It will be closed in 7 days if no further activity occurs."
days-before-stale: 30
days-before-close: 7
Developer Documentation Best Practices
Documentation Architecture
docs/
getting-started/
installation.md # 5 dakikada calistir
quickstart.md # Ilk basari deneyimi
configuration.md # Temel ayarlar
guides/
authentication.md # How-to guide
data-migration.md # Step-by-step
deployment.md # Production setup
reference/
api/ # Auto-generated API docs
cli/ # CLI commands
configuration/ # All config options
concepts/
architecture.md # Mimari aciklama
data-model.md # Data yapisi
examples/
basic/ # Basit ornekler
advanced/ # Ileri ornekler
integrations/ # 3rd party entegrasyonlar
contributing/
CONTRIBUTING.md # Katki rehberi
CODE_OF_CONDUCT.md # Davranis kurallari
DEVELOPMENT.md # Dev environment setup
changelog/
CHANGELOG.md # Release notes
Documentation Quality Checklist
| Kriter | Aciklama | |--------|----------| | 5-Minute Success | Yeni kullanici 5 dk'da calisan bir sey gorebilmeli | | Copy-Paste Ready | Kod ornekleri direkt calisabilmeli | | Up-to-Date | Kod degisince doc da guncellenecek (CI check) | | Searchable | Arama motoru ile bulunabilir | | Progressive Disclosure | Basit -> Orta -> Ileri siralama | | Error Messages | Hata mesajlari doc'a linklemeli | | Platform Coverage | macOS, Linux, Windows ornekleri | | Language Coverage | En az 3 dilde SDK ornegi |
API Documentation Template
## Create User
Creates a new user account.
### Request
`POST /api/v1/users`
#### Headers
| Header | Required | Description |
|--------|----------|-------------|
| Authorization | Yes | Bearer token |
| Content-Type | Yes | application/json |
#### Body
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| email | string | Yes | Valid email address |
| name | string | Yes | Full name (2-100 chars) |
| role | string | No | "admin" or "member" (default: "member") |
#### Example
\```bash
curl -X POST https://api.example.com/v1/users \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"name": "Jane Smith",
"role": "member"
}'
\```
### Response
#### 201 Created
\```json
{
"id": "usr_abc123",
"email": "user@example.com",
"name": "Jane Smith",
"role": "member",
"created_at": "2026-01-15T10:30:00Z"
}
\```
#### 400 Bad Request
\```json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid email format"
}
}
\```
#### 409 Conflict
\```json
{
"error": {
"code": "DUPLICATE_EMAIL",
"message": "A user with this email already exists"
}
}
\```
Tutorial ve Workshop Olusturma
Tutorial Structure
1. WHAT: Ne yapacagiz? (1 paragraf, 30 saniye okuma)
2. WHY: Neden onemli? (1 paragraf)
3. PREREQUISITES: Nelere ihtiyac var? (liste)
4. STEPS: Adim adim (her adim bitmis, calisan bir sey)
- Step 1: Setup (copy-paste)
- Step 2: Basic usage (calisan output goster)
- Step 3: Build something (gercek problem coz)
- Step 4: Advanced (opsiyonel)
5. NEXT STEPS: Sonra ne yapabilirim? (linkler)
6. TROUBLESHOOTING: Yaygın sorunlar ve cozumleri
Workshop Format (90 Dakika)
00:00 - 00:10 Giris ve motivasyon (demo goster)
00:10 - 00:20 Setup kontrolu (herkes calisiyor mu?)
00:20 - 00:40 Guided exercise 1 (birlikte yapariz)
00:40 - 00:50 Solo exercise 1 (kendiniz yapin)
00:50 - 01:00 Ara + sorular
01:00 - 01:20 Guided exercise 2 (ileri seviye)
01:20 - 01:30 Solo exercise 2
01:30 - 01:40 Showcase (katilimcilar gosterir)
01:40 - 01:50 Q&A + next steps
Conference Talk Preparation
Talk Structure Template
Title: [Catchy, specific, searchable]
Duration: [15/25/40 min]
Audience Level: [Beginner/Intermediate/Advanced]
OUTLINE:
1. Hook (2 min)
- Surprising stat or demo
- "How many of you have...?"
2. Problem (3 min)
- Pain point everyone recognizes
- Why existing solutions fall short
3. Solution (Main Content) (60% of time)
- Core concept explanation
- Live demo or code walkthrough
- Before/After comparison
4. Deep Dive (20% of time)
- Technical details
- Architecture decisions
- Performance numbers
5. Takeaways (3 min)
- 3 actionable items
- Resources & links
- QR code to slides/repo
Speaker Checklist
| Asama | Kontrol | |-------|---------| | Proposal | CFP'ye uygun mu? Abstract compelling mi? | | Slides | Max 1 nokta per slide, buyuk font (2