Bastion
Stay focused.
Break the loop.
Bastion is a browser extension that adds friction where autopilot takes over - speed bumps, time budgets, grayscale filters. Not hard blocks. Just enough resistance to break compulsive habits.
For Chrome, Edge, and other Chromium browsers
A different approach to focus
Most blockers treat you like you can't be trusted. Bastion treats you like someone who set a boundary and needs a gentle reminder to respect it.
Friction, not punishment
Speed bumps and time budgets instead of hard locks. You always have a way through - but you have to be intentional about it.
Graduated responses
Different habits need different tools. A compulsive checker needs a speed bump. A time sink needs a budget. Layer them independently per site.
Calm, not hostile
When Bastion steps in, it feels like a gentle wall - a reminder of a boundary you set for yourself. No shame, no sirens.
Four tools, one goal
Each site gets its own combination of controls. Use one, use all four - whatever fits the habit you're working on.
Cap your time
Set a rolling time budget - like 30 minutes per 2 hours. When you hit the limit, Bastion blocks the site until enough time rolls off the window. You decide how much is enough.
Limit the visits
Targets the "open new tab, type URL" reflex. Cap how many times you can navigate to a site within a rolling window. Great for sites you visit briefly but compulsively.
Pause before loading
A countdown page before the site loads. Pure friction - no blocking. Just enough of a pause to ask yourself "do I actually need this right now?"
Make it less appealing
Apply a grayscale filter based on time of day or time spent on the site. Everything still works - it just stops being as fun. A subtle nudge that the fun part is over.
Getting started
Installation
Chrome Web Store listing coming soon. For now, you can install from source.
- Clone the repository and run
npm install && npm run build - Open
edge://extensionsorchrome://extensions - Enable Developer mode
- Click Load unpacked and select the
dist/folder - Pin Bastion to your toolbar
Adding & configuring sites
Click the Bastion icon in your toolbar, then the gear icon to open
Settings. Click + Add Site, type a domain pattern
(like reddit.com), and start adding controls.
Domain patterns match the domain and all its subdomains -
reddit.com also covers www.reddit.com
and old.reddit.com. Each site is configured
independently with its own set of controls.
Control types in detail
Time Limit
Configure max time (how long you can spend) and window (the rolling period it's measured over). When you hit the limit, Bastion redirects to a blocked page that shows when access resets. Time tracking uses a 1-minute heartbeat, so usage is accurate to the minute.
Nav Frequency
Configure max visits and window. Each fresh arrival at the domain - from a new tab or a different site - counts as one visit. Clicking around within the site does not. Particularly useful for sites where the problem is how often you go there, not how long you stay.
Speed Bump
Configure the delay in seconds. A countdown page appears before the site loads. After the countdown finishes, click Proceed to continue. There is no limit on how many times you can proceed - the friction is the point.
Degradation
Choose a trigger type: time of day (e.g. after 9 PM) or cumulative time on site (e.g. after 10 minutes today). Currently applies a grayscale filter. The site remains fully functional - just less visually stimulating.
Bypass system
Any control except degradation can have an optional bypass policy. Configure how many bypasses you get per time window and how long each bypass lasts. When a control blocks you, the blocked page shows a bypass button with the remaining count.
Bypasses are a release valve, not a backdoor. They exist because perfection isn't the goal - staying on track is. If you need to check something urgently, the option is there. But you have to actively choose it.
Import & export
The Settings page has export and import buttons. Export your full configuration as a JSON file or a shareable encoded string. Import supports both formats, with the option to replace your existing config entirely or merge (incoming sites win on domain conflicts).
This is useful for backing up your setup, moving to a new machine, or sharing a configuration with someone else.