Knows.nl

Technical website intelligence, screenshots, and crawl history.

About This Project

This project is built for fun and learning. The main goal is to learn how to crawl, store, and analyze large datasets in a practical setup with MySQL and S3-compatible storage. Parts of it are "vibe-coded". Years ago there was a handcrafted PHP version; it worked, but it was much less structured and harder/slower to maintain than this rebuild. I know this contributes to the noise on the internet. That’s fine, and I’m not sorry but you can always remove your site.

Why It Exists

  • Learn scalable crawling patterns.
  • Practice data modeling and deduplication.
  • Measure storage growth over time.
  • Keep architecture stateless for container environments.
  • Testing ZFS compression and dedup.
  • All on slow homelab hardware, so it has to be very efficient.

Current Dataset

URLs2230498
Fetches2459171
Screenshots1092382
Site details2157331

Storage Footprint

MySQL total size9.1 GiB (9783689216 bytes)
S3 total size2.4 GiB (2583086480 bytes)
S3 total files111496
S3 snapshot updated2026-07-15 02:24:57

S3 Breakdown

PrefixFilesBytesReadable
screenshots/ 111496 2583086480 2.4 GiB

Top MySQL Tables By Size

TableRows (est.)Size
site_enrichments 2088463 4.9 GiB
fetches 2382050 940.8 MiB
urls 2308801 783.4 MiB
links 2489761 470.5 MiB
site_profiles 1971292 465.9 MiB
domain_scores 1983221 413.1 MiB
render_snapshots 926913 286.9 MiB
change_events 1761985 280.6 MiB
fetch_observations 980789 260.9 MiB
screenshots 988866 260.8 MiB

`Rows (est.)` comes from MySQL metadata and is approximate.