GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation, and Richard Stallman himself.

If you would like to know how is it like to be a GSoC student at GNU social, read this blog post!

What would be expected from me?

Reliability Engineering
Fix bugs of current code base and ensure it stays functional
Software Engineering
Further development of GNU social v2
Computer Security Engineering
Ensure GS is secure

Every student will have to pick tasks in each of these fields in GS's GSoC. Excited already? Then read below some of our ideas and learn how you can be part of this!

Difficulty varies per task but in general GS's SoC is demanding, so you better be honestly interested and willing to work hard and learn a lot.


Below is a list of (not very defined) ideas of things/areas you can work on this summer at GNU social. They are just ideas, not full proposals. You should pick some of them that seem to be related and talk on IRC about it. The community will help you understanding what has to be done so you can put a good proposal together.

Make the ActivityPub plugin started in previous GSoC reliable

In previous GSoC an ActivityPub plugin for GS was developed but isn't compatible with every piece of software used in the fediverse (only working with Mastodon so far) nor completely safe and robust for large usage.

Some of the existing key problems are:

Optimize how storage is used

Add support for temporary posts: This will allow support for "stories" and empower whole instances (and/or single users) to have temporary posts.

Optimize OEmbed plugin and further development on image handler: Work on this has already been started.

Review third party developer interfaces

There are various bots in the fediverse and we feel it might be about time to set them apart from humans so that we know who to kill when the robotic uprising comes, so to speak (ahem).

Ultimately, bots aren’t humans and, therefore, they shouldn’t have accounts claiming that they are “Persons”.

So some good measures for making change are:

Technical sidenote for those who have read the ActivityPub standard: GS Bots are represented as Actors with the Application type, while GS Tools are an internal (not federated) thing that allow Actors with the Person type (commonly referred to as Users) to use third party tools to control their account.

“We have you noticed we’ve straighten every dent up”

Props to XRevan86 for that pun! (Notices in GNU social are colloquially referred to as Dents).

GNU social wants to get polished with a modern looking default theme. For this, it would be interesting to come up with some themes guidelines so, if you’re into web design, this might be the task for you! :)

On the other hand, if you are more into backend development, we’ve got you covered. Some new and interesting concepts in the world of Software Engineering were introduced and we are naturally looking forward to include them and refresh the current code base for the release of GNU social 2 with them!

How to apply?

First read GNU's guidelines on how to prepare a good proposal.

Then please contact us on GS's Development chat to get started on your proposal. For an example proposal, you can refer to AP plugin proposal.

We also suggest that you create an account in the fediverse.

You can contact Diogo either on the above mentioned IRC channel (under the nick: up201705417), by email or on his GNU social profile.