mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Self-Hostedevaluationupdated 27 Aug 2026

nitter review

Nitter is a self-hosted, privacy-focused front end for reading X without browser JavaScript, ads, or a direct client connection to X. The repository is now archived after its README reported cease-and-desist letters from X Corp on August 24, 2026, so it is no longer a sensible new deployment.

+412 / 4dstars / 7d
Verdict

Our Nitter tools run installed 47 Python packages and found 0 tests, while the full repository was archived after a stated August 24, 2026 takedown demand. Do not start a new public Nitter deployment. The source remains useful for research and for operators winding down existing instances, but the legal notice, archive status, and reported platform rate limits outweigh its once-attractive privacy design.

We ran it

Lab card: what happened when we ran nitterScreenshot of nitter (nitter.net)
Install✓ · 18s47 packages · 85 MB
Build✓ · 2s
Tests✗ · 6s0 passed · 0 failed of 0 (pytest)
Known vulns0(pip-audit)
Repo175 files~3,692 lines of source · 2.1 MB · 2 CI workflows · tests dir

Answers from our run

Does nitter build from source?

Dependencies installed in 18 seconds (47 packages), and the build succeeded in 2 seconds. We cloned commit e4aefbc into a clean Debian container with 3 CPUs and no project-specific setup.

Do nitter's tests pass?

Yes: 0 of 0 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does nitter have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use nitter?

Anyone choosing a supported X reader for a new service: the repository is archived, and its README says X Corp demanded permanent takedown of the project and instances.

What are the alternatives to nitter?

RSSHub, FxEmbed, yt-dlp. Our Nitter tools run installed 47 Python packages and found 0 tests, while the full repository was archived after a stated August 24, 2026 takedown demand.

Setup1/5Tools installed, but 0 tests ran and the full service was untested
Docs3/5Detailed old setup guide, now paired with a takedown notice
Community2/513,637 stars and recent reports, but the repository is archived
Maturity1/5Long-lived code is archived and public instances are reported broken

Discussed on

  1. hnNitter and XCancel receive cease and desist notices1,210 points
  2. hnNitter is working again414 points
  3. hnNitter: Alternative Twitter Front-End274 points
  4. hnNitter.net has disappeared217 points
  5. hnNitter: Alternative Twitter Front-End195 points

Who it’s for

Researchers studying how a mature alternative front end handled privacy, RSS, media, and responsive pages.
Existing Nitter operators who need the archived source to understand or retire an installation.
Developers examining a Nim web application backed by Redis or Valkey.

Who it’s NOT for

Anyone choosing a supported X reader for a new service: the repository is archived, and its README says X Corp demanded permanent takedown of the project and instances.
Users who need a dependable public instance: issue 1442 reports every listed instance returning a rate-limit error after the takedown demand.
Operators expecting one self-contained process: the README requires Redis or Valkey, native libraries, configuration, and a reverse proxy for the source install.
ARMHF operators who cannot verify timestamps: issue 1420 reports 2026 tweet dates rendering as 1970 because of 32-bit integer handling.
Hosts planning a closed proprietary instance: the README states that the AGPLv3 project permits no proprietary instances.

Setup reality

Our sandbox checked the Python project under tools/ at commit e4aefbc. It installed 47 packages in 18 seconds and used 85 MB, then built in 2 seconds. Pytest exited 5 after 6 seconds with 0 passed and 0 failed of 0; the log only said no tests ran in 0.00s.

The full README describes a separate Nim application needing libpcre, libsass, Redis or Valkey, nitter.conf, an HMAC key, correct HTTPS settings, and a reverse proxy. Its Docker route still requires a mounted config and Redis.

Our measured commands did not validate that full Nim service or an X session. The repository is archived after an August 24, 2026 takedown demand, and issue 1442 reports public instances rate limited. Pip-audit found 0 known vulnerabilities in the measured Python environment.

The repository is archived after an August 2026 takedown demand

Nitter gave people a way to read X through a server that fetched the site on their behalf. Pages used no client-side JavaScript or ads, the browser did not contact X directly, and RSS feeds made accounts readable outside X's own interface. The idea was concrete: reduce browser tracking and avoid requiring every reader to hold an X account. GitHub still recorded 13,637 stars when we fetched the archived project. It also gave self-hosters themes, responsive pages, and media handling under the AGPLv3 license.

