Skip to content

Unblock Delay

Unblock delays create friction between requesting access and receiving it, helping resist impulsive decisions.

When you try to unblock a domain with a delay configured:

  1. Request: You run unblock domain.com
  2. Queue: A pending action is created
  3. Wait: The delay period passes
  4. Execute: Domain is unblocked automatically

During the wait, you can cancel if the urge passes.

Set in config.json for each domain:

{
"blocklist": [
{
"domain": "reddit.com",
"unblock_delay": "30m"
}
]
}
ValueDelayUse Case
"0"InstantLow-risk sites
"30m"30 minutesModerate friction
"4h"4 hoursHigh friction
"24h"24 hoursMaximum friction
"never"Cannot unblockHarmful content

You can use any duration with these formats:

FormatExamplesDescription
{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"
}
]
}
Terminal window
nextdns-blocker unblock reddit.com

Output:

Unblocking reddit.com...
✓ reddit.com unblocked

Immediate access, no delay.

Terminal window
nextdns-blocker unblock bumble.com

Output:

Unblock scheduled for 'bumble.com'
Delay: 24h
Execute at: 2024-01-16 14:30:00
ID: pnd_20240115_143000_a1b2c3
Use 'pending list' to view or 'pending cancel <ID>' to abort
Terminal window
nextdns-blocker unblock gambling-site.com

Output:

✗ Cannot unblock 'gambling-site.com'
This domain is protected (unblock_delay: never)

No way to manually unblock.

Studies show that cravings typically:

  • Peak within minutes
  • Fade significantly after 20-30 minutes
  • Often disappear entirely after a few hours

The delay:

  1. Interrupts autopilot - You can’t access impulsively
  2. Creates reflection time - Do you really need this?
  3. Allows cancellation - Changed your mind? Cancel it
  4. Reduces regret - Deliberate choices feel better
ContentRecommendedReasoning
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
RiskDelayDescription
Low"0"Useful but not problematic
Moderate"30m"Sometimes problematic
High"4h"Often problematic
Very High"24h"Frequently problematic
Maximum"never"Always problematic
Terminal window
nextdns-blocker pending list
Terminal window
nextdns-blocker pending show <ID>
Terminal window
nextdns-blocker pending cancel <ID>

See pending command for details.

{
"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": {...}
}
]
}
{
"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
}
]
}
{
"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": {...}
}
]
}

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

During panic mode:

  • All domains blocked regardless of delay
  • unblock command hidden
  • Pending actions paused (not executed)
  • After panic: Pending actions resume

Some situations may need immediate access:

  • Emergency requiring blocked information
  • Work necessity during blocked time
  • Schedule misconfiguration

Options:

  1. Edit config to temporarily reduce delay
  2. Wait for delay (as designed)
  3. Add domain to allowlist temporarily

To make bypass harder:

  1. Use "never" for harmful content
  2. Don’t keep delay settings memorized
  3. Consider using panic mode when vulnerable
  1. Check watchdog is running:

    Terminal window
    nextdns-blocker watchdog status
  2. Check panic mode:

    Terminal window
    nextdns-blocker panic status
  3. Force sync:

    Terminal window
    nextdns-blocker config push

If action already executed:

  • Re-block via schedule (wait for next sync)
  • Or use nextdns-blocker config push to re-apply rules

Edit configuration:

Terminal window
nextdns-blocker config edit
# Change unblock_delay value
# Save and exit

Changes affect future unblock requests, not existing pending actions.