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
mfw the programming.dev instance actually does contain programmers
As someone who uses programming.dev as my daily instance, I’d be happy to help.
I’ve got over a decade of experience as a software engineer, with over 5 in Go.
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 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 :-)
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 @[email protected].
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.
btw I AM NOT A LAWYER
deleted by creator
The fediverse already has a mechanism to guard against some corporation coming in and taking the code from a platform and building a commercial product on top of it - defederation. We don’t need GPL to “protect” us from anyone here
I disagree. The reason GPL works is that legal action (Such as from GNU foundation or EFF) deters bad actors.
The fediverse already has a mechanism to guard against some corporation coming in and taking the code from a platform and building a commercial product on top of it - defederation.
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.
However, there are also many that want to be recognized (financially) for their work. GPL ignores the latter.
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.
I don’t believe that is the case any more
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.
I thought python was included in the previous go around. Am I wrong, or has that been replaced because of sublinks?
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
I would like to join, my tech stack is based mainly on Python so yeah if there is a need for bots and schedulers count me in.
You may be interested in helping out with PyFed
I might have a few hours a month to help out if there’s something I feel I can help with.
@[email protected] @[email protected] just let me know what your discord usernames are and I can add you to the admin chats in the discord. Alex I see you in so ill add you
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
I’d be willing to contribute. Tech-interest-wise, I’m particularly interested in the C# project (my primary dev-stack of choice).