What news from AWS re:Invent last week will have the most impact on you?
Amazon Q, an AI chatbot for explaining how AWS works.
Super-fast S3 Express storage.
New Graviton 4 processor instances.
Emily Freeman leaving AWS.
I don't use AWS, so none of this will affect me.
Open Source / Security

Scaling Open Source Community by Getting Closer to Users

Taking a step back from community support to better help new users, faster.
Oct 31st, 2023 6:24am by
Featued image for: Scaling Open Source Community by Getting Closer to Users

Open Policy Agent (OPA) is a general-purpose policy engine that unifies policy enforcement across the stack. Images for OPA projects have been downloaded over 2 billion times and over 3,000 repos on GitHub feature code in OPA’s domain-specific policy language Rego.

Growth like this doesn’t happen overnight or without significant effort. Every day, new users sign up for the Open Policy Agent (OPA) community Slack, the main community support point for OPA users. Some are looking for help designing production architectures or scaling challenges but most are new users just starting their Policy as Code journey with OPA and Rego.

At Styra, the creators and maintainers of OPA, we hold our responsibility to nurture and expand the OPA community as a high priority. Until recently, our approach has been focused on having conversations with users, answering their questions, and producing helpful content (both blogs and project documentation). Over time though, as we’ve continued to scale, we started to ask ourselves if we could help users earlier — and ourselves — earlier.

We had to help users learn faster and more effectively while maintaining a kind and helpful community where there are no stupid questions and all users receive a high standard of personal support — only now for even more users.

Yeah, That Won’t Scale

The idea of a Slack community offering free personalized support doesn’t sound like the kind of thing that would “scale,” but it did. The OPA community grew to over 7,000 strong with our conversation and content approach. But at this scale, we started to see some cracks, especially with new users.

We started with a question: How valuable is our Slack community and documentation for users in their first week with OPA? It’s easy to get sucked into documenting and answering everything for everyone without really considering what’s most effective.

We identified some interesting problems new users have:

  • New users don’t yet know where to start. An extensive documentation site, with detailed reference pages and walk-throughs of complex use cases can be daunting. One can search, but what do you search for when you don’t know what’s there? We can share links, but what about users who didn’t pluck up the courage to ask a question?
  • Meet them halfway. Hitting a roadblock while hacking away on a problem is never fun, but having to leave your editor, search the docs, sign up for another Slack team and formulate a good question is a major context switch away from the task at hand. What if we could provide support relative to the task at hand without the need for a context switch?
  • Documentation isn’t for everyone; public question-asking isn’t either. People like to learn in different ways. Could we offer support via an entirely new medium? Who could we reach?

So we were looking for a solution that allowed users to get support faster even than alt-tabbing to their browser, something with no sign-up process or context switch.

On another thread, we’d been working on a style guide for Rego. This contained details of bugs that could be identified from the syntax. When we considered automating this guide, we thought we might be onto something.

Enter Regal: The New Linter for Rego

Regal is the new linter for Rego. It’s built in Go and Rego. That’s right, we’re using Rego to write rules about writing good Rego! Anders Eknert on our DevRel team started the project, but we’ve already had more than 10 contributions from other members of the community. Together, we hope to build the best Rego sidekick around.

Let’s look at an example of a simple mistake we can catch with Regal. Here’s a policy that’s meant to deny non-admins:

Spot the mistake? What this policy actually means is: Block any users who have any role other than admin — not quite what we had in mind. Regal users making this mistake will be directed to this support page, which features a detailed explanation and an alternative implementation to use. This is just one of many examples of how Regal can automate the detection of common mistakes.

But how do we get users to run Regal?

Meeting Users Halfway

Regal doesn’t come as part of OPA; it’s a separate tool so we need to make it easy for users to discover. We need to meet them halfway. We’ve started by building an integration with our online playground, a well-used resource for trialing new policies during development. At the time of writing, we see a request to lint a user’s Rego multiple times a second. That’s faster feedback than users could ever get from us on Slack. Combined with some healthy visitor stats on our Regal documentation, we know we’re starting to reach users.

Next on the roadmap are integrations with common editors and an off-the-shelf GitHub Action to help make Regal present in popular Policy as Code repositories.

We’d love to get feedback on our new project. Please take a Regal for a spin today in the online playground and drop us a message on our Styra Slack if you have any questions, feedback or ideas for contributions and integrations.

Join us at KubeCon + CloudNativeCon North America this Nov. 6-9 in Chicago for more on Kubernetes and the cloud native ecosystem.

Group Created with Sketch.
TNS owner Insight Partners is an investor in: Pragma.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.