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
You know how when a hobby becomes your job, it often stops being fun and leads to burnout? Side projects are fun because they offer you an opportunity to build something on your own terms. I want to build the app that I want to use, and I want the freedom to make decisions.
At the same time, I want to hear from the community, and I will take into account that feedback for decisions I make.
Respectfully, some of those issues you opened up are really big asks. Specifically, offline first (RxJS) and adding activity pub support. Initially, my idea was to build an app that did both of these, but after some experimentation, I decided I would burn out before the project ever saw the light of day just trying to solve offline first.
I would still love to hear from you. But I have ideas for what I would consider core functionality, and that will come first. But I will take feedback into consideration and will likely implement some offline first functionality, which will be way simpler than being fully offline.
My tech stack will be similar enough to Voyager that it’s possible I can copy past parts of my code into their app. So I’m not ruling out contributing back to Voyager, and writing my own app doesn’t mean I won’t learn stuff that I can contribute to other clients.
You are right. I am still looking at anything related to the Fediverse as work and not as a hobby, and I shouldn't be expecting other people to share the exact same vision and ambitions.
I do share the offline first ambition! I also probably have ADHD and a tendency to start projects without seeing them through. I think it would be wise for myself to keep the initial scope of the project small. I would love to build the app that solves everything, but in practice I know I likely won’t be able to make that happen.
From what I’ve seen, fully offline first would be more work than I believe it’s worth. Especially when you add the complexity of being cross-platform. I think I have to choose cross-platform or offline first, and I would rather solve cross-platform really well (better than Voyager IMO).
So it’s not that I don’t share your ambitions, but I need to be realistic. But if an app existed that solved all the things you mentioned, I would happily use it!
I appreciate you being understanding, and please continue to share your ambitions. I just encourage you not to be frustrated if someone closes a GitHub issue you open. Maintaining open-source software is taxing, and it doesn’t mean that the person closing the issue doesn’t like your idea.