The Free, Open Source, and silly site blocker.
At it's core, LobsterProtect isn't much different than any other site blocker you may find; It does it's job, and it does it well.
But if you have ever actually used a site blocker, you'd know how much paywalling there is, sometimes for features you should be simply expecting to be there. Like merely adding any more than 3 sites to your site list.
LobsterProtect β neither the extension itself nor any of it's features β is not, never will and never has been under ANY kind of paywall, and there is no plans to implement any.
This is a passion project, and always will be.
I fully believe that in the modern day, site blockers are not just tools for parents anymore, but a requirement for browsing the Web both safely and productively; To me, it's almost shocking that they don't come packaged in browsers by default.
You can install LobsterProtect from the Chrome Web Store.
Do note however, not all updates will be pushed to the Chrome Web Store version of LobsterProtect, this is because Chrome Extensions need to be reviewed by Google itself before they're updated/uploaded.
So if an update is "small and meaningless enough" then it won't be implemented in the Chrome Web Store version until an update that isn't small and meaningless is released.
- Major bugfixes
- In regards to the actual site blocker functionality. E.g. Some sites not being blocked or unexpected false positives.
- Any issues that were flagged as "High priority".
- In regards to Accessibility.
- In regards to Security.
- Any bump to the MAJOR or MINOR versions.
- In semantic versioning, [MAJOR].[MINOR].[PATCH].
- New features.
- Breaking changes.
- QoL.
- ...
- In semantic versioning, [MAJOR].[MINOR].[PATCH].
Alternatively, you can "build from source" by cloning this repository somewhere in your system, and loading it unpacked in your supported browser. For a tutorial on how to do this, read the following:
- Clone this repository somewhere, using:
git clone https://github.com/hillthebingus/lobster-protect.git
-
Then go to your browser, go to Extensions > Manage your extensions, turn on "Developer mode" and "Load Unpacked".
-
A menu should pop-up, find the
lobster-protect
folder in your system, wherever you cloned it. -
After you've selected it, you should have LobsterProtect installed! Happy safe browsing β£οΈπ¦.
This is more of an informative section that aims to answer questions before they're asked.
-
- Probably soon! I can't say for sure when, but what i can say for sure is that v1.0 will not be ported to other browsers. There's plenty of features i haven't implemented into the base extension yet, so i still need to test them before i can even consider porting the project.
- I really don't want to worry about portability more than maintainability, so until the codebase is in a state i'm more comfortable with, it will not come to any other browsers.
LobsterProtect offers what you'd expect from your average site blocker, this section is about getting into details about the functionality and implementation of these features.
One of the features i have in mind for the future is making each Sitelist entry capable of overriding the Global settings, so some sites can be treated specially;
However, this isn't implemented yet so calling this section "Globals" is a little pointless since nothing can override it. But regardless, these options define LobsterProtect's behavior as a whole.
Here's where you tell LobsterProtect what to do when it detects you are in a forbidden site.
Currently there's only 3 possible "Actions" available, all of which have self descriptive names.
- Close the browser.
- Close the tab.
- Redirect to another site.
Determines where will you be redirected to when Action
is "Redirect to another site"
Warning
Careful when using "Redirect to another site" (especially when using it alongside Whitelist mode).
Make sure the Redirect URL is not going to trigger LobsterProtect as well, otherwise any trigger to LobsterProtect will lock you in a redirection loop since the very site it's redirecting you to will trigger a redirect as well.
This won't break anything, but it will be pretty annoying though.
Simple Booleans that alter the functionality of LobsterProtect.
As the name implies, all this feature does is turn your sitelist into a whitelist, essentially inverting the functionality of LobsterProtect; If you're somewhere the list hasn't approved of, then you're somewhere you shouldn't be in.
This one is a little hard to explain, but if you know javascript this should work:
For the nerds
// NOT ACTUAL IMPLEMENTATION
// Trigger Happy
if (current_site.includes(sitelist_entry)) {
onTrigger();
}
// Default behavior
if (current_site === sitelist_entry) {
onTrigger();
}
By default, an entry in your sitelist won't trigger LobsterProtect against your current site unless it explicitly is your site's hostname.
This comes with the downside of sitelist entries having to be explicit hostname
s β which might be what you want! β But it might end up causing unexpected non-triggers if you don't actually know the hostname
beforehand.
To illustrate, a sitelist entry named google.com
won't trigger LobsterProtect on Google because its hostname
is www.google.com
, not google.com
;
In this situation, Trigger-happy mode
being enabled would've made this entry actually work as expected.
Note
You can block more than one site with only one entry since it just uses String.prototype.includes()
, however, be careful around false positives.
An entry named red
, will indeed block www.reddit.com
, but it will also block www.red.com
, www.redhat.com
, www.simplyred.com
and so on, so be mindful of this.
Tip
A great way to use this feature is with pages that have different hostname
s depending on the language they're hosted in, for example, wikipedia
will block uk.wikipedia.com
, en.wikipedia.com
, es.wikipedia.com
and so on.
For debugging purposes, all it does is print to the devTools console more often. Essentially making LobsterProtect more of a yapper.
If you're reporting a bug, turning this on and sending a screenshot of the devTools console when the bug happens would be greatly appreciated.
First of all, from the bottom of my heart, thank you for expressing interest in contributing β€οΈ
This section is here just to link you to both important documents you need to read if you wish to contribute in any capacity.
Any action of which its ultimate intent would be to make the project better in some capacity; Bug reporting, Feature requests, Source code contributions, and such.
If you're doing something with the intent of helping the project, you're contributing.
Here's some basic guidelines:
Please read the Code of Conduct, it's not a long read and it'd help me maintain the project and the sanity of everyone else that wishes to contribute.
Make sure you read CONTRIBUTING.md, you'll find all the useful information there, such as what is the formatting tool standard and how to write your commit messages.
Keep it clear and concise, provide as many details as you can, and explain if you managed to reproduce that bug; If you're asked for more details, explain why if you can't, provide if you can.
You don't need to keep it formal or add fancy words, just make sure your points go across!