Hey everyone! I talked a bit in the January Newsletter about us expanding the admin team but figured I would do a post specifically about the development team so I can go more into depth about it.
Currently in the admin teams around half the people are in infrastructure and the other half are in community with 1 person in development making the split around 4/4/1. This means that currently ive been the only one doing the development work so figured I would do a post looking for some more help
Whats the development team
The development team is in charge of development projects for the instance for users to interact with. This ranges from adding in features to the software we use (e.g. lemmy, sublinks) that the instance needs, to making supporting development projects such as events, bots, a support page, etc.
What would joining the team mean?
If you want to help out and join the team theres a very wide range of possible things that could be worked on depending on what you enjoy.
For frontend currently theres some supporting sites being built such as a team page, a support page, a donation page, etc. as well as the frontend for sublinks which will become the instance default UI at some point. Primary languages used are JavaScript and TypeScript and sublinks uses Next.js
For backend the backend of sublinks is currently under construction. Primary languages used are Java for backend and Go for federation. We also have another thing we will be hosting soon that is currently being rewritten to use C# for the backend
(for people who dont know what sublinks is its a lemmy alternative being built with the help of a bunch of different instances and lemmy alternative frontend devs. Being built with a compatible API so will be easy to swap out to it when it reaches parity with all of the apps and frontends still working)
If youre also interested in making some misc thing that might not fit in either of these but could be cool for the instance feel free to join as well. For example some supporting bots or a tool for users to use (e.g. post scheduler (this already exists but this kind of thing))
How much time would I have to commit?
Theres no real hard time limit you need to fulfill. Were all volunteers helping out here and anything helps. If youre mostly busy during the week but have time to fix a small bug on a site for a couple hours thats perfectly fine
Im not great at coding, can I still join?
Yep! Anyone is free to join regardless of level and if you need some help I can guide you through how to develop using the technologies we use or can get some other developers to help out if its more backend related since im primarily frontend. Certain tasks are available on some of the projects that are fine for new coders to do
How to join?
If youre interested feel free to dm me or comment below and I can add you to the development team spaces. The admin team in general primarily chats on our discord server https://discord.gg/kwyxvYEYt4
this post is being pinned in the instance for 24 hours
Hey glad to see this! I'd love to work on the codebase but I dont use Discord and unfortunately wont be using it just for this effort. But still... Kudos to everyone who is able to help out!
If youre interested in the sublinks side of things the primary chatting platform for that is matrix (discord is just for programming.dev specific things since that's where the rest of the admin team is)
Most of the repos will also be open source on our github org when the things they're for release
I've thought sublinks was really cool, a lot of which because it's Java and I feel like modern Java doesn't get the love it deserves...but I am worried about it not being AGPL. At least for me the fact that Lemmy couldn't have it's codebase closed was a large appeal and this move doesn't sit well since it would allow instances to close source their backeds if they wanted to. I feel like AGPL is a requirement for user freedom with websites as it's the only open source license for the web.
We had a lot of debate about the license. I'm curious if you can argue why MIT is wrong and why we should use AGPL. AGPL was the original plan, but I was convinced to change it to MIT by @lazyguru@discuss.online.
I replied to lazy guru below but basically I feel as though his argument about stifling innovation is a sorta win some lose some reason and allowing instances to go proprietary isn't conducive to an open ecosystem. Basically the only way as a user to ensure you're not inadvertently running proprietary code you might not want to run would be to host your own instance. Additionally to piggy back on that hosting your own instance might not be as feature complete due to wide spread use of proprietary or custom extensions used by other instances. A Lemmy extension betters the entire Lemmy ecosystem, a sublinks extension only betters the sublinks instance that developed it(unless they decide to contribute it back and hopefully they will)
As AGPL contains copyleft clauses it protects both you and your users by requiring reciprocation via source code accessibility.
Main difference/addition of GPL:
In section 13 Remote Network Interaction:
What it essentially communicates is that if a modified version of the software is run on a server accessible to users then that source code must be available to download.
If I remember correctly this addresses the patent trolling loophole that drug companies often exploit.
I don't have any development skills, however I am going to college for software development, so I think this is a good opportunity for me to try and get some real world experience.
As much as I'd love to, as a dev with over a decade of experience... I've already got loads of stuff going on, so trying to add another project to my list - Good luck finding folks though! Thank y'all for making this a fun place to be :-)
nah python isnt used in the main development anywhere even on the lemmy side. It is used though mainly for things created by db0 though such as fediseer and I believe theres a bot library + can be used for things not in the main development such as tools
If you have a C# project that I can help with, as you mentioned, would be cool. I don't have that much experience with Rust, besides getting the Lemmy backend to compile.
I have experience working on the Lemmy APIs; I was trying to make my own front-end lol: https://blamm.it
(Because mlmym requires a running Go Backend Proxy, to proxy requests between the Front-end -> Go Backend -> Lemmy Backend) - (which could easily be running maliciously, since you can't verify the hosted Go Backend isn't modified to log requests or something) - (And it's slow)
Hosting wise I have loads of experience with AWS... though not sure where you're hosting