10kbclub icon indicating copy to clipboard operation
10kbclub copied to clipboard

A curated collection of websites whose home pages do not exceed 10 KB compressed size

10 KB Club

This is the source code of 10kbclub.com.

Contents

  • Suggest New Website
  • Development Setup
  • Commit Guidelines
  • Additional Details
  • License
  • Support

Suggest New Website

Read the Club Rules first. If the new website satisfies the club rules, then create a new issue and provide the URL of the website.

Development Setup

To build and develop this project locally, perform the following steps:

  1. Install Node.

    On macOS, enter the following command if you have Homebrew:

    brew install node
    

    On Debian, Ubuntu, or another Debian-based Linux system, enter the following command:

    sudo apt-get install nodejs
    
  2. Clone this repository:

    git clone https://github.com/susam/10kbclub.git
    
  3. Initialize the repository with NPM node_modules:

    cd 10kbclub
    npm install
    
  4. Enter the following command to generate a metrics.json file with metrics data for each URL specified in js/urls.json:

    node src/refresh.js
    
  5. Enter the following command to render an updated index.html with using the data in metrics.json:

    node src/render.js
    
  6. Enter the following command to fetch a single URL and print its metrics:

    node src/metrics.js https://www.example.com/
    

    This script also accepts multiple URL arguments like this:

    node src/metrics.js https://www.example.com/ https://www.example.org/
    
  7. Now open index.html using a web browser to see the output.

Commit Guidelines

The following guidelines are followed in the commits made manually:

  1. No changes to index.html should be present in a manual commit. This file is updated and pushed to 10kbclub.com automatically during automated builds.

  2. The following command should pass without errors:

    make render
    
  3. Commit messages are written as per the guidelines in this document: Writing Good Commit Messages.

Additional Details

This section contains some additional details that might be useful in understanding this project.

  1. The project repository at https://github.com/susam/10kbclub is automatically published as https://10kbclub.com/ using GitHub Pages.

  2. The file index.html gets updated automatically once a day at 00:00:00 UTC as well as on every push via GitHub Actions. See live.yml for the GitHub Actions workflow. See https://github.com/susam/10kbclub/actions for the previous executions of the workflow.

  3. The links to discussion threads in js/urls.json are not exhaustive. Only the 5 earliest discussion threads that have 100 points or more have been picked from each forum.

License

This is free and open source software. You can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of it, under the terms of the MIT License. See LICENSE.md for details.

This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or implied. See LICENSE.md for details.

Support

To report bugs, suggest improvements, or ask questions, create issues.