hapara.fail is dedicated to exposing the pervasive nature of student surveillance technology used in educational environments. We provide technical insights, practical tools, and resources to empower students and advocate for digital privacy. This repository contains the source code for the v2 website, built on Cloudflare Workers.
Live Site: https://www.hapara.fail
This iteration of hapara.fail delivers a fast, modern, and privacy-respecting platform featuring:
- Educational Content: In-depth blog posts and technical write-ups explaining how edtech surveillance works.
- Privacy Tools: Interactive tools designed to bypass certain restrictions or reveal hidden information (e.g., DNS Service, Google Form Unlocker, WiFi Password Extractor).
- Community Focus: Resources built by and for the student privacy community.
- Modern & Responsive Design: A sleek, consistent interface optimized for all devices, built with best practices.
- Edge Powered: Built entirely on Cloudflare Workers for global performance and reliability. Static assets are served via Workers Assets.
- Privacy First: No user tracking, no invasive analytics. We practice what we preach.
- Open Source: All code is available for review and contribution.
- Runtime: Cloudflare Workers - Serverless execution environment on the edge.
- Static Assets: Workers Assets - Optimized hosting for site assets.
- Routing & Logic: TypeScript - Type-safe code for the Worker.
- Development/Deployment: Wrangler 4 - The Cloudflare CLI tool.
- Core: HTML5, CSS3, Vanilla JavaScript (ES6+) - For the frontend structure, style, and interactivity.
βββ src/
β βββ site/ \# Static assets (HTML, CSS, JS, Images) served by Workers Assets
β β βββ css/
β β βββ js/
β β βββ images/
β β βββ \*.html
β βββ worker.ts \# Cloudflare Worker entry point (routing logic)
βββ package.json \# Project dependencies and scripts
βββ tsconfig.json \# TypeScript configuration
βββ wrangler.jsonc \# Cloudflare Workers configuration
βββ README.md \# This file
/- Homepage/about- About page/contribute- Contribute page/terms- Terms of Service/privacy- Privacy Policy/services/dns- DNS Service/tool/gfu- Google Form Unlocker Tool/tool/wifi- WiFi Password Extractor Tool/blog- Blog index/blog/[slug]- Individual blog posts (e.g.,/blog/dns,/blog/google-form-unlocker, etc.)
- Node.js (v18 or higher recommended)
- npm or yarn
- Clone the repository:
git clone https://github.com/hapara-fail/website.git cd website - Install dependencies:
npm install
- Start the local development server:
This command uses Wrangler to build the Worker and serve the site locally, typically at
npm run dev
http://127.0.0.1:8787.
Ensure you have Wrangler installed and configured (wrangler login).
npm run deployThis command will build the project and deploy it to the Cloudflare Workers environment specified in wrangler.jsonc.
Contributions are welcome! To ensure changes are processed quickly and correctly, please review our Contributing Guidelines before submitting.
If you have ideas for improvements, new tools, bug fixes, or blog post topics, please feel free to:
- Open an Issue on GitHub using our standardized templates.
- Submit a Pull Request with your proposed changes.
- Join our Discord server to discuss.
You can also find donation options here.
This project is licensed under the terms specified at www.hapara.fail/license.