Here are the problems I want to solve:
The same app everywhere
It will run as a website, iOS app (also on macOS), and Android app. It will be responsive, supporting phone, tablet, and computer screen sizes along with everything in between.
And I’m not talking about simply resizing the interface. Navigation (e.g. sidebar or on mobile bottom tab bar) will match what you would expect to see on the device size you’re using. But everything else (e.g. posts) will look the same, which I hope will make it really easy to jump from mobile to desktop.
Onboarding and configuration
The app will allow you to configure it to look like a typical Reddit or Lemmy app. During the onboarding process, I will prompt you, asking which style of interface you prefer. Consider these presets, which change a bunch of more granular configuration options. I will also give you the ability to fully customize each option instead of picking a preset.
Caching and offline support
This is where it starts to get more tricky. Caching is easy. If you launch the app, it will have everything you previously saw still loaded.
I would like to make it so upvoting, for example, can be done offline. The app will optimistically apply the upvote to the post or comment, then when you reconnect to the internet, it will actually apply the upvote. This is a difficult problem to solve, so I can’t promise this will work, and it would likely be the last feature I add.
I need your feedback
This is a big project to undertake. I really want a Lemmy client that checks those boxes for myself, but I’m curious if any of those resonate with you? Is there anything I missed that you would like to see? If I do build this, I will likely have to keep the project very focused as far as features go initially.
Just for context, I’m using Voyager on iOS currently. I really like it, but the “the same app everywhere” concept and making it easier to onboard Reddit users are my main motivations for creating my own app. My app will also be fully open source
Settings synchronization between every device would be a big plus.
I’m really happy with Voyager on iOS, but an app for my linux computer would be welcome as I’m kind of struggling with how Lemmy appears in Firefix.
Lemmy UI is only one option, although it is the default for most instances. There are a lot of different web clients, some of which will preserve settings:
Voyager
Tesseract
Quiblr
Photon
Mlmym (“old-lemmy”)
Alexandrite
I’m surprised so few people have mentioned Thunder, which I use. Is there something keeping it from being more popular?
Thunder is a solid app! I don’t believe that it has a display for large screens like PCs, but it is cross-platform in Android and iOS.
I’m very new to Lemmy and I need to read through their API. Whatever settings they allow me to save, I’m happy to lean on their API. I just want to avoid writing my own backend.
I kinda want to avoid building a backend for this if I can. That would also mean your app wouldn’t depend on any infrastructure that I own, preventing any centralization around my backend. And it would mean a very low cost for me to maintain this app.
One way to solve sync could be to have a QR code you scan to sync settings. But it might only sync when you scan it and not continually. I can also look into any Apple or Android APIs that might make this possible, but that would leave out web, and I really want feature parity between all platforms.
But this would fall under a nice-to-have feature that I would likely not prioritize. I really want to nail down the core functionality first.
I guess it’s true that it would way more infrastructure.
Still the QR code idea would be great 👍
Thanks in advance for your work