Rebuild du site sur Astro : i18n multilingue, faits verifies, Docker, CI, tests
- Astro statique, EN par defaut + /fr/ + /nl/, detection langue navigateur - i18n par fichiers JSON, ajouter une langue = ajouter des traductions - Contenu original porte a l'identique (diff d'inventaire par langue) - Chronologie legislative corrigee sur sources primaires (PE, Conseil, votes) - Timeline 23 precedents + observatoire 35 items + annuaire 66 outils FOSS, chaque affirmation verifiee et sourcee - Zero requete tierce (teste), lisible JS coupe, axe WCAG AA x2 themes - Version offline monofichier par langue a chaque build - Docker multi-stage vers nginx + CSP stricte auto-generee - CI GitHub Actions (SHA-pinnees) + verification hebdo des liens - CONTRIBUTING : divulgation d'affiliation obligatoire, allowlist de domaines testee en CI
This commit is contained in:
@@ -1,52 +1,36 @@
|
||||
# Exit Chat Control
|
||||
|
||||
A free, trilingual (EN / FR / NL) guide to escape **Chat Control** and take back control of your digital privacy: encrypted messaging, email, VPN, DNS, 2FA, Linux, GrapheneOS, self-hosting, and more. Every tool is presented with **what it does**, **who it's for**, and **how to install it**.
|
||||
A free, multilingual field guide to escape **Chat Control** and take back control of your digital privacy: encrypted messaging, email, VPN, DNS, 2FA, Linux, GrapheneOS, self-hosting, and more. Every tool is presented with **what it does**, **who it's for**, and **how to install it**.
|
||||
|
||||
🔗 **Live site: https://exitchatcontrol.org**
|
||||
|
||||
## What is this?
|
||||
|
||||
On 9 July 2026, the European Parliament let "Chat Control" through, opening the door to the scanning of private messages across the EU. This project is a practical, no-nonsense answer: a single, self-contained web page that references privacy-respecting tools anyone can use to opt out of mass surveillance, from the everyday citizen to the whistleblower.
|
||||
In July 2026, the European Parliament let the "Chat Control" machinery advance — the amended text now sits with the Council, and the permanent version (CSAR, "Chat Control 2.0") is still being negotiated. This project is a practical, no-nonsense answer: a guide referencing privacy-respecting tools anyone can use to opt out of mass surveillance, from the everyday citizen to the whistleblower.
|
||||
|
||||
It is intentionally simple: no tracking, no dependencies, no build step. Just open `index.html`.
|
||||
Its promises, all enforced by tests:
|
||||
|
||||
## Repository
|
||||
- **Static and self-contained** — no tracker, no cookie, not a single request to a third-party domain.
|
||||
- **Readable with JavaScript disabled** (Tor Browser "safest" mode included) — scripts only power the theme, filters and checklist.
|
||||
- **Multilingual by design** — every language is a real prerendered route with correct `hreflang`; adding one means adding translation files, not touching code.
|
||||
- **Printable and mirrorable** — a single-file offline version ships with every build.
|
||||
|
||||
- **`index.html`** — the full guide (a standalone website).
|
||||
- **`article-presse.md`** — a ready-to-publish, actionable article (for a blog, a newsletter, or an X Article).
|
||||
- **`images/`** — screenshots used in the guide.
|
||||
## Stack
|
||||
|
||||
[Astro](https://astro.build) (static output, built-in i18n routing) · Tailwind CSS v4 (design tokens, `light-dark()` theming) · TypeScript strict · Vitest (content integrity, i18n parity, domain allowlist) · Playwright + axe (no-JS readability, zero-third-party-request guarantee, WCAG AA) · Docker (multi-stage build → nginx). Package manager: pnpm.
|
||||
|
||||
```sh
|
||||
pnpm install
|
||||
pnpm dev # develop on http://localhost:4321
|
||||
pnpm build # static site + offline artifact in dist/
|
||||
docker compose up preview # prod-like: nginx + security headers on :8080
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are very welcome. If you know a useful app that helps circumvent Chat Control or protect privacy, please **open a Pull Request** (or an Issue) to add it. **I review every submission personally.**
|
||||
Contributions are very welcome — a tool to add, a translation, a correction. **Read [`CONTRIBUTING.md`](./CONTRIBUTING.md) first**: it contains three simple rules for tools (traction, open source, privacy-respecting), a mandatory affiliation-disclosure policy, and a CI-enforced external-link policy. Large changes start with an issue, not a PR.
|
||||
|
||||
To be accepted, an app must meet **three simple rules**:
|
||||
|
||||
1. **It has traction** — an established, actively maintained project with a real user base, not an obscure or abandoned tool.
|
||||
2. **It is open source.**
|
||||
3. **It is privacy-respecting.**
|
||||
|
||||
That's it. If it ticks those three boxes and genuinely helps people escape surveillance, it belongs here.
|
||||
|
||||
**How to contribute:**
|
||||
- Fork the repo, add a tool card in `index.html` following the existing format (logo, "what it does", "why", "who it's for", install steps), then open a PR.
|
||||
- Not comfortable with code? Just open an Issue with the app's name, its link, and why it qualifies (traction + open source + privacy), and I'll add it.
|
||||
|
||||
## Roadmap
|
||||
|
||||
Right now, the goal is deliberately narrow: **reference useful apps to circumvent Chat Control**, on one clean, fast page.
|
||||
|
||||
Later, the site will be refactored to support more:
|
||||
|
||||
- Full written guides
|
||||
- Dedicated pages for each application
|
||||
- Step-by-step tutorials
|
||||
|
||||
This single-page version is the foundation the rest will be built on.
|
||||
|
||||
## Running it yourself
|
||||
|
||||
It's a static site (one `index.html`, plus an `images/` folder). Host it on any static host (Netlify, Vercel, Cloudflare Pages) or serve it behind a reverse proxy. No build, no dependencies.
|
||||
Not comfortable with code? Open an issue with the app's name, its link, and why it qualifies, and it will be added for you.
|
||||
|
||||
## License
|
||||
|
||||
@@ -54,4 +38,4 @@ See [`LICENSE`](./LICENSE).
|
||||
|
||||
---
|
||||
|
||||
*Privacy is a right, not a confession. To encrypt is to vote. To self-host is to disobey. To reclaim your tools is to become ungovernable.*
|
||||
_Privacy is a right, not a confession. To encrypt is to vote. To self-host is to disobey. To reclaim your tools is to become ungovernable._
|
||||
|
||||
Reference in New Issue
Block a user