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

  • Scoopta@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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.

    • jgrim@discuss.online
      link
      fedilink
      arrow-up
      0
      ·
      11 months ago

      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].

      • recursive_recursion [they/them]@programming.dev
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        11 months ago

        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

        • lazyguru@discuss.online
          link
          fedilink
          English
          arrow-up
          0
          ·
          11 months ago

          I replied on this in a Matrix room already. I won’t retype my whole reply here. Essentially, IMO GPL stifles innovation as it forces everyone to use the same license and for everyone to release their code. This might be a good thing when it comes to concerns over competition (eg Threads vs everyone else), but it is a bad thing when it comes to building a community around a platform (theme developers can’t sell custom themes because they also have to publicly release their code under GPL. Plugin developers have the same issue. Technically, 3rd party apps should be releasing their code as well). Yes, there are many people who enjoy contributing to open source (myself included). However, there are also many that want to be recognized (financially) for their work. GPL ignores the latter. 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).

          NOTE: I also am not a lawyer. I might have some things wrong w/r/t GPL. However, I’m old enough to remember when it was actually an important OS license and when it was truly needed. I don’t believe that is the case any more. LGPL might be fine, but the rest of the variants should only be used after extremely careful consideration and not just as a default.

          • MadhuGururajan@programming.dev
            link
            fedilink
            arrow-up
            0
            ·
            11 months ago

            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.

          • Scoopta@programming.dev
            link
            fedilink
            arrow-up
            0
            ·
            11 months ago

            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.

      • Scoopta@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        11 months ago

        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)

  • devdad@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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.

    • Ategon@programming.devOPM
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      11 months ago

      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

  • alexdeathway@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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.

  • Rai0@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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.

  • Hexarei@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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 :-)

  • RonSijm@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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

  • mark@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    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!

    • Ategon@programming.devOPM
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      11 months ago

      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