OAuth Support in WriteFreely

Our next release of #WriteFreely, v0.12, is shipping with OAuth 2.0 support! This will make it even easier for people to join your instance, and use WriteFreely as a complement to other tools.

We'll support three different OAuth providers in v0.12, thanks to Nick Gerakines who laid all the OAuth groundwork and support for Write.as & Slack, and Kyle Robbertze who added GitLab support.

This development was initially driven by our Write.as for Teams service. Since Teams customers need a Write.as account for spinning up an instance and managing billing, the extra step of creating another account in WriteFreely caused plenty of confusion. Our Write.as OAuth integration helped alleviate that — and paired with Slack sign-in, now entire teams can easily join a WF instance.

Aside: It's entirely possible that our locked-down “Write.as” provider will change into a generic “WriteFreely” provider in the future, if it makes sense for WF to become an OAuth provider. Especially with more federation capabilities on the reading side, multiple WF instances and identities hosted in WF could make more sense.

Thoughts or ideas? Let me know @matt@writing.exchange.

Next, with the start of the Debian Social team, Kyle approached us about utilizing their GitLab instance for user authentication. The timing couldn't have been better, and we were able to collaborate and merge his work on #277 in time for this next release!

Adding a new provider

Now that the basics are there, we'd love to support new OAuth providers that will make it easier for WF communities to grow. While not completely seamless today, fortunately the work is pretty straightforward, whether you know Go or not.

I wrote a step-by-step guide on how to modify WriteFreely for this over on the forum. Even if you haven't worked with Go before, as long as you can set up your development environment and copy some existing code, you can add a new provider.

As mentioned in that forum topic, we're more than happy to accept new providers that'll help you and benefit many other people. So don't be afraid to reach out to us about your use case, and contribute new code for this.