Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aeharding/voyager
Voyager — a mobile-first Lemmy client
https://github.com/aeharding/voyager
activitypub android-app fediverse ionic ios-app lemmy link-aggregator pwa universal-app wefwef
Last synced: about 1 month ago
JSON representation
Voyager — a mobile-first Lemmy client
- Host: GitHub
- URL: https://github.com/aeharding/voyager
- Owner: aeharding
- License: agpl-3.0
- Created: 2023-06-12T02:02:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-19T03:17:26.000Z (about 1 month ago)
- Last Synced: 2024-05-19T12:29:53.344Z (about 1 month ago)
- Topics: activitypub, android-app, fediverse, ionic, ios-app, lemmy, link-aggregator, pwa, universal-app, wefwef
- Language: TypeScript
- Homepage: https://vger.app
- Size: 57.7 MB
- Stars: 1,391
- Watchers: 12
- Forks: 163
- Open Issues: 126
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Lists
- awesome-lemmy - **voyager** - first Lemmy client | ![GitHub stars](https://img.shields.io/github/stars/aeharding/voyager) ![GitHub commit activity](https://img.shields.io/github/commit-activity/y/aeharding/voyager) | [vger.app](https://vger.app/) (Projects / Alternative front-ends)
- my-awesome-stars - aeharding/voyager - Voyager — a mobile-first Lemmy client (TypeScript)
- awesome-stars - aeharding/voyager - Voyager — a mobile-first Lemmy client (TypeScript)
- my-awesome-stars - aeharding/voyager - Voyager — a mobile-first Lemmy client (TypeScript)
README
Voyager
A mobile-first Lemmy web client
Report Bug · Request Feature · Releases
## Voyager for Lemmy
Voyager 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!
**What does Voyager currently support?**
- Light/dark mode
- View and subscribe to communities
- Multi account support
- Single comment thread context view
- Upvote, downvote and reply to threads and comments
- Interact with user profiles
- Comment thread collapsing
- A bunch of swipe gestures
- Messaging, mentions and replies
- Creating new posts (url/photo/text)
- Deleting/editing comments
- Deleting/editing posts
- Swipe to hide posts
- Saving/bookmarking
- Favorites
- Android theme (beta)**What is on the roadmap?**
- More customization
- Native notifications and badging
- Mod features
- Translations
- ...and more!## 💪 Mobile webapps are awesome
Native apps can be great, but we believe in the strengths of the web. Why use a web-based Lemmy client?
- **Cross-platform** Use the familiar Voyager interface on your phone, tablet, desktop computer, and more!
- **Self-hostable** No worries about your favorite app getting taken down, and you can customize to your desire!
- **Lightweight** No large installation bundles - and it's easy to try it out## Deployment
### Official Deployment
The Voyager team maintains a deployment at:
- 🐭 Production: [vger.app](https://vger.app)
### Self-Host
There 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.
#### Environment variables
- `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.
#### Docker Deployment
In 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.
One could put Voyager behind popular reverse proxies with SSL Handling like Traefik, NGINX etc.> **Tip:** Use [Watchtower](https://github.com/containrrr/watchtower) to keep your deployment automatically up to date!
##### From source
1. checkout source `git clone https://github.com/aeharding/voyager.git`
1. go into new source dir: `cd voyager`
1. build Docker image: `docker build . -t voyager`
1. start container: `docker run --init --rm -it -p 5314:5314 voyager`##### Prebuilt
1. pull image `docker pull ghcr.io/aeharding/voyager:latest`
1. start container: `docker run --init --rm -it -p 5314:5314 voyager`Note: The provided Dockerfile creates a container which will eventually run Voyager as non-root user.
#### Traditional Deployment
While Docker makes things easier, Voyager can be hosted by any HTTP server (nginx, apache etc).
```sh
# Build from source (Or, download web artifact from Github Releases)
pnpm install
pnpm build# Then, serve ./dist with your favorite HTTP server - nginx, apache etc
# (make sure 404 goes to index.html)
# Below is a simple example for dev/testing (not recommended for production):
npm install --global http-server
cp dist/index.html dist/404.html # magic file for http-server
http-server dist
```Optionally, you can serve a custom list of instance(s) in the `/_config` endpoint, with JSON payload of following format:
```json
{ "customServers": ["lemmy.world", "lemm.ee"] }
```For production, serve `index.html` with `Cache-Control: no-cache` and `/assets` with a long cache period (files in assets are immutable)
### Ecosystem
- 🇫🇮 [m.lemmy.world](https://m.lemmy.world) - Voyager hosted by the mastodon.world team. [Contact/privacy](https://mastodon.world/about)
- 🇸🇬 [v.opnxng.com](https://v.opnxng.com) - Voyager hosted by Opnxng in Singapore. [Contact/privacy](https://about.opnxng.com)
- 🇲🇽 [voyager.nohost.network](https://voyager.nohost.network) - Voyager hosted by Nohost in Mexico. [Contact/privacy](https://nohost.network)
- 🇺🇸 [vger.thesanewriter.com](https://vger.thesanewriter.com) - Voyager hosted by the lemmy.thesanewriter.com team. [Contact/privacy](https://lemmy.thesanewriter.com/legal)> **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.
## 💖 Sponsors
If you're enjoying Voyager, you can sponsor it:
- [Alexander Harding](https://github.com/sponsors/aeharding)
We 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.
## 🧑💻 Contributing
Please check out [CONTRIBUTING.md](./CONTRIBUTING.md) for details on contributing to Voyager. Thank you! 💙
## 🛜 Add a lemmy instance to the curated list
Voyager 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).
## 📲 PWA
Voyager works best added to the homescreen. There are certain features that only work there, like badging and smooth page transitions.
## 🦄 Stack
- [React](https://react.dev/) - The library for web and native user interfaces
- [Vite](https://vitejs.dev/) - Next Generation Frontend Tooling
- [Ionic](https://ionicframework.com/) - The mobile SDK for the Web
- [Virtua](https://github.com/inokawa/virtua) - A zero-config, fast and small virtual list
- [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) - Prompt for update, Web Push Notifications and Web Share Target API## 👨💻 Contributors
Shoutout to [@fer0n](https://github.com/fer0n) for the great logo and splashscreen! And thank you 💙 all of our contributors to the codebase:
## 📄 License
### Artwork
- **Default Logo & Splashscreen**: CC BY-SA 4.0 © [@fer0n](https://github.com/fer0n)
- **Default Android themed icon**: CC BY-SA 4.0 © [@Donno](https://github.com/Donnnno)### Code
[AGPL-3.0](./LICENSE) © Voyager contributors