That product case is now subordinate to the repository status. The README says X Corp sent cease-and-desist letters on August 24, 2026, demanding permanent removal of Nitter instances and the repository. GitHub marks the repository archived, and the releases API returns no latest release. A push on August 26 shows that the notice and donation text were still being edited, but archive status means readers should not interpret recent repository activity as continued product support.

Public instances were reported rate limited on August 25

Issue 1442 says all listed public instances were returning Instance has been rate limited. after the legal notice. GitHub counted 156 open issues and pull requests, including that report. It does not prove every private installation fails in every network, yet it cuts directly against the normal reason to choose Nitter: dependable account-free access to X. A front end can be elegant and still be unusable when the upstream platform refuses the traffic it depends on.

The architecture always carried that dependency. Nitter used X's unofficial API and did not require a developer account, according to the README. Its backend shielded the reader's browser, but the server still had to obtain sessions and make requests that X could identify or restrict. The project documented account creation and archiving as roadmap hopes, not shipped capabilities. There is no independent social network or stored copy underneath the interface.

What happened when we ran it

Our sandbox exercised the Python project under tools/ at commit e4aefbc. Installation succeeded in 18 seconds, added 47 packages, and occupied 85 MB. The measured build passed in 2 seconds. Pip-audit reported 0 known vulnerabilities in that installed Python environment. Those are modest mechanics for the tooling slice, but they do not establish that the Nim web service can still retrieve X content.

Pytest exited with code 5 after 6 seconds. It reported 0 passed and 0 failed out of 0, with the final line no tests ran in 0.00s. The log gives no cause beyond collection producing no tests, so we will not assign one. The repository contains a tests directory and 2 CI workflow files, while the measured tools project exposed no Dockerfile. A green install and build cannot compensate for a test command that checks nothing.

The full service asks for more than the 85 MB tools install

The README's source route describes a Nim application with libpcre, libsass, and Redis or Valkey. Operators compile the application, SCSS, and Markdown, copy nitter.example.conf, and set the hostname, port, HMAC key, HTTPS behavior, and cache connection. It recommends putting the process behind Nginx or Apache. That is normal work for a small self-hosted web service, but none of it was covered by our Python tools measurement.

Docker does not remove the service dependencies. The documented container still needs nitter.conf, and the compose route adds Redis as a second container. The README warns that a missing bind-mounted file becomes a directory and makes the container fail. Logging is also basic: errors go to standard output, with journalctl or Docker logs as the inspection route. There is no hosted control plane to diagnose a broken upstream session for you.

A 1970 timestamp bug remains relevant to ARMHF hosts

Issue 1420 reports that an X post dated July 4, 2026 appeared as January 7, 1970 on ARMHF. The report attributes the result to 32-bit integer overflow and includes a proposed change to use wider integer handling. We did not reproduce it, but the issue is specific enough to make timestamp verification mandatory for a 32-bit deployment. Archived code also means users cannot assume a reported fix will land upstream.

Nitter's privacy model was easy to understand and its plain HTML approach remains worth studying. That does not make it a responsible new service choice in August 2026. The archived repository, explicit takedown notice, 0 collected tests in our measured tools run, and rate-limit report all point in the same direction: preserve the code for study or retirement work, and choose a supported path for any live user need.

Alternatives

ProjectWhat it isPick it when
RSSHub gh↗A self-hosted RSS generator with routes for many sites and services.pick this instead when your goal is feed generation across many sources rather than a full X web interface.
FxEmbedA service focused on making X and Bluesky links embed properly in chat apps.pick this instead when you need richer link previews in Discord or Telegram rather than private timeline browsing.
yt-dlp gh↗A command-line downloader that supports media from many websites.pick this instead when the job is obtaining permitted media rather than operating an alternative social front end.

What people are saying

  1. [github-trending] zedeus/nitter
  2. [hackernews] Nitter project received cease and desist

Sources

  1. Nitter repository and README
  2. Measured commit e4aefbc
  3. Issue 1442: public instances rate limited
  4. Issue 1420: ARMHF date handling

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →