/wefwef

wefwef — a mobile-first Lemmy web client

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

wefwef logo

wefwef alpha

A mobile-first Lemmy web client


matrix chat


wefwef screenshots

⚠️ wefwef is in Alpha

wefwef is an Apollo-like open source web client for Lemmy. It's a mobile-first app, but works great on desktop devices, too. Please feel free to try it out, but be aware you will likely encounter bugs and missing functionality.

What does wefwef 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
  • Swipe to hide posts

What is on the roadmap?

  • Deleting/editing posts
  • Saving/bookmarking
  • Better splash screens
  • Favorites
  • More customization
  • Android theme
  • Native notifications and badging
  • 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 wefwef 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 wefwef team maintains a deployment at:

Self-Host Docker Deployment

In order to host wefwef yourself you can use the provided Dockerfile to build a container with wefwef. The Docker container itself does not provide any SSL/TLS handling. You'll have to add this bit yourself. One could put wefwef behind popular reverse proxies with SSL Handling like Traefik, NGINX etc.

Tip: Use Watchtower to keep your deployment automatically up to date!

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.

From source

  1. checkout source git clone https://github.com/aeharding/wefwef.git
  2. go into new source dir: cd wefwef
  3. build Docker image: docker build . -t wefwef
  4. start container: docker run --init --rm -it -p 5314:5314 wefwef

Prebuilt

  1. pull image docker pull ghcr.io/aeharding/wefwef:latest
  2. start container: docker run --init --rm -it -p 5314:5314 wefwef

Note: The provided Dockerfile creates a container which will eventually run wefwef as non-root user.

Ecosystem

Note: Community deployments are NOT maintained by the wefwef team. They may not be synced with wefwef's source code. Please do your own research about the host servers before using them.

💖 Sponsors

If you're enjoying wefwef, you can sponsor it:

We would also appreciate sponsoring other contributors to wefwef. 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

We're really excited that you're interested in contributing to wefwef!

NOTE wefwef is receiving a lot of new users and interest in contributing. Before contributing, please read this. 🙂

Local Setup

Clone the repository and run on the root folder:

pnpm install
pnpm run dev

Warning: you will need corepack enabled.

Testing

wefwef uses Vitest. You can run the test suite with:

pnpm test

📲 PWA

wefwef works best added to the homescreen. There are certain features that only work there, like badging and smooth page transitions.

🦄 Stack

  • React - The library for web and native user interfaces
  • Vite - Next Generation Frontend Tooling
  • Ionic - The mobile SDK for the Web
  • Virtuoso - Display large data sets using virtualized rendering
  • vite-plugin-pwa - Prompt for update, Web Push Notifications and Web Share Target API

👨‍💻 Contributors

📄 License

AGPL-3.0 © wefwef contributors