Nyxt Browser

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • nyxt

    Nyxt - the hacker's browser.

  • It's actually not hard to support blocking without supporting webextensions in general. So you needn't worry that webextensions are not available if all you want is blocking.

    This is because blocking is a much easier implementation than general webextensions. Blocking can be implemented simply by intercepting requests and matching them against a block list. This is what I did when building a customized browser using Chrome remote debugging protocol (CRDP). I literally copied the regex blocklist from an open source ad blocker and implemented matching against network requests intercepted with the CRDP. Not all, but most renderers (QtWebEngine, Chrome, FF) provide the ability to intercept requests.

    And in fact if you took a look at the source of Nyxt before insinuating this project doesn't support blocking, there's a file called

    https://github.com/atlas-engineer/nyxt/blob/master/source/bl...

    which seems exactly to implement blocking from a list which could be exactly what you want. Always good to back up / research your claims before making banner comments that could misrepresent someone's work otherwise, and turn others off. You don't always have someone like me to do a little research, and your comment's been there for 2 hours so many people potentially interested might have been pushed away by it. So think on that before commenting like this next time! :)

    It's pretty crazy to me that this project is built in lisp.

    Examining the changelog you can also see the authors care about network request interception and ported their renderer to one that supports that feature among others:

    https://github.com/atlas-engineer/nyxt/blob/a314d8b88825ce11...

    So I'd say it's pretty likely that having blocking in this is either already there (behind a flag or blocklist or whatever), or is a cinch to implement. So don't worry about it!

    If you like this project don't be turned off because blocking is not here via webextensions, blocking is likely already there, or could be there in a cinch! :)

  • Surfingkeys

    Map your keys for web surfing, expand your browser with javascript and keyboard.

  • If you want a Chrome/Firefox extension that does some of these things and more, check out Surfingkeys:

    https://github.com/brookhong/Surfingkeys

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • tridactyl

    A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.

  • It also remindes me of Tridactyl[0], which promises to bring vim shortcuts to firefox. I tried it for a while but found that I just enjoy using the mouse more to explore the web, even though I'm mostly a keyboard-only user on the rest of my system.

    [0] https://github.com/tridactyl/tridactyl

  • blockit

    WebKitGTK adblock extension with Brave's Rust-based adblock engine for backend.

  • What about blockit[0]? It does implement some of the features you need. It's still a WIP, but I'm actively working on it and it uses the adblock-rust library from Brave, which is already able to compete with uBlock Origin.

    [0] https://github.com/dudik/blockit

  • adblock2privoxy

    Convert adblock config files to privoxy format

  • All you're asking is already possible with Privoxy[1], which is even stronger than a browser adblocker. It's a very old software: it used to be unmaintained and lacking some essential features, but thankfully the development resumed and is now fully fuctional again with the modern web.

    It can be used as an adblocker based on domain, request path, HTTP headers, etc, but it can do much more. It can redirect requests (for example, replacing assets from a CDN with a local cache), modify headers (stripping or making cookies temporary, changing user agent, etc.) and even rewrite the content of web pages using regular expressions or any external program.

    By default, it has only a basic configuration that blocks tracking and ads, but there are tools[2] that convert adblock rules to the Privoxy format, so it will be functionally equivalent to adblock.

    It acts as a CONNECT proxy, so you can run it locally or on a router and if combined with a NAT rule, it can also work transparently (obviously, you need to manually trust a CA certificate for https).

    [1]: https://www.privoxy.org/

    [2]: https://github.com/essandess/adblock2privoxy

  • uBlock

    uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.

  • My original criticism of DNS blocking in general was that it lacked context information, so it's just flat-out not acceptable for a Ublock Origin replacement to lack the ability to distinguish between a third-party request and a first-party request. That's critical functionality.

    Maybe I'm missing something here, but I've gone over the Actions and Template file documentation and I don't see the words "third-party" even mentioned anywhere.

    4) Privoxy seems to lack the ability to block iframes, or at most it seems to have the ability to strip them from the HTML itself. That's not enough, sometimes iframes get dynamically created after a page is loaded, and modifying the HTML is not enough to block that.

    5) I don't see any way to mark sites as trusted (probably related to point #3). So there doesn't seem to be a way for me to disable Privoxy when I'm on a specific site.

    6) And so on. Most of UBlock Origin's dynamic filtering syntax[1] seems to be unsupported. It's very possible I'm misreading the docs, or the docs are out of date or there's a trick to make it work, but if that's the case, that's also a problem, because then the docs need to be clearer.

    ----

    [0]: https://www.privoxy.org/user-manual/actions-file.html#AF-PAT...

    [1]: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax

  • lagrange

    A Beautiful Gemini Client

  • this is why i think Gemini is the most interesting thing happening in the web space today. the browser itself can't overcome the fundamental bloat and decay of the web as we know it today; the heavier and heavier js load, the ridiculous ad load that necessitates entire extensions just to escape from it; etc, etc.

    Gemini is a project that actually attacks the root of the problem by presenting an extremely stripped-down hypertext format and giving an alternative at the protocol level.

    i highly recommend checking out [Gemini](https://gemini.circumlunar.space/docs/faq.gmi) and the [Lagrange Browser](https://github.com/skyjake/lagrange) if you find this interesting.

    at least for my circle, there's a consensus that the web has calcified and become such a walled garden that we've reached a time where it makes sense to "start over" at a pretty base level; rather than trying to build on top of a platform that, by its nature, inevitably tends towards centralization and capitalization.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts