Dude, where's my feature?
Again, a big welcome to everyone who's been joining us recently!
If you've just signed up, particularly if you've come from a feature-rich service such as Facebook or Google+, you've probably noticed that some of your favorite features are missing from diaspora*.
We'd love diaspora* to be as feature-rich as any other social platform, and we wish that we'd been able to add more features to the software in recent years. Why haven't we?
The two main things that have held back development are:
- The available developer resources.
diaspora* is built and maintained purely by volunteers working in their spare time. This means that there aren't the resources to build everything that's wanted, and priorities have to be made. We also need to make sure the code works properly and doesn't disrupt the user experience in other ways. Sometimes "move fast and break stuff" isn't the best policy!
- Making sure that a feature is built right.
We want diaspora* to be a new type of social experience, not a clone of existing ones. When adding a feature, we first need to consider "is this really the best thing for a social network?" diaspora* therefore won't put effort into recreating the features found on other networks unless they are going to have a positive effect on this network, which might mean implementing them in a different way from what you've used elsewhere. We also won't implement any features that don't match diaspora*'s core principles of data ownership, privacy and freedom.
For both these reasons, we can never promise that a requested feature will be built into diaspora*'s software, and certainly can't guarantee a time frame for any addition.
That said, many of the features you want are already on our wish-list. So please, if you find something missing, don't open a GitHub ticket or start a Discourse discussion requesting it before checking if there's an existing ticket or discussion about it. And please don't add a comment on a GitHub or Discourse issue just to say "I want this feature!" or "How long before we get this?" That just creates noise and never helps to move things forward. It's not a lack of desire that holds things up!
Some of the most-requested and most-needed missing features are:
• Account migration
In a distributed system based on ownership of data, it's essential that people can move their data from one pod to another. This needs to be both user-friendly and secure. The feature has been incredibly complex to build and the work has taken more than two years so far. The final back-end process – import data to another pod – is currently undergoing a thorough and lengthy review stage and is planned for inclusion in our next major release. Then a UI (user interface) is needed, which should be more straightforward to make. Read the ongoing discussion here.
• Groups
A properly working groups feature would be a great addition to diaspora* and something we'd love to include. There have been various ideas about how best to implement this. Read the discussion here.
• Post editing
This is another feature that's going to be essential to get right. We had a lot of discussion in the past and came to an agreement on how to proceed. We now have a draft spec, and our federation protocol is ready to support editing. Read the discussion here.
• Events
Events are now supported by our federation protocol but the UI is still missing. We'd love someone to step forward and build this feature for our community! Read the discussion here.
• Photo "albums"
We decided that the best way to organize photos would be to use diaspora*'s #tag system. Again, this would be a great addition to the UI and we hope that someone from our community will decide to create it. Read the discussion and proposals here.
• API
API stands for "application programming interface." It gives a structure and language for apps to work on the network. Once this has been released, it will be far easier to create and implement apps for diaspora*. The documentation is already written and some work on an API is currently underway.
For most of these features, the groundwork has been done, and all that is needed is for someone or a group of people to step forward, claim the feature and get working! So if you want to help improve diaspora* by adding any of these features, or anything else, please introduce yourself! If you're new to diaspora* development, have a look at our guide to starting to contribute. If you choose to work on one of the features above, our core team will give you as much support as they can; although, given the voluntary nature of all work on diaspora*, it can sometimes take a long time to properly review a complex PR.
We hope this answers some of your questions about diaspora*, and we really look forward to contributions from coders among our new community members. You are awesome, and together we can make diaspora* better! <3
#diaspora #development #feature #edit #editing #pod #migration #groups #events #photo