{"id":13588502,"url":"https://github.com/aeharding/voyager","last_synced_at":"2026-01-17T18:29:31.191Z","repository":{"id":174554841,"uuid":"652400579","full_name":"aeharding/voyager","owner":"aeharding","description":"Voyager — a beautiful app for Lemmy","archived":false,"fork":false,"pushed_at":"2026-01-15T03:29:39.000Z","size":64337,"stargazers_count":1723,"open_issues_count":234,"forks_count":172,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-01-15T09:45:18.967Z","etag":null,"topics":["activitypub","android-app","capacitor","fediverse","ionic","ios-app","lemmy","link-aggregator","piefed","pwa","reactjs","universal-app"],"latest_commit_sha":null,"homepage":"https://getvoyager.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aeharding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"aeharding"}},"created_at":"2023-06-12T02:02:54.000Z","updated_at":"2026-01-15T00:10:30.000Z","dependencies_parsed_at":"2023-10-17T07:55:08.000Z","dependency_job_id":"36fcf369-4843-4a6f-b039-ad48a17fc758","html_url":"https://github.com/aeharding/voyager","commit_stats":{"total_commits":1151,"total_committers":57,"mean_commits":20.19298245614035,"dds":"0.10686359687228497","last_synced_commit":"e0929439e9dc13028061e5d8fe8008e9d8e35cad"},"previous_names":["aeharding/wefwef"],"tags_count":254,"template":false,"template_full_name":null,"purl":"pkg:github/aeharding/voyager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeharding%2Fvoyager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeharding%2Fvoyager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeharding%2Fvoyager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeharding%2Fvoyager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeharding","download_url":"https://codeload.github.com/aeharding/voyager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeharding%2Fvoyager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28515657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:28:00.501Z","status":"ssl_error","status_checked_at":"2026-01-17T18:28:00.150Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activitypub","android-app","capacitor","fediverse","ionic","ios-app","lemmy","link-aggregator","piefed","pwa","reactjs","universal-app"],"created_at":"2024-08-01T15:06:45.325Z","updated_at":"2026-01-17T18:29:31.179Z","avatar_url":"https://github.com/aeharding.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://vger.app\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cimg width=\"160\" height=\"160\" src=\"./public/logo-minified.svg\" alt=\"Voyager logo\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eVoyager\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\nA mobile-first Lemmy web client\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/aeharding/voyager/issues/new?assignees=\u0026labels=bug\u0026projects=\u0026template=bug_report.md\u0026title=\"\u003eReport Bug\u003c/a\u003e · \u003ca href=\"https://github.com/aeharding/voyager/issues/new?assignees=\u0026labels=enhancement\u0026projects=\u0026template=feature_request.md\u0026title=\"\u003eRequest Feature\u003c/a\u003e · \u003ca href=\"https://github.com/aeharding/voyager/releases\"\u003eReleases\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u0026nbsp;\u003ca href=\"https://vger.app\"\u003e\u003cimg src=\"public/badges/pwa.svg\" height=\"45\"\u003e\u003c/a\u003e\u0026nbsp;\u0026#8203;\u0026nbsp;\n\u003ca href=\"https://apps.apple.com/us/app/voyager-for-lemmy/id6451429762\"\u003e\u003cimg src=\"public/badges/ios.svg\" height=\"45\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\n\u003ca href=\"https://play.google.com/store/apps/details?id=app.vger.voyager\"\u003e\u003cimg src=\"public/badges/play.svg\" height=\"45\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://f-droid.org/en/packages/app.vger.voyager/\"\u003e\u003cimg src=\"public/badges/fdroid.png\" height=\"45\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://matrix.to/#/#vger.app:matrix.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/chat-matrix-blue?style=flat-square\u0026logo=matrix\" alt=\"matrix chat\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://vger.to/lemmy.world/c/voyagerapp\"\u003e\u003cimg src=\"https://img.shields.io/lemmy/voyagerapp@lemmy.world?style=flat-square\u0026logo=lemmy\u0026label=lemmy\" alt=\"lemmy community\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://vger.app/\" target=\"_blank\" rel=\"noopener noreferrer\" \u003e\n    \u003cimg src=\"./public/promo.webp\" alt=\"Voyager screenshots\" width=\"800\" height=\"auto\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Voyager for Lemmy\n\nVoyager is an [Apollo-like](https://apolloapp.io/) open source web client for [Lemmy](https://join-lemmy.org/). It's a mobile-first app, but works great on desktop devices, too. Please feel free to try it out!\n\n**What does Voyager currently support?**\n\n- Light/dark mode\n- View and subscribe to communities\n- Multi account support\n- Single comment thread context view\n- Upvote, downvote and reply to threads and comments\n- Interact with user profiles\n- Comment thread collapsing\n- A bunch of swipe gestures\n- Messaging, mentions and replies\n- Creating new posts (url/photo/text)\n- Deleting/editing comments\n- Deleting/editing posts\n- Swipe to hide posts\n- Saving/bookmarking\n- Favorites\n- iOS and Android themes\n\n**What is on the roadmap?**\n\n- More customization\n- Native notifications and badging\n- Mod features\n- Translations\n- ...and more!\n\n## 💪 Mobile webapps are awesome\n\nNative apps can be great, but we believe in the strengths of the web. Why use a web-based Lemmy client?\n\n- **Cross-platform** Use the familiar Voyager interface on your phone, tablet, desktop computer, and more!\n- **Self-hostable** No worries about your favorite app getting taken down, and you can customize to your desire!\n- **Lightweight** No large installation bundles - and it's easy to try it out\n\n## Deployment\n\n### Ecosystem\n\n**For most users,** we recommend the native app available in the stores:\n\n\u003ca href=\"https://apps.apple.com/us/app/voyager-for-lemmy/id6451429762\"\u003e\u003cimg src=\"public/badges/ios.svg\" height=\"45\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\n\u003ca href=\"https://play.google.com/store/apps/details?id=app.vger.voyager\"\u003e\u003cimg src=\"public/badges/play.svg\" height=\"45\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://f-droid.org/en/packages/app.vger.voyager/\"\u003e\u003cimg src=\"public/badges/fdroid.png\" height=\"45\"\u003e\u003c/a\u003e\n\nHowever, if you prefer using the Progressive Web App, there are a number of folks that host it:\n\n\u003cdetails\u003e\n\u003csummary\u003eCommunity Deployments\u003c/summary\u003e\n\n| Country          | URL                                                      | Description                                                  | Contact/Privacy                             |\n| ---------------- | -------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------- |\n| 🇺🇸 Virginia, USA | [vger.app](https://vger.app)                             | ✅ Official Voyager PWA instance                             | [➡️](https://vger.social/u/aeharding)       |\n| 🇫🇮 Finland       | [m.lemmy.world](https://m.lemmy.world)                   | Voyager hosted by the mastodon.world team.                   | [➡️](https://mastodon.world/about)          |\n| 🇸🇬 Singapore     | [v.opnxng.com](https://v.opnxng.com)                     | Voyager hosted by Opnxng in Singapore.                       | [➡️](https://about.opnxng.com)              |\n| 🇲🇽 Mexico        | [voyager.nohost.network](https://voyager.nohost.network) | Voyager hosted by Nohost in Mexico.                          | [➡️](https://nohost.network)                |\n| 🇺🇸 USA           | [vger.thesanewriter.com](https://vger.thesanewriter.com) | Voyager hosted by the lemmy.thesanewriter.com team.          | [➡️](https://lemmy.thesanewriter.com/legal) |\n| 🇺🇸 Oregon, USA   | [m.lemmy.today](https://m.lemmy.today)                   | A fast, general purpose instance located in Oregon, USA      | [➡️](https://lemmy.today)                   |\n| 🇫🇷 France        | [v.lemmy.dbzer0.com](https://v.lemmy.dbzer0.com)         | Be Weird, Download a Car, Generate Art, Screw Copyrights     | [➡️](https://lemmy.dbzer0.com)              |\n| ?                | [v.programming.dev](https://v.programming.dev)           | A collection of programming communities                      | [➡️](https://legal.programming.dev)         |\n| 🇺🇸 Oregon, USA   | [v.lemmy.eco.br](https://v.lemmy.eco.br)                 | A fast, general purpose instance located in Oregon, USA      | [➡️](https://lemmy.eco.br)                  |\n| 🇩🇪 Germany       | [v.lemy.lol](https://v.lemy.lol)                         | Long-term, general purpose Lemmy instance.                   | [➡️](https://lemy.lol)                      |\n| 🇵🇹 Portugal      | [voyager.slrpnk.net](https://voyager.slrpnk.net)         | Sustainable future interconnected with nature and community. | [➡️](https://slrpnk.net)                    |\n| ?                | [app.thelemmy.club](https://app.thelemmy.club)           | A general Lemmy instance for all!                            | [➡️](https://thelemmy.club)                 |\n| ?                | [m.lemdro.id](https://m.lemdro.id)                       | Fully open source instance with incredible transparency.     | [➡️](https://lemdro.id)                     |\n\n\u003e **Note**: Community deployments are **NOT** maintained by the Voyager team. They may not be synced with Voyager's source code. Please do your own research about the host servers before using them.\n\n\u003c/details\u003e\n\n### Beta Testing\n\nVoyager maintains a beta track continuously deployed from every commit to [`refs/heads/main`](https://github.com/aeharding/voyager/commits/main)). **The beta build may break at any time.**\n\n- [iOS – Testflight](https://testflight.apple.com/join/nWLw1MBM)\n- [Android – Google Play Open Testing](https://play.google.com/apps/testing/app.vger.voyager)\n- [Web App – beta.vger.app](https://beta.vger.app)\n\n### Self-Host\n\nThere are two ways you can run Voyager as a PWA in a production environment. The recommended method is using **docker**. We also support a **traditional** deployment method without docker. Read below to see how to get each method set up.\n\n#### Docker Deployment\n\nIn order to host Voyager yourself you can use the provided Dockerfile to build a container with Voyager. The Docker container itself does not provide any SSL/TLS handling. You'll have to add this bit yourself.\nOne could put Voyager behind popular reverse proxies with SSL Handling like Traefik, NGINX etc.\n\n\u003e **Tip:** Use [Watchtower](https://github.com/containrrr/watchtower) to keep your deployment automatically up to date!\n\n##### Environment variables\n\n- `CUSTOM_LEMMY_SERVERS` (optional) e.g. `lemmy.world,lemmy.ml,sh.itjust.works` - a comma separated list of suggested servers. The first will be used as default view for logged out users. You can specify only one if you want.\n\n##### From source\n\n1. checkout source `git clone https://github.com/aeharding/voyager.git`\n1. go into new source dir: `cd voyager`\n1. build Docker image: `docker build . -t voyager`\n1. start container: `docker run --init --rm -it -p 5314:5314 voyager`\n\n##### Prebuilt\n\n1. pull image `docker pull ghcr.io/aeharding/voyager:latest`\n1. start container: `docker run --init --rm -it -p 5314:5314 voyager`\n\nNote: The provided Dockerfile creates a container which will eventually run Voyager as non-root user.\n\n#### Traditional Deployment\n\nWhile Docker makes things easier, Voyager can be hosted by any HTTP server (nginx, apache etc).\n\n```sh\n# Build from source (Or, download web artifact from Github Releases)\npnpm install\npnpm build\n\n# Then, serve ./dist with your favorite HTTP server - nginx, apache etc\n# (make sure 404 goes to index.html)\n# Below is a simple example for dev/testing (not recommended for production):\nnpm install --global http-server\ncp dist/index.html dist/404.html # magic file for http-server\nhttp-server dist\n```\n\nOptionally, you can serve a custom list of instance(s) in the `/_config` endpoint, with JSON payload of following format:\n\n```json\n{ \"customServers\": [\"lemmy.world\", \"lemmy.zip\"] }\n```\n\nFor production, serve `index.html` with `Cache-Control: no-cache` and `/assets` with a long cache period (files in assets are immutable)\n\n## 💖 Sponsors\n\nIf you're enjoying Voyager, you can sponsor it:\n\n- [Alexander Harding](https://github.com/sponsors/aeharding)\n\nWe would also appreciate sponsoring other contributors to Voyager. If someone helps you solve an issue or implement a feature you wanted, supporting them would help make this project and OS more sustainable.\n\n## 🧑‍💻 Contributing\n\nPlease check out [CONTRIBUTING.md](./CONTRIBUTING.md) for details on contributing to Voyager. Thank you! 💙\n\n## 🛜 Add a lemmy instance to the curated list\n\nVoyager curates Lemmy servers for sign up ([see the data](./src/features/auth/login/data/servers.ts)). If you would like to add an instance, please read the [curated servers policy](./src/features/auth/login/data/README.md).\n\n## 📲 PWA\n\nVoyager works best added to the homescreen. There are certain features that only work there, like badging and smooth page transitions.\n\n## 🦄 Stack\n\n- [React](https://react.dev/) - The library for web and native user interfaces\n- [Vite](https://vitejs.dev/) - Next Generation Frontend Tooling\n- [Ionic](https://ionicframework.com/) - The mobile SDK for the Web\n- [Virtua](https://github.com/inokawa/virtua) - A zero-config, fast and small virtual list\n- [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) - Prompt for update, Web Push Notifications and Web Share Target API\n\n## 👨‍💻 Contributors\n\nShoutout to [@fer0n](https://github.com/fer0n) for the great logo and splashscreen! And thank you 💙 all of our contributors to the codebase:\n\n\u003ca href=\"https://github.com/aeharding/voyager/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=aeharding/voyager\" /\u003e\n\u003c/a\u003e\n\n## 📄 License\n\n### Artwork\n\n- **Default Logo \u0026 Splashscreen**: CC BY-SA 4.0 \u0026copy; [@fer0n](https://github.com/fer0n)\n- **Default Android themed icon**: CC BY-SA 4.0 \u0026copy; [@Donno](https://github.com/Donnnno)\n\n### Code\n\n[AGPL-3.0](./LICENSE) \u0026copy; Voyager contributors\n","funding_links":["https://github.com/sponsors/aeharding"],"categories":["TypeScript","Alternative Web Front-ends","Projects"],"sub_categories":["Lemmy","Mobile / Desktop apps"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeharding%2Fvoyager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faeharding%2Fvoyager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeharding%2Fvoyager/lists"}