⏱️ Lectura: 9 min
On August 24, 2026, X Corp sent cease-and-desist letters demanding the permanent shutdown of all Nitter instances and the removal of its GitHub repository. Twelve days later, the project responded with a single line in its README: after receiving legal advice, Nitter remains active and promises more details soon.
📑 En este artículo
Nitter is an alternative, open-source front-end for Twitter/X, designed for browsing without JavaScript, tracking, or ads. The confirmation came directly in commit 1428b4c of the official repository, signed by its creator, zedeus.
TL;DR
- On August 24, 2026, X Corp sent cease-and-desist letters to zedeus demanding that Nitter be shut down and its GitHub repository deleted.
- After receiving legal advice, the project confirmed that Nitter remains active; it promised more details soon.
- The announcement was published in the README, in commit 1428b4c2b4246f92a7e5b2673438e5fb39fcc4a3 of the official repository.
- Nitter works without JavaScript and without ads; the browser never talks directly to Twitter/X’s servers.
- For the @nim_lang profile, the Nitter page weighs 60 KB compared to 784 KB for twitter.com.
- The project is licensed under AGPLv3, which explicitly prohibits closed, proprietary instances.
- The same commit added Ko-fi to the donation options, alongside GitHub Sponsors, Patreon, and Liberapay.
- The roadmap marks embed support as resolved and leaves account timelines and tweet archiving as pending.
What happened
A cease and desist is a legal letter demanding that an activity stop under threat of a lawsuit; it isn’t a lawsuit itself, but it’s usually the step that precedes one. According to the commit that updated Nitter’s README, X Corp sent these letters on August 24, 2026, requesting two specific things: that all public Nitter instances be shut down and that the project’s GitHub repository be deleted.
The original README only described the threat. The later update, the one this article analyzes, adds a short but decisive note: “Following legal advice, the Nitter project will continue”. It’s not yet clear what legal argument supports that decision, or whether there was direct negotiation with X Corp. The project itself indicated it will share more information in the coming days.
Context and history
Nitter was born in 2019 as a lightweight alternative to Twitter, directly inspired by Invidious, the open front-end for YouTube. The core idea is the same in both cases: an intermediary server that queries the original service’s API and delivers the user a clean page, free of tracking scripts and ads.
For years, Nitter relied on guest tokens from Twitter’s unofficial API, a mechanism intended for the mobile app that didn’t require registering a developer account. That access grew more fragile starting in 2023, when Twitter (by then rebranded as X) began restricting free use of its API. In 2024, a large share of public Nitter instances stopped responding when X blocked the token flow they depended on, and only a handful of volunteer-maintained instances managed to survive through constant patching.
The August 2026 episode differs in one important respect: the threat targets not just individual instances, something that had already happened before, but the repository and the project itself. It’s the first time X Corp has tried to shut Nitter down at its source rather than just its public copies.
Technical details and performance
What makes Nitter more than a simple mirror of Twitter/X is its architecture: the user’s browser never connects to X’s servers, only to the Nitter instance, which acts as an intermediary. This has direct consequences for privacy and page weight.
- No mandatory JavaScript: the interface is generated as server-side HTML.
- Zero ads: there’s no integration with X’s advertising network.
- Client isolation: all requests go through Nitter’s backend, so X never sees the end user’s IP or browser fingerprint.
- Unofficial API: it uses the same access as Twitter’s mobile app, with no need for a developer account.
- Reduced weight: for the @nim_lang profile, Nitter weighs 60 KB compared to the 784 KB loaded by the official twitter.com version, according to figures published in the repository itself.
- RSS per instance: each instance can expose RSS feeds, though many disable them due to scraping abuse.
- AGPLv3 license: requires that any fork, even one running as a web service, publish its source code. AGPLv3 is precisely the license chosen to prevent closed, proprietary instances.
Here’s what a typical request flow looks like: the client never touches X’s servers, only the Nitter instance.
flowchart TD
A["User's browser"] --> B["Nitter instance"]
B --> C["Unofficial Twitter/X API"]
B --> D[("Redis cache")]
subgraph Backend
B
D
end
| Option | When to use it | Advantage | Limitation |
|---|---|---|---|
| Public Nitter instance | Quick lookup without installing anything | Zero configuration | Depends on someone else keeping it running |
| Self-hosted instance | Frequent use or for a team | Full control and dedicated availability | Requires maintenance and exposes the operator to legal risk |
| Official Twitter/X | When you need to interact (post, comment) | Full functionality | JavaScript, ads, and tracking enabled |
How to try it
Nitter can be spun up locally with Docker Compose in minutes. This is the minimal configuration, with Redis as the required cache:
version: "3.8"
services:
nitter:
image: zedeus/nitter:latest
ports:
- "8080:8080"
volumes:
- ./nitter.conf:/src/nitter.conf:ro
depends_on:
- nitter-redis
restart: unless-stopped
nitter-redis:
image: redis:7-alpine
command: redis-server --save '' --appendonly no
restart: unless-stopped
With that up, docker compose up -d brings the service up at localhost:8080. The next step is to write the nitter.conf file that container mounts as read-only, containing the instance’s actual configuration:
[Server]
address = "0.0.0.0"
port = 8080
httpMaxConnections = 100
staticDir = "./public"
title = "my-instance"
hostname = "nitter.midominio.dev"
https = true
[Cache]
redisHost = "nitter-redis"
redisPort = 6379
listMinutes = 240
rssMinutes = 10
[Config]
hmacKey = "change-to-a-key-generated-with-openssl"
enableRSS = true
enableDebug = false
[Preferences]
replaceTwitter = "nitter.midominio.dev"
proxyVideos = true
The hmacKey value should be generated with openssl rand -hex 32 before exposing the instance to the internet. On Windows, macOS, and Linux the workflow is identical since everything runs inside containers: only the Docker binary changes, Docker Desktop (Windows/macOS) or Docker Engine (Linux).
To confirm the instance is responding correctly, just request the HTTP header of the status page:
curl -sI https://nitter.midominio.dev/about | head -n 1
# HTTP/1.1 200 OK confirms the instance is active
⚠️ Heads up: operating a public Nitter instance involves scraping X’s unofficial API, which can carry legal consequences depending on the jurisdiction. Check your local terms of service before exposing it to the internet.
Impact and analysis
The continuity announcement is good news for journalists, researchers, and users who rely on Nitter to access public X content without creating an account or being exposed to tracking. It’s also a signal for the rest of the alternative front-end ecosystem (for YouTube, Reddit, Instagram): a legal threat aimed directly at the repository, not just at instances, sets a precedent that other similar projects will be watching closely.
The project’s AGPLv3 license plays a key role here. Even if X Corp managed to force the shutdown of the main GitHub repository, any existing fork retains the legal right to keep publishing the code, as long as it keeps the same license. It’s a structural protection, not a guarantee that there will be no consequences for zedeus as an individual.
💭 Key point: the legal threat doesn’t change the underlying technical dependency: Nitter keeps working because X hasn’t fully blocked the access it uses, not because it has an agreement with the company.
That’s the honest limitation of this story: the project’s legal continuity doesn’t solve the underlying technical problem. Nitter depends on an undocumented API that X can shut down at any time, as partly already happened in 2024. Winning the legal battle doesn’t prevent a unilateral technical decision by X from taking instances down overnight again.
What’s next
The README itself promises “more details soon,” with no specific date. What to watch in the coming weeks: whether zedeus publishes the legal argument used to resist the cease and desist, whether X Corp escalates to a formal lawsuit, and whether the project announces operational changes (for example, moving the repository to another forge or changing how public instances are distributed). The commit also added Ko-fi to the existing donation options (GitHub Sponsors, Patreon, Liberapay), suggesting that funding a potential legal defense is part of the conversation.
💡 Tip: if you want to support the project, the four active options today are GitHub Sponsors, Patreon, Liberapay, and Ko-fi, all linked from the official repository.
📖 Summary on Telegram: View summary
Try it yourself: clone the repository with git clone https://github.com/zedeus/nitter and spin up your own instance today with the docker-compose above.
Frequently Asked Questions
What exactly is a cease and desist?
It’s a legal letter in which one party demands that another stop a specific activity under threat of legal action. It doesn’t automatically mean a lawsuit, but it’s usually the step that comes before one if there’s no response.
Is Nitter still working today?
Yes. According to the official README updated on August 24, 2026, the project remains active after receiving legal advice, although it hasn’t yet published the full details of that decision.
Is it legal to use a public Nitter instance?
It depends on the jurisdiction and the terms of service that apply to each end user. Using an instance as a reader is legally different from operating an instance that constantly scrapes X’s API.
Do I need a Twitter/X account to use Nitter?
No. Nitter uses the unofficial API that Twitter/X’s mobile app exposes without requiring developer authentication, so no account or personal token is needed.
How do I donate to support the project?
The repository lists four active options: GitHub Sponsors, Patreon, Liberapay, and, as of this commit, Ko-fi.
What if I want to set up my own instance?
You can follow this article’s Docker Compose guide. Keep the legal notice in mind: operating a public instance involves continuous scraping of X, with the risk that carries depending on your jurisdiction.
References
- Commit 1428b4c in zedeus/nitter: README update confirming the project’s continuity after the cease and desist.
- Official Nitter repository: source code, features, and the project’s roadmap.
- Nitter embeds guide: documentation for the embeds feature mentioned in the roadmap.
- Invidious: the project that inspired Nitter’s architecture for YouTube.
- AGPLv3 License: the terms under which Nitter is distributed.
📱 Do you like this content? Follow @programacion on Telegram for daily tech content in Spanish: quick summaries, fresh content every day.
Imagen destacada: Foto de Richy Great en Unsplash
0 Comments