Remix.run Logo
jstrieb 3 days ago

This post recommends the Newsit extension to view Hacker News discussion associated with a page.

In the same vein, a few years ago, I made a Firefox extension for users who want a privacy-preserving way to see if pages have associated HN discussion:

https://addons.mozilla.org/en-US/firefox/addon/hacker-news-d...

Most other extensions probably hit an external API (such as Algolia) to check submission status, which means they send every page you visit to that API. Instead, my extension uses Bloom filters compiled from every link ever submitted (updated daily from the Hacker News BigQuery dataset) to check the current page's submission status. By using Bloom filters, my extension only hits the API when you click the button to view the discussion.

Source code here:

https://github.com/jstrieb/hackernews-button

Feel free to pull the Bloom filters from the "Releases" section of that repo on GitHub to use in other projects if you'd like!

rahimnathwani 3 days ago | parent | next [-]

I use Chrome as my main browser and was going to ask if there was a Chrome version. I was sad to see there's a technical reason you couldn't make it work :(

https://github.com/jstrieb/hackernews-button/issues/1

jstrieb 3 days ago | parent [-]

Probably worth me revisiting! Web tech has changed a bit since I last investigated this in 2021, and I'm also not sure if I considered options like IndexedDB at the time.

rdmuser 3 days ago | parent | prev [-]

Personally I use this bookmarklet to check if sites have been submitted since I like to minimize extensions:

    javascript:void(location.href="https://hn.algolia.com/?query="+location.href)
foresto 3 days ago | parent | next [-]

That sends every page you check to Algolia's API, which is what jstrieb's extension is designed to avoid.

rdmuser 3 days ago | parent | next [-]

Oh totally I wasn't suggesting that as a direct replacement but more an alternate approach and that privacy factor is important to consider. Apologies if that wasn't clear. Personally I don't check that often so the occasional connection on click isn't serious vs the complexities of adding another extension even if it's a neat one.

I think you may be overlooking some nuance related to that extension vs my solution though. Extensions like that check every page you visit whereas my approach only checks on click so there is a much greater need for privacy solutions with extensions like that since they would normally be sending out your entire browser history in real time to the api.

Jstriebs solution seems pretty neat though and it's definitely something I'll keep in mind for similar use cases even if I skip using it to minimize my extension usage. I was happy to hear about it and read how it worked.

foresto 3 days ago | parent [-]

> I think you may be overlooking some nuance related to that extension vs my solution though. Extensions like that check every page you visit whereas my approach only checks on click so there is a much greater need for privacy solutions with extensions like that since they would normally be sending out your entire browser history in real time to the api.

I'm not overlooking; this extension doesn't do that. That's what's so cool about the Bloom filter approach: all the checks can be done locally, never revealing your interests to a third party. So if the metric is privacy, it's superior to the bookmarklet, even if it checks every page you visit in real time.

(In principle, that is. I haven't reviewed the implementation. :)

KTibow 3 days ago | parent | prev [-]

It sounds like both the extension and bookmarklet don't send every page you visit but do send every page you check.

1718627440 2 days ago | parent | prev [-]

Can't you use https://news.ycombinator.com/from?site=DOMAIN and not send to a third-party?