Unblock Delay
Unblock delays create friction between requesting access and receiving it, helping resist impulsive decisions.
Concept
Section titled “Concept”When you try to unblock a domain with a delay configured:
- Request: You run
unblock domain.com - Queue: A pending action is created
- Wait: The delay period passes
- Execute: Domain is unblocked automatically
During the wait, you can cancel if the urge passes.
Configuration
Section titled “Configuration”Set in config.json for each domain:
{ "blocklist": [ { "domain": "reddit.com", "unblock_delay": "30m" } ]}Valid Values
Section titled “Valid Values”Common Presets
Section titled “Common Presets”| Value | Delay | Use Case |
|---|---|---|
"0" | Instant | Low-risk sites |
"30m" | 30 minutes | Moderate friction |
"4h" | 4 hours | High friction |
"24h" | 24 hours | Maximum friction |
"never" | Cannot unblock | Harmful content |
Flexible Duration Format
Section titled “Flexible Duration Format”You can use any duration with these formats:
| Format | Examples | Description |
|---|---|---|
{n}m | "15m", "45m", "90m" | Minutes |
{n}h | "1h", "2h", "8h", "12h" | Hours |
{n}d | "1d", "2d", "7d" | Days |
Examples of valid custom delays:
{ "blocklist": [ { "domain": "quick-check.com", "unblock_delay": "15m" }, { "domain": "gaming-site.com", "unblock_delay": "90m" }, { "domain": "streaming.com", "unblock_delay": "2h" }, { "domain": "dating-app.com", "unblock_delay": "2d" }, { "domain": "weekly-reset.com", "unblock_delay": "7d" } ]}Behavior by Value
Section titled “Behavior by Value”Instant ("0")
Section titled “Instant ("0")”nextdns-blocker unblock reddit.comOutput:
Unblocking reddit.com...✓ reddit.com unblockedImmediate access, no delay.
Timed Delays ("30m", "4h", "24h")
Section titled “Timed Delays ("30m", "4h", "24h")”nextdns-blocker unblock bumble.comOutput:
Unblock scheduled for 'bumble.com'Delay: 24hExecute at: 2024-01-16 14:30:00ID: pnd_20240115_143000_a1b2c3
Use 'pending list' to view or 'pending cancel <ID>' to abortProtected ("never")
Section titled “Protected ("never")”nextdns-blocker unblock gambling-site.comOutput:
✗ Cannot unblock 'gambling-site.com' This domain is protected (unblock_delay: never)No way to manually unblock.
Why Use Delays?
Section titled “Why Use Delays?”Research Background
Section titled “Research Background”Studies show that cravings typically:
- Peak within minutes
- Fade significantly after 20-30 minutes
- Often disappear entirely after a few hours
Friction Creates Space
Section titled “Friction Creates Space”The delay:
- Interrupts autopilot - You can’t access impulsively
- Creates reflection time - Do you really need this?
- Allows cancellation - Changed your mind? Cancel it
- Reduces regret - Deliberate choices feel better
Recommended Settings
Section titled “Recommended Settings”By Content Type
Section titled “By Content Type”| Content | Recommended | Reasoning |
|---|---|---|
| Social media | "30m" | Quick impulse control |
| Gaming platforms | "4h" | Longer to resist gaming sessions |
| Streaming | "30m" to "4h" | Depends on addiction level |
| Dating apps | "4h" to "24h" | High impulse, high regret |
| Gambling | "never" | No legitimate need |
| Adult content | "never" | Harmful, no exceptions |
By Risk Level
Section titled “By Risk Level”| Risk | Delay | Description |
|---|---|---|
| Low | "0" | Useful but not problematic |
| Moderate | "30m" | Sometimes problematic |
| High | "4h" | Often problematic |
| Very High | "24h" | Frequently problematic |
| Maximum | "never" | Always problematic |
Managing Pending Actions
Section titled “Managing Pending Actions”List Pending
Section titled “List Pending”nextdns-blocker pending listView Details
Section titled “View Details”nextdns-blocker pending show <ID>Cancel
Section titled “Cancel”nextdns-blocker pending cancel <ID>See pending command for details.
Examples
Section titled “Examples”Productivity Setup
Section titled “Productivity Setup”{ "blocklist": [ { "domain": "reddit.com", "description": "Social media - moderate friction", "unblock_delay": "30m", "schedule": {...} }, { "domain": "twitter.com", "description": "News - low friction", "unblock_delay": "0", "schedule": {...} }, { "domain": "youtube.com", "description": "Streaming - high friction", "unblock_delay": "4h", "schedule": {...} } ]}Recovery Setup
Section titled “Recovery Setup”{ "blocklist": [ { "domain": "gambling-site.com", "description": "Protected - no access", "unblock_delay": "never", "schedule": null }, { "domain": "casino.com", "description": "Protected - no access", "unblock_delay": "never", "schedule": null }, { "domain": "dating-app.com", "description": "Maximum friction", "unblock_delay": "24h", "schedule": null } ]}Parental Control
Section titled “Parental Control”{ "blocklist": [ { "domain": "social-media.com", "description": "Child account - parental approval needed", "unblock_delay": "never", "schedule": {...} }, { "domain": "gaming-site.com", "description": "Gaming - must wait", "unblock_delay": "4h", "schedule": {...} } ]}Delays and Schedules
Section titled “Delays and Schedules”Unblock delay and schedule are independent:
- Schedule: Automatic access during certain hours
- Delay: Friction for manual unblocking
Example:
{ "domain": "reddit.com", "unblock_delay": "30m", "schedule": { "available_hours": [ {"days": ["saturday"], "time_ranges": [{"start": "10:00", "end": "22:00"}]} ] }}- Saturday 10am-10pm: Auto-unblocked by schedule
- Other times: Manual unblock requires 30-minute wait
Delays and Panic Mode
Section titled “Delays and Panic Mode”During panic mode:
- All domains blocked regardless of delay
unblockcommand hidden- Pending actions paused (not executed)
- After panic: Pending actions resume
Bypass Considerations
Section titled “Bypass Considerations”Legitimate Bypasses
Section titled “Legitimate Bypasses”Some situations may need immediate access:
- Emergency requiring blocked information
- Work necessity during blocked time
- Schedule misconfiguration
Options:
- Edit config to temporarily reduce delay
- Wait for delay (as designed)
- Add domain to allowlist temporarily
Preventing Abuse
Section titled “Preventing Abuse”To make bypass harder:
- Use
"never"for harmful content - Don’t keep delay settings memorized
- Consider using panic mode when vulnerable
Troubleshooting
Section titled “Troubleshooting”Pending action not executing
Section titled “Pending action not executing”-
Check watchdog is running:
Terminal window nextdns-blocker watchdog status -
Check panic mode:
Terminal window nextdns-blocker panic status -
Force sync:
Terminal window nextdns-blocker config push
Changed my mind but can’t cancel
Section titled “Changed my mind but can’t cancel”If action already executed:
- Re-block via schedule (wait for next sync)
- Or use
nextdns-blocker config pushto re-apply rules
Need to change delay for domain
Section titled “Need to change delay for domain”Edit configuration:
nextdns-blocker config edit# Change unblock_delay value# Save and exitChanges affect future unblock requests, not existing pending actions.