Productivity Setup
This guide helps you set up NextDNS Blocker for a productive work environment, blocking distractions during focus hours while allowing reasonable breaks.
Overview
Section titled “Overview”Goal: Minimize distractions during work hours
Strategy:
- Block social media and entertainment during work
- Allow access during lunch break
- Full access in evenings and weekends
- Moderate unblock delays for friction
Configuration
Section titled “Configuration”Complete Example
Section titled “Complete Example”{ "version": "1.0", "settings": { "timezone": "America/New_York", "editor": null }, "blocklist": [ { "domain": "reddit.com", "description": "Social media - breaks only", "unblock_delay": "30m", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [ {"start": "12:00", "end": "13:00"}, {"start": "18:00", "end": "23:00"} ] }, { "days": ["saturday", "sunday"], "time_ranges": [ {"start": "08:00", "end": "23:00"} ] } ] } }, { "domain": "twitter.com", "description": "News/social - evenings only", "unblock_delay": "30m", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [ {"start": "18:00", "end": "22:00"} ] }, { "days": ["saturday", "sunday"], "time_ranges": [ {"start": "10:00", "end": "23:00"} ] } ] } }, { "domain": "youtube.com", "description": "Streaming - limited access", "unblock_delay": "30m", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [ {"start": "12:00", "end": "13:00"}, {"start": "19:00", "end": "22:00"} ] }, { "days": ["saturday", "sunday"], "time_ranges": [ {"start": "10:00", "end": "23:00"} ] } ] } }, { "domain": "instagram.com", "description": "Social media - high friction", "unblock_delay": "4h", "schedule": { "available_hours": [ { "days": ["saturday", "sunday"], "time_ranges": [ {"start": "12:00", "end": "22:00"} ] } ] } }, { "domain": "tiktok.com", "description": "Time sink - weekends only", "unblock_delay": "4h", "schedule": { "available_hours": [ { "days": ["saturday", "sunday"], "time_ranges": [ {"start": "14:00", "end": "20:00"} ] } ] } } ], "allowlist": [ { "domain": "github.com", "description": "Work resource" }, { "domain": "stackoverflow.com", "description": "Work resource" }, { "domain": "docs.google.com", "description": "Work documents" } ]}Understanding the Schedule
Section titled “Understanding the Schedule”Weekday Structure
Section titled “Weekday Structure”00:00 ─────────────────────────────────────────────── 23:59 BLOCKED │ LUNCH │ BLOCKED │ EVENING │ ────────┼─────────┼───────────────┼───────────┼── 00-12:00│12:00-13:00│ 13:00-18:00│18:00-23:00│Weekend Structure
Section titled “Weekend Structure”00:00 ─────────────────────────────────────────────── 23:59 SLEEP │ AVAILABLE │ ───────┼──────────────────────────────────────┼── 00-08:00│ 08:00-23:00 │Customization
Section titled “Customization”Adjust Work Hours
Section titled “Adjust Work Hours”If you work different hours, modify the blocked periods:
// Early bird (6 AM - 3 PM)"time_ranges": [ {"start": "11:00", "end": "12:00"}, // Late morning break {"start": "15:00", "end": "22:00"} // After work]
// Night owl (11 AM - 8 PM)"time_ranges": [ {"start": "14:00", "end": "15:00"}, // Afternoon break {"start": "20:00", "end": "01:00"} // After work]Add More Sites
Section titled “Add More Sites”Common additions:
// News sites{"domain": "news.ycombinator.com", "unblock_delay": "30m", ...},{"domain": "cnn.com", "unblock_delay": "0", ...},
// Shopping{"domain": "amazon.com", "unblock_delay": "30m", ...},{"domain": "ebay.com", "unblock_delay": "30m", ...},
// Other social{"domain": "facebook.com", "unblock_delay": "4h", ...},{"domain": "linkedin.com", "unblock_delay": "0", ...}Adjust Friction
Section titled “Adjust Friction”| Site Risk | Recommended Delay |
|---|---|
| Low (news) | "0" |
| Moderate (social) | "30m" |
| High (addictive) | "4h" |
| Very High | "24h" |
Setup Steps
Section titled “Setup Steps”1. Install NextDNS Blocker
Section titled “1. Install NextDNS Blocker”brew install nextdns-blocker # or pip installnextdns-blocker init2. Apply Configuration
Section titled “2. Apply Configuration”# Copy templatecp examples/work-focus.json ~/.config/nextdns-blocker/config.json
# Or create from scratchnextdns-blocker config edit# Paste the configuration above3. Set Your Timezone
Section titled “3. Set Your Timezone”nextdns-blocker config set timezone America/New_York4. Validate
Section titled “4. Validate”nextdns-blocker config validate5. Test with Dry Run
Section titled “5. Test with Dry Run”nextdns-blocker config push --dry-run -v6. Install Watchdog
Section titled “6. Install Watchdog”nextdns-blocker watchdog install7. Verify
Section titled “7. Verify”nextdns-blocker statusTips for Success
Section titled “Tips for Success”Start Gradual
Section titled “Start Gradual”Begin with few sites and shorter blocks:
- Week 1: Block 2-3 sites during morning
- Week 2: Add afternoon blocking
- Week 3: Add more sites
- Week 4: Increase delays
Use Panic Mode
Section titled “Use Panic Mode”When deadline pressure hits:
nextdns-blocker panic 120 # 2 hours of focusReview Weekly
Section titled “Review Weekly”Check what’s working:
- Are you attempting many unblocks?
- Which sites cause most friction?
- Are schedules aligned with actual work patterns?
Don’t Overblock
Section titled “Don’t Overblock”Leave legitimate work tools accessible:
- Documentation sites
- Development tools
- Communication (Slack, Teams) if needed
Troubleshooting
Section titled “Troubleshooting””I need access for work”
Section titled “”I need access for work””Add to allowlist:
nextdns-blocker allow important-work-site.com“Schedule doesn’t match my hours”
Section titled ““Schedule doesn’t match my hours””Adjust and test:
nextdns-blocker config editnextdns-blocker config push --dry-run“Too restrictive”
Section titled ““Too restrictive””Reduce friction gradually:
- Increase available hours
- Reduce unblock delays
- Remove some sites from blocklist