Wow, thanks for the front page, HN! I'm thrilled you're enjoying this little "web art" project.
The idea was to deconstruct Hacker News and view it through a different lens -- not time or score, but the fundamental, dynamic of prime numbers.
It's "useless", perhaps, but I find it fun!
Few tech details for those curious:
- Data Source: The public Google BigQuery dataset (bigquery-public-data.hacker_news.full). I did not scrape HN.
- ETL: A Node.js script ran a Sieve of Eratosthenes up to the current max ID (~46M) to find all the primes. It then processed the ~7GB of raw JSON, extracted the ~2.7M prime items, and packed them into sharded SQLite databases. The final repo size is only ~500MB.
- Frontend: This is a fully static site with no server backend. It uses sqlite3.wasm to load the specific database shard for the page you're viewing (e.g., shard_0.sqlite for the first 50k primes) and queries it directly in your browser.
- The Logo: The "Y" logo has been replaced with the Riemann Zeta function (ζ), which is deeply connected to the distribution of prime numbers.
- The "Warp Drive" / Live Mode: you might notice the static data is a few months old - that's a known lag in the BigQuery mirror.
To solve this, if you go to the very last page, the site switches to "Live Mode." Your browser fetches the current maxitem from the live HN API and starts mining for new primes client-side, bridging the gap between the static past and the live present. :)
The idea was to deconstruct Hacker News and view it through a different lens -- not time or score, but the fundamental, dynamic of prime numbers.
It's "useless", perhaps, but I find it fun!
Few tech details for those curious:
- Data Source: The public Google BigQuery dataset (bigquery-public-data.hacker_news.full). I did not scrape HN.
- ETL: A Node.js script ran a Sieve of Eratosthenes up to the current max ID (~46M) to find all the primes. It then processed the ~7GB of raw JSON, extracted the ~2.7M prime items, and packed them into sharded SQLite databases. The final repo size is only ~500MB.
- Frontend: This is a fully static site with no server backend. It uses sqlite3.wasm to load the specific database shard for the page you're viewing (e.g., shard_0.sqlite for the first 50k primes) and queries it directly in your browser.
- The Logo: The "Y" logo has been replaced with the Riemann Zeta function (ζ), which is deeply connected to the distribution of prime numbers.
- The "Warp Drive" / Live Mode: you might notice the static data is a few months old - that's a known lag in the BigQuery mirror.
To solve this, if you go to the very last page, the site switches to "Live Mode." Your browser fetches the current maxitem from the live HN API and starts mining for new primes client-side, bridging the gap between the static past and the live present. :)
Source code is here if you sho¨ld like to see the sausage being made: https://github.com/DOSAYGO-STUDIO/prime-news
Happy to answer any questions