cr4yfish / nemmy

Nemmy: The Neat Lemmy App for the Web (and phones later on) This project is focused on building an App with the best possible User Experience.

Home Page:https://nemmy.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues Image Build


Logo

Nemmy

The Neat Lemmy App for the Web. This project is focused on building a Lemmy App with the best possible User Experience.

Website · Google Play Store · Lemmy Community . Report Bug · Request Feature

Notice

Nemmy will continue being down for an undefined amount of time since Vercel has suspended my account and will only allow me to continue deploying if I pay 20€/month for a pro account. I don't have that kind of money so all of my Web-projects (including Nemmy) will be on-hold until I win the lottery or something lol.

As for why I'm not moving my projects somewhere else: I have no motivation left after that whole fiasco. Maybe I'll come back someday - might even be tomorrow, I don't know yet.

About The Project

Nemmy is a Progressive Web App (PWA) for Lemmy. Lemmy is kinda like Reddit, but federated so a CEO can't just fuck over everyone. The goal of Nemmy is to make using Lemmy on multiple devices a seamless experience.

Right now Nemmy is in very early Development, however, feel free to visit the Website once in a while to see what's changed.

If you like the idea of Nemmy, this is the perfect opportunity for you to influence design decisions by submitting Feedback or Feature requests. You can do that on here in the Issues Tab or the Nemmy Community on Lemmy.

Why Nemmy?

There are other good Apps for Lemmy out there, even other PWAs like wefwef.app. What singles out Nemmy is not focusing on a single devices (e.g. Mobile-only design like wefwef or Desktop Only design like the default Lemmy Web UI) but making the user experience equally good on most devices.

What's Lemmy?

The short version is, that Lemmy is similar to Reddit. The main difference is that Lemmy is Open-Source and Federated. This means that there is no single huge "Lemmy Server" but many smaller "instances" of Lemmy hosted by different people. These instances can communicate with each other, so you can follow people on other instances and see their posts and comments.

Built With

  • Next.js
  • Lemmy JS-Client
  • Tailwind

Support

Creating and hosting Nemmy on fast infrastructure costs time (money) and money. If you want to support me, you can do so by donating. Since this is a passion project, I don't expect or want to earn any money from it. All of the donated money will be used exclusively to pay for the server and domain costs.

Getting started

Production Setup

Here you can choose between hosting it the conventional way and using the Docker image.

Conventional

Follow the development setup steps but instead of running npm run dev you run npm run build and then npm run start

Docker

There are multiple ways to do this. Here is one example using a Dockerfile.

  1. Get the Docker Image link here
  2. Create the Dockerfile
FROM ghcr.io/cr4yfish/nemmy:[latest version] # :latest is not supported yet
  1. Build and run
docker build -t nemmy .
docker run nemmy

Nemmy will now run on the local network. To be able to access the server from the internet, you'll have to open the port 3000.

Setting your instance as default

In case you're hosting Nemmy as an UI for your own instance, you might want to set it as the default instance.

To do that, you can set the NEXT_PUBLIC_DEFAULT_INSTANCE environment variable to your instance's URL.

The instsance URL should be in the format of https://some.instance, for example https://lemmy.ml

With Docker

docker run -e NEXT_PUBLIC_DEFAULT_INSTANCE=YOUR_INSTANCE nemmy

Without Docker

NEXT_PUBLIC_DEFAULT_INSTANCE=YOUR_INSTANCE npm run start

Development Setup

To setup Nemmy for development, there are only a few steps to take.

  1. Download and install Node.js
  2. (Optional) Create a fork if you intend to contribute to Nemmy
  3. Clone the Repository
  4. Install dependencies
npm i
  1. Run the development server
npm run dev

Roadmap for Q3 2023

  • Basic APIs
  • Voting / Interactions
    • Voting on Posts
    • Voting on Comments
    • Bookmarking Posts & Comments
  • PWA installable
  • Community Page
  • Sort/Filter/Search
    • Search
      • Search for Communities
      • Search for Posts
      • Search for Users
    • Filter
    • Sorting
    • Explore Section
  • Authentication
    • Login
    • Register
    • Support for multiple instances
    • Subscribing to Communities
  • Creating Content
    • Creating Comments
    • Creating Posts
    • Creating Communities
    • Supporting all Lemmy Markdown Features
    • Support Markdown inserts
  • User Page
    • Settings <- Backend done. Will add more stuff later
    • Notifications
    • User Profile
    • User Posts
    • Bookmarks
    • User Comments
    • Chat <- WIP
  • Sidebar
    • Subscribed Communities
    • Instance Info
  • Edit tools <- Next Step
    • Edit Comments
    • Edit Posts
  • Moderation Tools
    • Delete Posts/Comments
    • Ban Users
    • Lock Posts/Comments
    • Modify Posts (e.g. change title, mark as NSFW)
  • Offline Features <- Is being worked on on another branch
    • Content Cache
    • Upload when online
    • Show UI without connection
  • Customization
    • User Themes <-Research
    • Dark/Light mode per User choice
    • Compact Style
    • Classic Style (Like old.reddit) <-Design phase
  • QoL Features
    • Auto-Register to other instances
    • Subscribe to the same community on multiple instances (like c/nemmy on Lemmy.world and Lemmy.ml)
    • Bulk Block/Hide Communities with the same or similar Name
    • Subscribe/Unsubscribe from Communities while in Search mode (So you don't need to leave the Search page just to unsubscribe/subscribe)
    • Improved Sorting
  • Instanceless features
    • Create Communities regardless of instance
    • Create Posts regardless of instance
    • Unified Account cross-instances

Ideas for Q4+

  • Use GPT3.5 to sum up large text bodies
  • Improve search Indexing of Posts
  • Make every single feature of the App 100% usuable for Blind, deaf and color blind people
  • Add a keyword ban (e.g. you don't want anything with "Beans" in your feed)
  • Improve PWA Experience until it feels like a native app
  • Think about making a native app

FOSS

  • Nemmy will always be 100% Open Source, no strings attached.
  • Nemmy will always be 100% free to use

Security

To make sure Nemmy is safe to use, there are multiple code scanners scanning every commit. Humans can also scan the code since it's 100% open source and create a security issue.

About

Nemmy: The Neat Lemmy App for the Web (and phones later on) This project is focused on building an App with the best possible User Experience.

https://nemmy.app

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 94.4%Language:CSS 4.0%Language:JavaScript 1.4%Language:Dockerfile 0.2%