Show HN: Privacy-preserving browser extension linking to HN discussion

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
  • hackernews-button

    Privacy-preserving Firefox extension linking to Hacker News discussion; built with Bloom filters and WebAssembly

  • Thanks for clearing that up, yes I'm not that familiar with Bloom filters, seems like an interesting and useful concept. It could probably (pun intended) be applied to many applications to increase privacy.

    I like the [1] Workflow file you've made, the comments really help with reading shell code. I'm also amazed you can query 4M entries everyday with BigQuery, I thought that might be fairly expensive to do right? Or is this below a free tier?

    [1] https://github.com/jstrieb/hackernews-button/actions/runs/61...

  • xorfilter

    Go library implementing binary fuse and xor filters (by FastFilter)

  • > Rather than determining if the current site has been submitted by querying the Firebase/Algolia APIs with every page you visit, the extension contains regularly-updating Bloom filters for all submitted HN stories to preserve user privacy.

    Nice!

    I built a pi-hole esque stub dns-resolver that uses Bloom Filters generated from hostfiles (60 MiB, 5M entries --> 2 MiB with 1% false positives) and it worked like a charm. At some point, I also looked into Xor Filters which are apparently even lighter and faster but couldn't find a JavaScript implementation [0].

    I; however, stopped using Bloom Filters because its immutability meant building it over and over again which was a pain. Inverted Bloom Filters might have been useful since they can be updated in-place [1]. Instead, I went for storing hostnames in a Finite State Automata [2], which while not as compact as Bloom Filters, could be updated in-place, are deterministic, and faster. Likely, not a fit for your use-case however.

    PinSketches might be a fit for accomplishing efficient set reconciliation.

    [0] https://github.com/FastFilter/xorfilter#implementations-of-x...

    [1] https://www.youtube.com/watch?v=eIs9nJ-JFvA

    [2] http://stevehanov.ca/blog/?id=115

    [3] https://github.com/sipa/minisketch

  • 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
  • newsit

    Chrome Extension for Hacker News and Reddit Links

  • Nice, so it periodically retrieves a list of HN posts and queries that list locally, so you're not telling algolia any specific site details.

    There are millions of posts on HN, how many submissions does it retrieve? Surely if you find an obscure site, it might not be in the local list.

    Maybe you could just always query many urls together, with only 1 of them being the real url you want. That would make it hard to track too.

    Also I made a similar extension, but it queries sources on every page load.

    (extension) https://newsit.benwinding.com/

    (source) https://github.com/benwinding/newsit

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