# How-To Guides

**Task-oriented documentation** - Practical solutions to common problems.

---

## What Are How-To Guides?

How-to guides are **recipes** that show you how to solve specific problems or accomplish particular tasks.

**Characteristics:**
- ✅ Task-oriented (solve a problem)
- ✅ Practical (actionable steps)
- ✅ Assume basic knowledge
- ✅ Focus on results
- ✅ Can be followed in any order

**Not how-to guides:**
- ❌ Complete lessons for beginners (those are Tutorials)
- ❌ Technical specifications (those are Reference)
- ❌ Conceptual discussions (those are Explanation)

---

## Available How-To Guides

### [Configure Nix Flakes](nix-flakes.md)
**Problem:** Set up reproducible development environment  
**Difficulty:** Intermediate

**You'll learn:**
- Enable Nix flakes
- Enter development environment
- Work with subprojects
- Troubleshoot common issues

---

### [Test Sync Against Production Data](production-sync-testing.md)
**Problem:** Debug and improve sync using real-world data  
**Difficulty:** Intermediate

**You'll learn:**
- Run sync against production relays
- Sanitize logs for LLM analysis
- Identify common issues and patterns
- Iteratively improve sync behavior

---

## Planned How-To Guides

### Deploy ngit-grasp
**Status:** 🔜 Planned (waiting for main server)

**Problem:** Deploy to production  
**You'll learn:**
- Server requirements
- Reverse proxy setup (nginx/Caddy)
- SSL/TLS configuration
- Monitoring and logging

---

### Run Compliance Tests
**Status:** 🔜 Planned

**Problem:** Test GRASP compliance  
**You'll learn:**
- Set up test relay
- Run integration tests
- Interpret results
- Add custom tests

---

### Upgrade nostr-sdk
**Status:** 🔜 Planned

**Problem:** Handle breaking changes in nostr-sdk  
**You'll learn:**
- Check for breaking changes
- Update dependencies
- Fix compilation errors
- Test after upgrade

---

### Configure Authentication
**Status:** 🔜 Planned (feature not yet implemented)

**Problem:** Secure your relay  
**You'll learn:**
- Enable authentication
- Configure allowed users
- Set up rate limiting
- Monitor access

---

### Backup and Restore
**Status:** 🔜 Planned

**Problem:** Protect your data  
**You'll learn:**
- Backup Git repositories
- Backup Nostr events
- Restore from backup
- Automate backups

---

## How to Use How-To Guides

1. **Find your problem** - Browse or search for what you need
2. **Check prerequisites** - Make sure you have required knowledge
3. **Follow the steps** - Adapt to your specific situation
4. **Solve and move on** - No need to read everything

**Not sure if this is what you need?**
- New to ngit-grasp? → [Tutorials](../tutorials/)
- Looking for technical details? → [Reference](../reference/)
- Want to understand why? → [Explanation](../explanation/)

---

## Contributing How-To Guides

When writing a how-to guide:

**DO:**
- ✅ Start with the problem/goal
- ✅ List prerequisites clearly
- ✅ Provide concrete steps
- ✅ Include troubleshooting
- ✅ Show examples
- ✅ Link to related docs

**DON'T:**
- ❌ Teach basics (link to Tutorials)
- ❌ Explain every concept (link to Explanation)
- ❌ List all options (link to Reference)
- ❌ Make it a tutorial (stay focused on the task)

**Template:**
```markdown
# How-To: [Task/Problem]

**Problem:** [What you're trying to accomplish]  
**Difficulty:** [Beginner/Intermediate/Advanced]  
**Time:** [Estimated time]

## Prerequisites
- [Required knowledge/tools]

## Solution

### Step 1: [Action]
[Instructions]

### Step 2: [Action]
[Instructions]

## Troubleshooting

### [Common problem]
**Solution:** [How to fix]

## Related Documentation
- [Links to relevant docs]
```

See [Diátaxis: How-To Guides](https://diataxis.fr/how-to-guides/) for detailed guidance.

---

*Part of the [ngit-grasp documentation](../README.md) using the [Diátaxis](https://diataxis.fr/) framework.*
