this post was submitted on 28 Nov 2024
76 points (98.7% liked)

Fediverse

28577 readers
882 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to [email protected]!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy

founded 2 years ago
MODERATORS
 

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

(page 2) 41 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 6 days ago* (last edited 6 days ago) (1 children)

Why not take an existing client like Voyager, and add the features that you are missing?

This is exactly what I am doing for "easier onboarding". I am working on a fork of Voyager, learning my way through React Native and ionic, and adding support for Fediverser to it.

[–] moseschrute 1 points 6 days ago (1 children)

That’s a great point! I kinda want to write my own client, but I haven’t ruled out contributing to Voyager. It’s very possible I totally fail, learn from my mistakes, and bring what I’ve learned to an existing app like Voyager.

[–] [email protected] 2 points 6 days ago* (last edited 6 days ago) (2 children)

I kinda want to write my own client

Fair enough, every developer goes through that.

At the same time... If this is your primary motivation I would feel like there is no point in you asking for "feedback" because you are essentially looking for validation.

I don't mean to pick on you, I just wish we collectively learned to stop this. So much effort is wasted by individuals who want to prove something to themselves and want to go out on their own, it feels like FOSS alternatives would be 20 years in the future if put worked together on 2-3 alternatives instead of 20-30 disparate projects.

If you are okay with reconsidering your position... go to Voyager's discussion pages on GitHub, there a few issues I opened there and would like to tackle:

  • make it offline-first (probably using something RxJS to store and sync application data and state through different apps)
  • add support to browse subreddits (won't require the API, and to ease the issue of network effects)
  • make it less dependent on the Lemmy API and substitute for straight ActivityPub whenever possible
  • use content-addressable storage for media (IPFS likely, but maybe also webtorrent)

If any of these things interest you, I'd love to have a longer chat and see if we can work together.

[–] moseschrute 2 points 6 days ago (1 children)

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.

[–] [email protected] 2 points 6 days ago (1 children)

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.

load more comments (1 replies)
[–] spankmonkey 1 points 6 days ago (1 children)

it feels like FOSS alternatives would be 20 years in the future if put worked together on 2-3 alternatives instead of 20-30 disparate projects.

Honestly having 20-30 separate projects is awesome if merging in the creative bits from each were merged into the more popular ones more often. Sometimes there is a foundational difference that makes that a lot harder than plug and play, but to be honest not developing with being modular in mind is one of the biggest issues with any kind of development.

[–] [email protected] 2 points 6 days ago

if merging in the creative bits from each were merged into the more popular ones more often.

Yeah, the pity is that most of the times this simply doesn't happen, and everyone wants to reinvent their own special flavor of wheel.

[–] [email protected] 2 points 6 days ago (5 children)

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.

[–] moseschrute 1 points 6 days ago (1 children)

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.

load more comments (1 replies)
load more comments (4 replies)
[–] ByteMe 0 points 6 days ago (1 children)

Honestly, I'd say pick an OS and stick with it. Cross platform is tricky and it's not that good.

[–] moseschrute 2 points 6 days ago* (last edited 6 days ago) (1 children)

I’m a seasoned developer with experience in both React on the web and React Native. I’m looking for an excuse to dive into Tamagui, which is designed the tackle cross platform. So I’m excited to tackle this challenge.

[–] ByteMe 1 points 6 days ago

Oh, never heard of that! Okay then , go on!

load more comments
view more: ‹ prev next ›