Awesome
<!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --><a name="readme-top"></a>
<!-- *** Thanks for checking out the Best-README-Template. If you have a suggestion *** that would make this better, please fork the repo and create a pull request *** or simply open an issue with the tag "enhancement". *** Don't forget to give the project a star! *** Thanks again! Now go create something AMAZING! :D --> <!-- PROJECT SHIELDS --> <!-- *** I'm using markdown "reference style" links for readability. *** Reference links are enclosed in brackets [ ] instead of parentheses ( ). *** See the bottom of this document for the declaration of the reference variables *** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. *** https://www.markdownguide.org/basic-syntax/#reference-style-links --> <!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/cr4yfish/nemmy"> <img src="https://i.imgur.com/OzAB6Y0.png" alt="Logo" width="80" height="80"> </a> <h3 align="center">Nemmy</h3> <p align="center"> The Neat Lemmy App for the Web. This project is focused on building a Lemmy App with the best possible User Experience. <br /> <br /> <a href="https://nemmy.app/">Website</a> · <a href="https://play.google.com/store/apps/details?id=app.nemmy.twa">Google Play Store</a> · <a href="https://lemmy.world/c/nemmy">Lemmy Community</a> . <a href="https://github.com/Cr4yfish/Nemmy/issues">Report Bug</a> · <a href="https://github.com/Cr4yfish/Nemmy/issues">Request Feature</a> </p> </div> <div style="width: 100%; display: flex; justify-content: center; gap: 1rem;"> <img src="https://i.imgur.com/OxkGnC4.png" style="height: 500px; width: auto;" > <img src="https://i.imgur.com/twzhIFG.png" style="height: 500px; width: auto;" > <img src="https://i.imgur.com/SGJFQuo.png" style="height: 500px; width: auto;" > <img src="https://i.imgur.com/BljmUFd.png" style="height: 500px; width: auto;" > <img src="https://i.imgur.com/OFc7Va7.png" style="height: 500px; width: auto;" > <img src="https://i.imgur.com/8tHc7vx.png" style="height: 500px; width: auto;" > </div> <!-- ABOUT THE PROJECT -->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.
- Get the Docker Image link here
- Create the Dockerfile
FROM ghcr.io/cr4yfish/nemmy:[latest version] # :latest is not supported yet
- 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.
- Download and install Node.js
- (Optional) Create a fork if you intend to contribute to Nemmy
- Clone the Repository
- Install dependencies
npm i
- 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
- Search
- 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.