Your new user downloads your software, clicks through the installer, and launches the app. A configuration screen appears asking for an API key. Where do they get that? They check your website. Nothing obvious. They Google it. They find a forum post from 2 years ago with outdated instructions. 30 minutes later, they give up and request a refund.
This isn't a product problem. It's a documentation problem. The installation worked fine. The configuration screen was clear. But your setup guide didn't tell users where to find their API key, so they got stuck.
Installation and setup guides are where users form their first impression of your product. Get them working quickly and they'll love you. Leave them confused and they'll churn before experiencing any value. This guide breaks down how to write installation documentation that gets users from zero to working product without support tickets—including effective use of visual aids, version management strategies, and accessibility considerations.
Why Installation Guides Need to Be Excellent
Installation is the highest-friction point in your user journey. Users are motivated to get started, but they're also most likely to abandon if they encounter problems.
Good installation guides reduce this friction by:
- Setting clear expectations: Time required, difficulty level, what users need before starting
- Preventing confusion: Step-by-step instructions with expected outcomes
- Addressing problems proactively: Troubleshooting common issues before users hit them
- Building confidence: Verification steps that confirm everything worked
Bad installation guides create support tickets, negative reviews, and refund requests. Users don't distinguish between "the product doesn't work" and "I couldn't figure out how to install it." Both result in abandonment.
Start with Prerequisites and Requirements
Don't let users get halfway through installation before discovering they need something they don't have. List all prerequisites up front.
System Requirements
Be specific about minimum and recommended specs:
Bad:
Requires recent operating system
Good:
Minimum:
• Operating System: Windows 10, macOS 10.15, or Ubuntu 20.04+
• RAM: 4GB
• Disk Space: 500MB
• Internet connection
Recommended:
• RAM: 8GB+
• SSD storage
Users can make informed decisions about whether to proceed based on their system.
Prerequisites
What needs to be installed first?
You'll need: • Node.js 16+ - Download from nodejs.org • npm 7+ (included with Node.js) • A River account - Sign up for free at river.ai
Include links to installation guides for prerequisites. Don't assume users know where to get them.
What to Have Ready
Information users should prepare before starting:
Have these ready: • Your API key (found in Settings > API) • Database connection string • Admin credentials
This prevents users from getting stuck mid-installation because they need to go find something.
Structure Installation Steps Clearly
Installation steps should be numbered, sequential, and specific. One action per step.
The Step Format That Works
Each step should have:
- Clear action: What to do
- Instructions: How to do it
- Expected result: What should happen
- Visual aid: Screenshot if helpful
Example - Software Installation:
Step 1: Download the installer
Download the latest version for your operating system.
Windows:
1. Go to river.ai/download
2. Click "Download for Windows"
3. Save the .exe file to your Downloads folder
Expected result: You should see RiverSetup.exe in your Downloads folder.
Step 2: Run the installer
1. Double-click RiverSetup.exe
2. Click "Yes" when prompted by User Account Control
3. Follow the installation wizard
4. Click "Install" (default location is recommended)
5. Wait for installation to complete (~2 minutes)
6. Click "Finish"
Expected result: River should open and show the welcome screen.
Be Specific About Actions
Vague instructions create confusion:
❌ "Configure the settings"
✅ "Go to Settings > API and paste your API key in the 'API Key' field"
❌ "Set up your database"
✅ "Open .env file and add your database URL: DATABASE_URL=postgresql://..."
Specific instructions tell users exactly where to click and what to type.
Creating installation documentation?
River's AI generates comprehensive setup guides with step-by-step instructions, troubleshooting sections, and platform-specific guidance tailored to your product.
Generate Setup GuideShow Expected Results for Each Step
Users need to know if each step worked before moving to the next one. Show them what success looks like.
For CLI Commands
Show the expected terminal output:
Run: ``` npm install -g @river/cli ``` Expected output: ``` added 47 packages in 3s ```
If users don't see this output, they know something went wrong and can check before proceeding.
For GUI Steps
Describe what users should see:
Expected result: You'll see your dashboard with a "Welcome back!" message in the top-right corner.
Or use screenshots with arrows pointing to the relevant elements.
For Configuration
Show sample output or confirmation:
After saving, you should see: ✓ Configuration saved successfully ✓ Connected to database
Address Platform Differences
If installation differs by operating system, make platform-specific instructions easy to find.
Option 1: Tabs or Sections
Windows
[Windows-specific instructions]
macOS
[Mac-specific instructions]
Linux
[Linux-specific instructions]
Users can jump directly to their platform without wading through irrelevant instructions.
Option 2: Inline Differentiation
For steps that are mostly similar:
Step 3: Open the terminal • Windows: Press Win + R, type "cmd", press Enter • Mac: Press Cmd + Space, type "terminal", press Enter • Linux: Press Ctrl + Alt + T
Include Comprehensive Troubleshooting
Don't wait for users to contact support. Address common problems in the guide.
Troubleshooting Structure
For each common issue:
Problem: [Error message or symptom]
Symptoms:
• [What users see]
• [Error message]
Cause:
[Why this happens]
Solution:
1. [Step to fix]
2. [Verification that it worked]
Example
Problem: "Command not found: river"
Symptoms:
• Terminal says "river: command not found"
• Running `river --version` doesn't work
Cause:
The CLI wasn't installed globally, or your PATH isn't configured correctly.
Solution:
Option 1: Reinstall globally
npm install -g @river/cli
Make sure you use the `-g` flag (global installation).
Verify:
river --version
Should now show the version number.
Still not working? Contact support at support@river.ai
Anticipate Edge Cases
What problems do users commonly encounter? Check your support tickets and add those to troubleshooting:
- Permission errors ("EACCES: permission denied")
- Port conflicts ("Port 3000 already in use")
- Missing environment variables
- Firewall blocking connections
- Antivirus quarantining files
Visual Aids: When and How to Use Them
Screenshots, diagrams, and videos can clarify complex steps, but bad visuals confuse more than they help.
When Screenshots Add Value
Use screenshots for:
- Complex UI navigation: Multiple clicks through nested menus
- Configuration screens: Showing exactly which fields to fill
- Expected results: "You should see this screen"
- Error messages: What specific errors look like
- First-time experiences: Unfamiliar screens users haven't seen before
Don't screenshot:
- Simple actions ("Click the Install button" doesn't need a picture of a button)
- Terminal commands (code blocks are better—users can copy/paste)
- Steps that change frequently (screenshots get outdated)
Screenshot Best Practices
Highlight the relevant area: Use arrows, boxes, or circles to show exactly what matters.
Bad screenshot: Full desktop with no indication of what to look at
Good screenshot: Zoomed to relevant window with red arrow pointing to API key field
Include context: Show enough surrounding UI that users can orient themselves.
"Click Settings" without showing where Settings is located doesn't help. Show the menu with Settings highlighted.
Keep consistent style: Use same highlight color, arrow style throughout guide. Professional consistency builds trust.
Optimize file size: Compress images without losing clarity. Large images slow page loading and frustrate mobile users.
Add alt text: Describe what screenshot shows for accessibility and SEO.
Animated GIFs for Sequences
Best for: 3-5 step sequences that benefit from seeing motion.
Examples:
- Drag-and-drop installation (dragging .app to Applications folder)
- Navigating through multi-screen wizard
- Showing where to find something in a busy interface
Keep short: 5-15 seconds maximum. Longer sequences should be videos.
Loop appropriately: Obvious loops work. Jarring jumps don't.
Videos for Complex Processes
When to use video:
- Installation takes 10+ steps
- Process is highly visual
- Users consistently get confused (support ticket data reveals this)
- Showing real-time behavior matters (loading times, animations)
Video guidelines:
- Supplement, don't replace: Provide text instructions too. Videos can't be searched or scanned quickly.
- Keep focused: 2-5 minutes per video. Break longer processes into multiple videos.
- Add captions: Auto-generated captions are better than none, but manual review improves quality.
- Show, don't just tell: Narration should explain what's happening, not read text on screen.
- Maintain quality: 1080p minimum, clear audio, steady capture.
Diagrams for Concepts
Architecture diagrams: Show how components connect (especially for server installations).
Example: "Your app connects to database, which connects to Redis cache, all behind load balancer."
Flow diagrams: Illustrate decision trees ("If you have Node.js, skip to Step 3. If not, follow Step 1-2.")
Network diagrams: Show firewall rules, port requirements, service connections.
Updating Visual Aids
Problem: Screenshots become outdated when UI changes.
Solutions:
- Annotate with text overlay so minor UI changes don't require new screenshots
- Focus screenshots on stable UI elements
- Schedule screenshot audits with each major release
- Track which docs have outdated visuals (user reports, QA checks)
- Consider using automated screenshot tools that regenerate on UI changes
Verify Installation Worked
End with verification steps that confirm everything is working correctly.
Basic Functionality Test
Verify Your Installation Test 1: Create a project 1. Click "New Project" in the dashboard 2. Enter a project name 3. Click "Create" ✓ Success: You should see your new project in the project list ❌ Failed: If you see an error, check that you're signed in and have an active subscription
Feature Test
Test 2: Run a command 1. Open your terminal 2. Run: river test 3. You should see: "✓ River CLI is working correctly" ✓ Success: CLI is properly configured ❌ Failed: See troubleshooting section below
Verification builds user confidence that everything worked and helps catch problems before users try to use the product seriously.
Need platform-specific installation guides?
River's AI creates tailored setup documentation for Windows, Mac, and Linux with troubleshooting for each platform's unique issues.
Generate Multi-Platform GuideGuide Users to First Success
Don't end at "installation complete." Show users what to do next.
Quick Start
You're All Set! Get started in 5 minutes: 1. Create your first project - Tutorial 2. Invite team members - Tutorial 3. Configure integrations - Tutorial
Next Steps
Tutorials: • Getting Started Guide (10 minutes) • Core Features Overview (15 minutes) • Advanced Configuration (30 minutes) Resources: • Documentation • Video tutorials • Community forum • Support: support@company.com
This bridges the gap between "installed" and "getting value."
Writing Style for Installation Guides
Be Direct and Specific
❌ "You might want to consider downloading the file"
✅ "Download the installer"
❌ "Navigate to the configuration area"
✅ "Go to Settings > Configuration"
Use Active Voice
❌ "The file should be downloaded"
✅ "Download the file"
Explain the Why When Helpful
"Run `npm install` to download all required dependencies (this takes about 2 minutes)"
Brief context helps users understand what's happening and manage expectations.
Anticipate Confusion
If a step commonly confuses users, address it:
"Note: The installer may take a minute to start. This is normal—don't click multiple times."
Include Uninstallation Instructions
Users should be able to cleanly remove your product if needed.
Uninstalling Windows: 1. Open Settings > Apps 2. Find "River" in the list 3. Click "Uninstall" 4. Follow the prompts Remove all data: Delete: C:\Users\[YourName]\AppData\Roaming\River macOS: 1. Open Applications folder 2. Drag River to Trash 3. Empty Trash Remove all data: rm -rf ~/Library/Application\ Support/River
Version Management and Documentation Updates
Products change. Installation processes evolve. Documentation must keep pace.
Version-Specific Documentation
When product versions have different installation:
Create separate guides or clearly mark version-specific sections:
Installation Guide for v2.x Note: If you're installing v1.x, see the v1.x installation guide.
Or use toggles/tabs:
Select your version: [v2.x] [v1.x] [Version-specific instructions shown based on selection]
Handling Breaking Changes
When installation process changes significantly:
Don't just update the guide. Call out what changed for existing users:
⚠️ Changed in v2.0 Installation process has changed from v1.x: • Node.js 16+ now required (was 12+) • Configuration moved from config.json to .env file • Database setup now requires migration command If upgrading from v1.x, see the migration guide.
Managing Multiple Installation Methods
When you support multiple installation approaches (npm, Docker, manual download, cloud deployment):
Option 1: Separate guides for each method
Choose Your Installation Method: • npm/yarn (recommended for developers) • Docker (recommended for production) • Manual installation (advanced users) • Cloud marketplace (AWS, GCP, Azure)
Option 2: Single guide with clear sections
Installation Methods Method 1: Install via npm (5 minutes) [npm instructions] Method 2: Install via Docker (10 minutes) [Docker instructions] Method 3: Manual installation (20 minutes) [Manual instructions]
Documentation Review Schedule
When to review installation guides:
- Before each major release: Verify installation still works as documented
- After UI changes: Update screenshots, navigation instructions
- Quarterly review: Check for outdated information, broken links, OS updates
- When support tickets spike: If installation issues increase, documentation might be unclear
- After dependency updates: Prerequisites might change (Node version, OS version)
Automated Documentation Checks
Automate what you can:
- Broken link checkers: Catch dead external links
- Version number updates: Use variables/templates for version numbers that auto-update
- Code snippet testing: Run documented commands in CI to ensure they work
- Screenshot comparison: Tools can flag when UI changed significantly from documented screenshots
Accessibility in Installation Guides
Documentation should work for all users, including those using assistive technologies.
Text Alternatives
Alt text for images: Describe what screenshot shows.
Bad alt text: "Screenshot"
Good alt text: "Settings page showing API key field highlighted in red"
Text alongside videos: Always provide written steps. Don't make videos the only instructions.
Clear Language
Avoid jargon when possible: If you must use technical terms, define them first.
Don't assume: "SSH into the server"
Do explain: "Connect to your server via SSH (Secure Shell, a protocol for remote server access)"
Keep sentences short: Long, complex sentences are hard for everyone, especially ESL users and those with cognitive disabilities.
Semantic HTML and Structure
Use proper heading hierarchy: H2 for main sections, H3 for subsections. Screen readers navigate by headings.
Use lists for steps: Numbered lists for sequential steps, bullet lists for options or requirements.
Use code blocks properly: Mark code as code so screen readers announce it differently.
Keyboard Navigation
Ensure documentation is keyboard accessible: Users should be able to tab through, expand collapsible sections, switch tabs without mouse.
Test with tab key: Go through your documentation using only keyboard. Can you access everything?
Color and Contrast
Don't rely solely on color: "Click the green button" doesn't help colorblind users. "Click the Install button (green, top-right)" is better.
Ensure sufficient contrast: Text should be readable for users with low vision. Use contrast checking tools.
Test Your Instructions
The only way to know if your installation guide works is to follow it yourself.
Test on clean systems: Use a fresh VM or borrow someone's computer. Your development machine has dependencies already installed that new users won't have.
Time each step: Update your time estimates based on actual timing.
Watch someone else follow the guide: Don't help them. Just watch where they get confused. Those are the gaps in your documentation.
Update when things change: Product updates, UI changes, and new platforms all require documentation updates.
Common Installation Guide Mistakes
Assuming prerequisite knowledge: "Install Node.js" without linking to instructions.
Skipping platform differences: Giving only Linux instructions when you support Windows and Mac.
No expected results: Users don't know if steps worked.
Missing troubleshooting: Users hit errors and have no guidance.
Outdated screenshots: UI changed but documentation didn't.
Too technical: Jargon that beginners don't understand.
No time estimates: Users don't know how long installation takes.
Key Takeaways
Installation guides should start with prerequisites and system requirements so users know what they need before beginning. Time estimates and difficulty levels set expectations.
Structure steps clearly with one action per step, specific instructions (not vague directions), expected results after each step, and screenshots or terminal output examples where helpful.
Address platform differences explicitly with tabs or sections for Windows, Mac, and Linux. Don't make users wade through irrelevant instructions for other platforms.
Include comprehensive troubleshooting for common errors: permission issues, port conflicts, missing dependencies, network problems. Each issue should have symptoms, cause, and solution.
Verify installation worked with basic functionality tests and feature tests. End with clear next steps guiding users to their first success.
The installation guides that prevent support tickets are tested on clean systems, updated when products change, and written from the user's perspective—not the developer's.
Use visual aids strategically. Screenshots work for complex UI navigation and configuration screens. Animated GIFs show short sequences. Videos suit complex multi-step processes (but always provide text too). Diagrams explain architecture and connections. Update visuals when UI changes to avoid outdated documentation confusing users.
Manage versions explicitly. Create separate guides or clearly marked sections for different versions. Call out breaking changes so upgrading users know what changed. Support multiple installation methods with separate guides or clear sections. Schedule documentation reviews before releases, after UI changes, and quarterly.
Make documentation accessible. Provide alt text for images, text alternatives for videos, clear language avoiding unnecessary jargon, proper heading hierarchy for screen readers, and keyboard navigation support. Don't rely solely on color to convey meaning.
Test everything. Follow your instructions on clean systems without your development environment's installed dependencies. Time each step accurately. Watch someone else follow the guide without helping them—observe where confusion occurs. Update documentation immediately when installation process changes.
Most importantly, remember installation is users' first real interaction with your product. Confusing documentation at this stage costs you customers who never experience your product's value. Excellent installation guides set the stage for success, reduce support burden, and demonstrate that you care about user experience from the very beginning. Investment in clear, comprehensive installation documentation pays dividends in reduced churn, fewer support tickets, and happier users who actually get your product working.