Contributing

Enjoy WriteFreely? Want to help build it? We welcome your help and input!

WriteFreely is backed by the Write.as team. While we provide the vision for the project, WriteFreely is ultimately a community effort, and thrives when it gets input and support from the people using it. We can't do this alone — even when the software was closed-source, we heavily relied on users telling us what they needed so we could build it around them.

So whether you know how to code, know another language, or are good at communicating with others, you can have a direct impact on this project.

Contents

Helping Others

One of the best way to help the project is to help other people in the community. A great place to start is on our forum. It's the place where everyone can ask for help and get equal access to the answers and input shared — and it works best when everyone joins in.

Requesting Features

Using WriteFreely for something in particular? Is it missing a feature you'd find useful? Let us know what you'd like to see, and how we can improve the platform for you!

We use our forum to make user feedback accessible to as many people as possible. To request a feature, you'll head over to the Feature Requests category. First, search to see if someone else already had a similar idea. If they have, you can Vote for it and leave a comment describing how it would help you in particular.

If no one has requested the feature yet, start a new topic describing what you'd like to see. Go into as much detail as you can — mention how you already use the software (or plan to use it), and how the feature would improve things for you. Every detail helps!

Reporting Bugs

Find a bug in the software? Use the GitHub issue tracker to report the issue. We're very responsive there and work to keep open issues to a minimum, so you can help by:

Translating the App

Know another language besides English? We could use your expertise to translate the app into more languages.

Right now, a small segment of the app is localized in 20+ different languages — mostly around reader-facing pages such as blogs and posts. How it works is that each post has a language piece of metadata that describes what language the post is written in. The software uses this to show common text elements (like the date or "Read more..." links) in the same language as the post.

To translate the app, you can head over to our POEditor project. Feel free to contribute to any existing languages that aren't 100% translated, or add a new language that you know.

To translate dates, for now you'll need a little technical knowledge, particularly with Go (golang) and git. You can add new languages and date formats by submitting a pull request on the monday library. (This does not require signing the CLA.)

Contributing Code

Important: Before contributing any code, please read and sign our Contributor License Agreement (CLA).

The copyright license you grant us by signing the CLA helps us ensure the long-term viability of this open source project, among other things. However, if you don't understand or agree with the terms, please do not sign the CLA or contribute code. (This, of course, doesn't restrict your freedom to fork and modify the software under the terms of the AGPL.)

Want to help us build out features, improve the installation / build process, or fix bugs? We'd love to have your help!

You can always get in contact with us on the Development section of the forum if you have any questions about the changes you want to make. But, depending on the impact of the change, this first step may not be required.

Small changes / fixes

For small changes that minimally affect the operation of the application, feel free to start working without contacting us.

  1. Make sure you've signed the CLA
  2. Fork the project
  3. Create a new git branch
  4. Make the change

Once you're finished, you can open a pull request on GitHub. In it, you should:

Then, submit! The team and other contributors will review it at their earliest convenience.

Larger features

We have very specific goals in mind with WriteFreely, and want to encourage developers interested in working on these larger problems to contribute in major ways.

If you would like to develop larger functionality that isn't yet on our development roadmap, head to our forum and start a new topic in the Development category. If you're not registered yet, you can quickly log in with your GitHub account.

If you would like to work on something that is on our development roadmap, first ensure that it isn't assigned to anyone yet. If it isn't, please create an account on Phabricator and leave a comment on the task you'd like to work on. Once you get the go-ahead from a team member, feel free to start working.

  1. Make sure you've signed the CLA
  2. Fork the project on GitHub
  3. Create a new git branch
  4. Make the change
  5. Reference the task in your commits by including Ref T500 in the commit message, where "500" is the Phabricator task number

Contributing Documentation

If you're good at technical writing, our documentation is a great place to contribute to the project. We try to make all of our documentation easy to understand and accessible to as many people as possible.

Requirements: basic knowledge of git and Markdown.

We track all documentation in our documentation repository on GitHub. To submit new changes or improvements, you can submit a pull request here.

As this project is early, there is still a lot of work to be done on document organization. To discuss what needs to be done (and how it should be done), you can start a topic on the forum. As with the main project, please only submit bugs in the GitHub issue tracker. All other discussions and questions should happen on the forum.

Becoming a Long-Term Contributor

We want contributors who invest their valuable time in the project to have a real stake in it, and a hand in the direction it goes.

We will grant higher privileges to people who regularly contribute to the project, whether by helping on the forum, contributing code / documentation / translations / etc., or assisting in any major way.

Forums

For anyone who regularly helps out on the forum, we'll grant you a higher user trust level, so you can continue helping as much as possible. If you're interested in doing this regularly, we can also grant you moderator privileges.

GitHub

After you've submitted a larger patch or several high quality patches, we'll make you a Collaborator on GitHub. This gives you push access to the repo, the ability to merge pull requests, the Collaborator badge, and other privileges.