zedeus/nitter
Productivity & UtilitiesA self-hostable alternative Twitter front-end that serves tweets without JavaScript or ads, for privacy-minded readers and instance operators.
What it does
Nitter is a free, open-source alternative front-end for Twitter/X, built in Nim and inspired by Invidious. All requests pass through the backend, so visitors never talk to Twitter directly and need no JavaScript; the front-end blocks ads and tracking by IP or browser fingerprint. Pages are lightweight (the README cites 60KB for a profile page versus 784KB on twitter.com) and timelines often load faster. It relies on Twitter's unofficial API, so no developer account is required.
The README's own framing explains the motivation: X requires JavaScript and a login for many users, and privacy-conscious readers end up exposing fingerprints anyway. Nitter gives them a readable, chronological view of public accounts instead. It targets people who want to browse without an account and operators willing to run an instance.
Legal status
The project is under pressure: X Corp. sent cease-and-desist letters on 24 August 2026 demanding permanent takedown of Nitter instances and the repository. An update dated 10 October 2026 says the maintainer is seeking funding and legal help, with details on nitter.net. HN coverage includes the initial cease-and-desist discussion and a later resumption after legal advice. Treat instance availability and upstream API access as unstable.
Quick start with Docker
Prerequisites: Docker and a Redis (or Valkey) server. Redis is used for caching; running it with the default config on localhost is fine, and Valkey is recommended since Redis is no longer open source.
- Download the example config (or copy it from a clone) and save it as
nitter.conf:
cp nitter.example.conf nitter.conf
- Edit
nitter.confto set the hostname, port, HMAC key,https(must be correct for cookies) and Redis connection info. - Start Redis separately, then launch the container, mounting the config from the directory where you run the command:
docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host zedeus/nitter:latest
The published image is multi-arch and runs natively on amd64 and arm64. To run Nitter and Redis together, change redisHost to nitter-redis in nitter.conf and use docker-compose up -d.
Building from source and other options
Building needs a Nim toolchain, libpcre, libsass and Redis/Valkey. On Debian/Ubuntu, libsass-dev covers the Sass dependency. The build sequence in the README is nimble -l build -d:danger --mm:refc, then nimble -l scss and nimble -l md, followed by cp nitter.example.conf nitter.conf. Run the binary with ./nitter. The README recommends putting it behind Nginx or Apache for security and performance, and provides a systemd unit and journalctl -u nitter.service for logs. There is no structured logging yet, so run under systemd or check docker logs.
Constraints
Nitter depends on Twitter's unofficial API; access behavior and account availability can change without notice. RSS feeds are instance-specific and often disabled due to abuse. The software is AGPLv3 and does not permit proprietary instances. Cookies require a correct https setting. Docker mounts silently create a directory when a file is missing, which causes a not a directory failure, so create the config first. Browsing third-party instances is subject to their operators' policies.
HotRepo's take
There is no HotRepo rank history for this repository, but the discussion record is unusually strong: the August 2026 cease-and-desist thread drew 1,214 points and 1,352 comments, and the September 2026 resumption thread 930 points and 410 comments. Those threads describe a concrete dependence on Nitter-style front-ends, with readers saying they only re-engaged with X content through such a door. The 2021 launch thread (274 points) and 2023 recovery thread (414 points) show the project has periodically returned to relevance rather than grown steadily. The technical value is straightforward: a small, self-hostable, JavaScript-free reader. The main risk is not code quality but continued legal and upstream API pressure on whoever runs it.
Written by AI from the project's README, updated . The project's own docs are the source of truth.