Zen (Firefox-based) has been really refreshing. You could probably accomplish the same thing with some user scripts and user CSS, but the concern with those has always been that they could break at any time with a new update. That shouldn't happen with a fork like Zen as they have control over updates.
How is built-in ad blocking not the foremost priority? Brave and Comet both have it. uBlock Origin is not as effective as it used to be as of Manifest v3.
I think I like the idea, but the structure of the code doesn't look the best. What most sticks out to me is the "Managers" directory. I've seen similar patterns before, even at my current place of work, but they seem to correlate with less experienced implementations. For instance, I clicked on one of them randomly and already found an issue: https://github.com/nook-browser/Nook/blob/09a4c6957a2e9fd7c5...
I guess `www.` (and only `www.`) is always special, and the only TLDs with two components are `"co.uk", "co.jp", "com.au", "co.nz", "com.br"`?
I don't know how critical this "Manager" is (what even is a "boost"?), but a web browser should absolutely have a proper list of TLDs!
> What most sticks out to me is the "Managers" directory. I've seen similar patterns before, even at my current place of work, but they seem to correlate with less experienced implementations
What is wrong with such structure? How would you structure this code? Genuinely asking
There are no peer-reviewed studies yet for me to corroborate this with, but I've seen this pattern primarily from a specific type of autistic, and it's similar to an actor pattern: a Manager is expected to entirely "manage" whatever feature it's concerned with. This is usually different from a simple module by not collecting related functionality regarding the feature, but rather trying to contain the entire feature itself.
This typically creates artifacts like each "Manager" owning too much of its implementation (not benefiting from or contributing to shared structures, such as a proper domain suffix list), inconsistency between different parts of the app (since different "Managers" don't necessarily share common patterns between them), and tons of hooks into random "Managers" all over the code.
To me, it feels a bit like an "emotionally driven" architecture, where the organization of the code is based on the list of features of the app, and not based on the implementation of those features. So rather than having, for example, a drag and drop component for the tabs to use, you would have, for example, a ReorderingTabsManager, and the implementation may behave differently than drag and drop in other places. So rather than factoring out code into modules for deduplication, you're making modules ("Managers") based on where they are in the product, and duplicating functionality across each module, to varying standards of completeness and/or quality.
Now I don't know if this project is quite that egregious, but it hopefully illustrates why I raise an eyebrow when I see a project architected this way.
> Transparent code, permissive license, and a community-driven roadmap.
Which I was going to mention is contradictory, because the point of permissive licenses is that it does not have to be Free forever. But the license is actually GPLv3 instead. So still contradictory wording, but the "permissive" is the part that isn't correct :-)
> Which I was going to mention is contradictory, because the point of permissive licenses is that it does not have to be Free forever.
No, the point of permissive licenses is that third-party derivatives, which have no impact on the licensing of the original, don't have to be free ever, while the point of copyleft licenses is that they do.
Neither has any effect whatsoever on what future first-party licensing can be; a commitment to "open source forever" by the copyright owner is mostly orthogonal to what kind of open source license the copyright owner offers. (Now, its true that if the owner accepted contributions under a copyright license rather than under a CLA, they would likely have no practical choice but copyleft now and forever, but that's an issue of the license they accept on what they can offer, not an effect of what they offer itself.)
(OTOH, using "permissive" for GPLv3, a copyleft license, is actually contradictory, as you correctly note.)
The license of the code released under a permissive license is guaranteed to stay the same.
Only the code that is yet to be released is not.
From an end user perspective BSD/MIT and GPLvX licences offer the same guarantees. It only is different if you are a contributor or if you intend to distribute modified or unmodified code yourself.
I won't be surprised if B&N does a C&D on this particular trademark infringement.
Nook is a well-known brand in consumer tech, ereaders aren't that far removed from Web browsers, Nooks have a Web browser, and B&N also has a "Nook for Web".
Switched to zen recently, and although I only expected a slightly different experience to firefox, it's hugely better. Profiles/containers/workspaces especially are great.. this level or organization fits my mental model much better and and I never need to manage bookmarks or use multiple windows. (Performance with large numbers of tabs seems much better too, presumably inactive workspaces are reclaiming the memory in smart ways).
I'm interested in seeing all the new browsers that will come out in the next few years that are based off Ladybird. Or alternatively what Ladybird will enable in terms of customization. I think the days of Chromium/WebKit/Gecko forks are numbered.
Similar to Zen, it's an open source Arc* clone but WebKit rather Blink/Gecko-based that Arc/Zen are. *Explains "not owned by Atlassian" in about since Arc/Dia dev company was bought by Atlassian.
I see we're heading back to the days of MDI web browsers, slowly but surely. It's really strange to me how web browsers used to allow so much configuration (like the option to use MDI tab/window management or just generic tiling) but don't anymore. I've been hoping a browser comes out that is just Opera 8/9 but with the ability to browse the modern web so maybe with the advent of all these new browsers I should start taking a look.
the sidebar was the best feature in Arc imo. I gave zen a shot just because of that and it was not a great experience to be honest. First, migration was buggy, then the sidebar lacked some basic features like renaming the tabs even though it looked similar. Nook seems to follow in the same footsteps I just hope that they nail the sidebar like Arc. Tab management is a mess and this has so much potential. All the best to both Zen and Nook.
Looks like Arc, would love to migrate out of it after migration, but always worry about maintenance. Creating a browser is "easy", keeping it up to date is a lot of work, and many open-source browsers look semi-abandoned to me.
Am I the only one that thinks "No selling of browsing data. Ever." implies that you're still harvesting browsing data? That is a level of telemetry that I don't want my browser having.
I was looking for a good browser. I’m finally interning, and Brave has taken over as my official browser(I don’t like the concept of workspaces/profiles). I used Comet for a while but found it extremely annoying. I like Zen, but I’m not a fan of sidebars in browsers. Currently settled on Helium. This would have been good, but I can’t seem to understand the obsession with sidebars.
Interestingly enough, Kagi has a new browser, Orion, that's also WebKit-based. Besides the obvious macOS, it's in Alpha for Linux and "in development" for Windows. May the best non-Chromium browser win!
41 comments
[ 4.7 ms ] story [ 82.1 ms ] threadI guess `www.` (and only `www.`) is always special, and the only TLDs with two components are `"co.uk", "co.jp", "com.au", "co.nz", "com.br"`?
I don't know how critical this "Manager" is (what even is a "boost"?), but a web browser should absolutely have a proper list of TLDs!
Is this sarcasm? The public suffix list will give some ideas for omissions: https://publicsuffix.org/list/public_suffix_list.dat
What is wrong with such structure? How would you structure this code? Genuinely asking
This typically creates artifacts like each "Manager" owning too much of its implementation (not benefiting from or contributing to shared structures, such as a proper domain suffix list), inconsistency between different parts of the app (since different "Managers" don't necessarily share common patterns between them), and tons of hooks into random "Managers" all over the code.
To me, it feels a bit like an "emotionally driven" architecture, where the organization of the code is based on the list of features of the app, and not based on the implementation of those features. So rather than having, for example, a drag and drop component for the tabs to use, you would have, for example, a ReorderingTabsManager, and the implementation may behave differently than drag and drop in other places. So rather than factoring out code into modules for deduplication, you're making modules ("Managers") based on where they are in the product, and duplicating functionality across each module, to varying standards of completeness and/or quality.
Now I don't know if this project is quite that egregious, but it hopefully illustrates why I raise an eyebrow when I see a project architected this way.
> Open-source forever
> Transparent code, permissive license, and a community-driven roadmap.
Which I was going to mention is contradictory, because the point of permissive licenses is that it does not have to be Free forever. But the license is actually GPLv3 instead. So still contradictory wording, but the "permissive" is the part that isn't correct :-)
No, the point of permissive licenses is that third-party derivatives, which have no impact on the licensing of the original, don't have to be free ever, while the point of copyleft licenses is that they do.
Neither has any effect whatsoever on what future first-party licensing can be; a commitment to "open source forever" by the copyright owner is mostly orthogonal to what kind of open source license the copyright owner offers. (Now, its true that if the owner accepted contributions under a copyright license rather than under a CLA, they would likely have no practical choice but copyleft now and forever, but that's an issue of the license they accept on what they can offer, not an effect of what they offer itself.)
(OTOH, using "permissive" for GPLv3, a copyleft license, is actually contradictory, as you correctly note.)
Only the code that is yet to be released is not.
From an end user perspective BSD/MIT and GPLvX licences offer the same guarantees. It only is different if you are a contributor or if you intend to distribute modified or unmodified code yourself.
Nook is a well-known brand in consumer tech, ereaders aren't that far removed from Web browsers, Nooks have a Web browser, and B&N also has a "Nook for Web".
I'm interested in seeing all the new browsers that will come out in the next few years that are based off Ladybird. Or alternatively what Ladybird will enable in terms of customization. I think the days of Chromium/WebKit/Gecko forks are numbered.
I'm going out on a limb here and betting they're numbered in the high thousands minimum.
I find this sentence to be a little odd. Who are “they”?
* Fancy logo
* Blink engine so it's basically Chrome like every other alternative browser
* Mention of AI somewhere on the website
* Minimal UI clearly inspired by Safari
* Heartfelt promises of speed and privacy
* macOS only
https://blog.kagi.com/orion