[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70824":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},70824,"nitter","zedeus\u002Fnitter","zedeus","Alternative Twitter front-end","https:\u002F\u002Fnitter.net",null,"Nim",13091,731,142,155,0,28,55,172,84,118.59,"GNU Affero General Public License v3.0",false,"master",true,[27,28,29,30,31],"nim","privacy","self-hosted","twitter","x","2026-06-12 04:00:57","# Nitter\n\n[![Test Matrix](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fworkflows\u002FTests\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Factions\u002Fworkflows\u002Frun-tests.yml)\n[![Test Matrix](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fworkflows\u002FDocker\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Factions\u002Fworkflows\u002Fbuild-docker.yml)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fzedeus\u002Fnitter?style=flat)](#license)\n\n> [!NOTE]\n> Running a Nitter instance now requires real accounts, since Twitter removed the previous methods. \\\n> This does not affect users. \\\n> For instructions on how to obtain session tokens, see [Creating session tokens](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fwiki\u002FCreating-session-tokens).\n\nA free and open source alternative Twitter front-end focused on privacy and\nperformance. \\\nInspired by the [Invidious](https:\u002F\u002Fgithub.com\u002Fiv-org\u002Finvidious) project.\n\n- No JavaScript or ads\n- All requests go through the backend, client never talks to Twitter\n- Prevents Twitter from tracking your IP or JavaScript fingerprint\n- Uses Twitter's unofficial API (no developer account required)\n- Lightweight (for [@nim_lang](https:\u002F\u002Fnitter.net\u002Fnim_lang), 60KB vs 784KB from twitter.com)\n- RSS feeds\n- Themes\n- Mobile support (responsive design)\n- AGPLv3 licensed, no proprietary instances permitted\n\n\u003Cdetails>\n\u003Csummary>Donations\u003C\u002Fsummary>\nLiberapay: https:\u002F\u002Fliberapay.com\u002Fzedeus\u003Cbr>\nPatreon: https:\u002F\u002Fpatreon.com\u002Fnitter\u003Cbr>\nBTC: bc1qpqpzjkcpgluhzf7x9yqe7jfe8gpfm5v08mdr55\u003Cbr>\nETH: 0x24a0DB59A923B588c7A5EBd0dBDFDD1bCe9c4460\u003Cbr>\nXMR: 42hKayRoEAw4D6G6t8mQHPJHQcXqofjFuVfavqKeNMNUZfeJLJAcNU19i1bGdDvcdN6romiSscWGWJCczFLe9RFhM3d1zpL\u003Cbr>\nSOL: ANsyGNXFo6osuFwr1YnUqif2RdoYRhc27WdyQNmmETSW\u003Cbr>\nZEC: u1vndfqtzyy6qkzhkapxelel7ams38wmfeccu3fdpy2wkuc4erxyjm8ncjhnyg747x6t0kf0faqhh2hxyplgaum08d2wnj4n7cyu9s6zhxkqw2aef4hgd4s6vh5hpqvfken98rg80kgtgn64ff70djy7s8f839z00hwhuzlcggvefhdlyszkvwy3c7yw623vw3rvar6q6evd3xcvveypt\n\u003C\u002Fdetails>\n\n## Roadmap\n\n- Embeds\n- Account system with timeline support\n- Archiving tweets\u002Fprofiles\n- Developer API\n\n## Resources\n\nThe wiki contains\n[a list of instances](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fwiki\u002FInstances) and\n[browser extensions](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fwiki\u002FExtensions)\nmaintained by the community.\n\n## Why?\n\nIt's impossible to use Twitter without JavaScript enabled, and as of 2024 you\nneed to sign up. For privacy-minded folks, preventing JavaScript analytics and\nIP-based tracking is important, but apart from using a VPN and uBlock\u002FuMatrix,\nit's impossible. Despite being behind a VPN and using heavy-duty adblockers,\nyou can get accurately tracked with your [browser's\nfingerprint](https:\u002F\u002Frestoreprivacy.com\u002Fbrowser-fingerprinting\u002F), [no\nJavaScript required](https:\u002F\u002Fnoscriptfingerprint.com\u002F). This all became\nparticularly important after Twitter [removed the\nability](https:\u002F\u002Fwww.eff.org\u002Fdeeplinks\u002F2020\u002F04\u002Ftwitter-removes-privacy-option-and-shows-why-we-need-strong-privacy-laws)\nfor users to control whether their data gets sent to advertisers.\n\nUsing an instance of Nitter (hosted on a VPS for example), you can browse\nTwitter without JavaScript while retaining your privacy. In addition to\nrespecting your privacy, Nitter is on average around 15 times lighter than\nTwitter, and in most cases serves pages faster (eg. timelines load 2-4x faster).\n\nIn the future a simple account system will be added that lets you follow Twitter\nusers, allowing you to have a clean chronological timeline without needing a\nTwitter account.\n\n## Screenshot\n\n![nitter](\u002Fscreenshot.png)\n\n## Installation\n\n### Dependencies\n\n- libpcre\n- libsass\n- redis\u002Fvalkey\n\nTo compile Nitter you need a Nim installation, see\n[nim-lang.org](https:\u002F\u002Fnim-lang.org\u002Finstall.html) for details. It is possible\nto install it system-wide or in the user directory you create below.\n\nTo compile the scss files, you need to install `libsass`. On Ubuntu and Debian,\nyou can use `libsass-dev`.\n\nRedis is required for caching and in the future for account info. As of 2024\nRedis is no longer open source, so using the fork Valkey is recommended. It\nshould be available on most distros as `redis` or `redis-server`\n(Ubuntu\u002FDebian), or `valkey`\u002F`valkey-server`. Running it with the default\nconfig is fine, Nitter's default config is set to use the default port and\nlocalhost.\n\nHere's how to create a `nitter` user, clone the repo, and build the project\nalong with the scss and md files.\n\n```bash\n# useradd -m nitter\n# su nitter\n$ git clone https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\n$ cd nitter\n$ nimble build -d:danger --mm:refc\n$ nimble scss\n$ nimble md\n$ cp nitter.example.conf nitter.conf\n```\n\nSet your hostname, port, HMAC key, https (must be correct for cookies), and\nRedis info in `nitter.conf`. To run Redis, either run\n`redis-server --daemonize yes`, or `systemctl enable --now redis` (or\nredis-server depending on the distro). Run Nitter by executing `.\u002Fnitter` or\nusing the systemd service below. You should run Nitter behind a reverse proxy\nsuch as [Nginx](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fwiki\u002FNginx) or\n[Apache](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fwiki\u002FApache) for security and\nperformance reasons.\n\n### Docker\n\nPage for the Docker image: https:\u002F\u002Fhub.docker.com\u002Fr\u002Fzedeus\u002Fnitter\n\n#### NOTE: For ARM64 support, please use the separate ARM64 docker image: [`zedeus\u002Fnitter:latest-arm64`](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fzedeus\u002Fnitter\u002Ftags).\n\nTo run Nitter with Docker, you'll need to install and run Redis separately\nbefore you can run the container. See below for how to also run Redis using\nDocker.\n\nTo build and run Nitter in Docker:\n\n```bash\ndocker build -t nitter:latest .\ndocker run -v $(pwd)\u002Fnitter.conf:\u002Fsrc\u002Fnitter.conf -d --network host nitter:latest\n```\n\nNote: For ARM64, use this Dockerfile: [`Dockerfile.arm64`](https:\u002F\u002Fgithub.com\u002Fzedeus\u002Fnitter\u002Fblob\u002Fmaster\u002FDockerfile.arm64).\n\nA prebuilt Docker image is provided as well:\n\n```bash\ndocker run -v $(pwd)\u002Fnitter.conf:\u002Fsrc\u002Fnitter.conf -d --network host zedeus\u002Fnitter:latest\n```\n\nUsing docker-compose to run both Nitter and Redis as different containers:\nChange `redisHost` from `localhost` to `nitter-redis` in `nitter.conf`, then run:\n\n```bash\ndocker-compose up -d\n```\n\nNote the Docker commands expect a `nitter.conf` file in the directory you run\nthem.\n\n### systemd\n\nTo run Nitter via systemd you can use this service file:\n\n```ini\n[Unit]\nDescription=Nitter (An alternative Twitter front-end)\nAfter=syslog.target\nAfter=network.target\n\n[Service]\nType=simple\n\n# set user and group\nUser=nitter\nGroup=nitter\n\n# configure location\nWorkingDirectory=\u002Fhome\u002Fnitter\u002Fnitter\nExecStart=\u002Fhome\u002Fnitter\u002Fnitter\u002Fnitter\n\nRestart=always\nRestartSec=15\n\n[Install]\nWantedBy=multi-user.target\n```\n\nThen enable and run the service:\n`systemctl enable --now nitter.service`\n\n### Logging\n\nNitter currently prints some errors to stdout, and there is no real logging\nimplemented. If you're running Nitter with systemd, you can check stdout like\nthis: `journalctl -u nitter.service` (add `--follow` to see just the last 15\nlines). If you're running the Docker image, you can do this:\n`docker logs --follow *nitter container id*`\n\n## Contact\n\nFeel free to join our [Matrix channel](https:\u002F\u002Fmatrix.to\u002F#\u002F#nitter:matrix.org).\nYou can email me at zedeus@pm.me if you wish to contact me personally.\n","Nitter 是一个注重隐私和性能的开源 Twitter 替代前端。它使用 Nim 语言开发，不包含 JavaScript 或广告，所有请求都通过后端处理，从而避免了 Twitter 对用户 IP 或 JavaScript 指纹的追踪。Nitter 利用 Twitter 的非官方 API（无需开发者账号），页面加载轻量且支持 RSS 订阅、主题切换及移动端访问。适用于对个人隐私保护有较高要求并希望减少网络跟踪的用户，在需要浏览 Twitter 内容但又不想直接暴露个人信息给原网站时尤为适用。",2,"2026-06-11 03:34:23","high_star"]