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
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:
If I remember correctly this addresses the patent trolling loophole that drug companies often exploit.
btw I AM NOT A LAWYER
I disagree. The reason GPL works is that legal action (Such as from GNU foundation or EFF) deters bad actors.
Defederation only helps the corporations: When the corporation comes in, overwhelms the fediverse with their huge network of active instances and then defederate, the only ones holding the bag are the open intances. . It's much easier for a private corporation to get numbers to defederate and come out on top than for open source enthusiasts.
If you want to be financially recognized for building on top of other people's open source projects then you should write proprietary code. You shouldn't be allowed to take open source works freely and call the entirety your own. MIT doesn't prevent that from happening. GPL prevents that from happening.
It's actually really important in the long run. There can never be true open source without GPL or similar legal licenses.
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.