FreeDom

Freedom

Freedom vs Firefox on lobste.rs

From the creators of the LazyOwn Redteam Framework: a free, open-source web browser written from scratch in pure C11, built on Zero Trust and Zero Knowledge. No telemetry, no backdoors, no implicit trust. What cannot be audited does not get in.

Freedom = Free (libre, open source) + DOM (and domain-level control). Freedom officially bans Google: its services cannot be implemented without telemetry, mandatory API keys or hidden solver workers.

Highlights

Quick start

git clone https://github.com/grisuno/FreeDom.git && cd FreeDom
sudo apt install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev   # plus the Dockerfile deps
make
./build/freedom                                           # GUI (Wayland)
./build/freedom --download-png=page.png https://lobste.rs  # headless render

Docker + noVNC (recommended for a first try):

sudo docker build -t freedom-browser .
sudo docker run -it --name freedom-test -p 8080:8080 --cap-drop=ALL \
  --security-opt no-new-privileges:true --memory="2g" freedom-browser
# then open http://localhost:8080/vnc.html

Full instructions are in docs/USAGE.md.

Freedom vs Firefox

Each pair below was rendered headless at 1000 px wide from the same frozen snapshot of the page. Both engines ran under the same rules: author CSS on, JavaScript off, no third-party network. Each pair shows the top of the page; the number is the make parity divergence (lower is better, 0 = identical geometry).

Hacker News (3.04) Wikipedia (3.57)
Hacker News Wikipedia
andreagrandi.it (3.01) Hugging Face (5.67)
andreagrandi.it Hugging Face
GitHub (2.85) Slashdot (2.67): still the hardest page
GitHub Slashdot
Discord (2.96) GitLab (2.48)
Discord GitLab

These images and scores are regenerated automatically by make fbench (tools/fbench.py) from build/parity/*.{fd,ff}.png. The measurement method is in spec/parity.md.

Render time to idle

How long each browser takes from the navigation request until the page is painted and quiet (median of 3). Freedom is measured in its real window (the GUI binary under a nested weston, the same load and paint path a user’s session takes, not a headless mode); Firefox from its own Performance Timeline (max(load event end, first contentful paint)), which is a lower bound of its true idle time. Same frozen pages, same policy (author CSS on, JavaScript off, no third-party network). Regenerated by make fbench; method in spec/parity.md.

| Page | Freedom (GUI) | Firefox | Freedom / Firefox | | :– | –: | –: | –: | | Wikipedia | 202 ms | 103 ms | 2.0x | | GitHub | 484 ms | 111 ms | 4.4x | | Slashdot | 120 ms | 50 ms | 2.4x |

Documentation

Document Contents
docs/USAGE.md Building, headless tools (--dump-*), Freebug console, shortcuts, JS allowlist, Tor/I2P, host filtering, video debugging, Docker, MCP server
docs/FEATURES.md Full feature list and the rendering-engine milestones in detail
docs/DEVELOPMENT.md Fuzzing, project structure, CI/CD, security, make targets
CLAUDE.md Working contract: principles, methodology (SDD + TDD), status and roadmap
spec/ One specification per module (inputs, errors, security guarantees)
spec/threat-model.md Assets, adversaries, trust boundaries and mitigations
SECURITY.md · CONTRIBUTING.md · CHANGELOG.md Reporting, contributing, history
KNOWLEDGE_BASE.md Generated architecture reference (see below)

License

AGPL-3.0. See LICENSE.

logo


For more information, visit the GitHub repository.

Python Shell Script License: AGPL v3

ko-fi

Ecosystem

Knowledge Base

This project has been analyzed by ReadMenator, a zero-token polyglot static analysis tool. Regenerate with pip install readmenator && readmenator . --rebuild. Analysis outputs:

Cache (.readmenator_cache/), packaged agent skills (.claude/skills/), and the GitHub wiki mirror are also produced on run/--rebuild.

AI agents: Read readmenator-wiki/index.md first for the big picture, then readmenator-agent/INDEX.md for grep-friendly lookup. Developers: Read KNOWLEDGE_BASE.md for full architecture reference, open readmenator-maps/index.html for the visual gallery.


Deployed with deploynator