Thank you for your interest in contributing to ClearLoad! We welcome community contributions, bug reports, and suggestions to help improve website privacy and security auditing.
By contributing to this project, you agree to abide by our design and architectural guidelines.
To set up a local development environment:
- Prerequisites: Ensure you have Node.js (v24 or later recommended) and npm installed.
- Clone the Repository:
git clone https://github.com/nichu42/clearload.git cd clearload - Install Dependencies:
npm install
- Run the Application:
Open your browser and navigate to
npm start
http://localhost:3000.
ClearLoad has a strict set of design rules to ensure compliance with privacy laws and server security. Please adhere to these guidelines when making contributions:
ClearLoad is designed to be fully stateless and in-memory.
- Do not add database integrations (SQLite, PostgreSQL, etc.) or local file persistence for past scan reports.
- Audits must run on-demand and serve results in-memory.
Under GDPR and ePrivacy guidelines, connecting to any third-party domain prior to user consent leaks the visitor's IP address.
- Do not load external fonts, icons, or scripts from CDNs (e.g. Google Fonts or external FontAwesome servers).
- All frontend assets must be bundled or mapped locally via the
/vendor/endpoint inserver.jsusing local packages fromnode_modules.
- Connecting to any third-party domain prior to consent constitutes a compliance violation.
- All third-party connections in detail tables must be highlighted using the
marketingbadge color token (Red) and lead to aNON-COMPLIANToverall grading. - If a website loads a third-party Consent Management Platform (CMP) like Cookiebot or OneTrust prior to consent, it leaks visitor IP addresses to those CDNs. This scenario must be flagged specifically as the "Consent Banner IP Leak Paradox".
All rules for cookie definitions, CDNs, CMP mappings, tracking patterns, and widgets are located under dictionaries/ as JSON files.
- Every change to these files must be validated alphabetically and structurally.
- Domains and patterns must be lowercase, contain no leading/trailing whitespace, and have no duplicate entries.
- Before submitting a pull request, always run the validation script:
npm test
- There is intentionally no catch-all fallback route in
server.js. - The server only responds to static assets in
public/, vendor endpoints, and the API routes (GET /api/status,GET /api/dictionaries,POST /api/scan). All other routes must return a 404.
- Fork the repository and create your branch from
master. - Write clean code and keep style changes consistent with the existing codebase.
- Ensure the test suite passes:
npm test - Write a descriptive commit message and submit your PR. Never push release tags or bump version numbers in
package.jsonmanually; release bumps are managed by the maintainer.