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
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 @[email protected].
As AGPL contains copyleft clauses it protects both you and your users by requiring reciprocation via source code accessibility.
Main difference/addition of GPL:
If I remember correctly this addresses the patent trolling loophole that drug companies often exploit.
btw I AM NOT A LAWYER
I would argue that by sharing code it makes everyone more productive because you can borrow code from other places and improve on it rather than having to reinvent the wheel because the plugin you want to improve is proprietary. Anyway that aside my problem with this is on the desktop permissive licenses are fine because the user using the software can choose not to install any proprietary addon's. In the case of the web this is now controlled by the person hosting the service. AGPL ensures that the ecosystem remains open. With a permissive license on the web the only way to ensure an open environment is to host your own instance yourself because you can't control what any other instance does. Personally if I were a Lemmy host I'd use sublinks but I'd always ensure any changes were openly shared since I feel as though that's the only way to be fair to your users...but as a Lemmy user I wouldn't touch it with a 10 foot pole unless it was my own instance since there are plenty of AGPL Lemmy instances to chose from. Lastly GPL does not require you to release your code publicly. The only requirement is that your users have access to it. That means it is fully in license to sell software, the only requirement is that the people who bought your software receive code and are able to redistribute that code. Yes, that is a tad purpose defeating but the official upstream never has to be made public and ultimately people redistribute all kinds of software whether open or closed source, whether allowed by the license or not. As far as I'm concerned if the official version requires purchase most users are likely to pick that over other options. RHEL is a good example of this. AGPL obviously makes everyone visiting the site a user so it's less able to facilitate that but I figured I'd clear up that misconception.