These are the communication guidelines for the CiviForm community, including anyone interested in contributing to the open source project.

  • For announcements & recognition → email lists. Why? Emails are accessible and universally used across organizations.

  • For tracking work → GitHub. Why? GitHub is our project management tool and should be the source of truth for ongoing work.

  • For all other communications → Slack. Why? Slack is accessible across organizations and is useful for immediate conversations.

Google Groups

Google Groups enable people to post and engage in discussion topics via forums or email. Certain Google Groups are also used to manage access to shared documents. All group aliases are

Google GroupPurpose & AudiencePermissionsHow to join


Announcements to the CiviForm community. Join if you are a contributor or maintainer.

Only managers can post. Anyone can view posts.


Technical announcements. Join if you are a technical contributor (e.g. software engineers).

Anyone on web can post. Only members can view posts.


Group used to forward automated test infrastructure emails to. Join if you are working on the deploy system.

Anyone on web can post. Only members can view posts.


Sensitive and non-public incident reports or technical escalations Join if you are an on-call software engineer.

Anyone on web can post. Only members can view posts.

Invite only. Contact @bionj to be added.


Updates about ongoing projects and product development, shared with active collaborators. Join if you are an active collaborator and interested in updates.

Only members can post. Only members can view posts.


Discussions for Governance leads. Join if you are a Governance lead for your civic entity.

Anyone on web can post. Only members can view posts.

Invite only. Contact @tareens to be added.


Access control for CiviForm Drive. Join if you want to access the “CiviForm Project Private” folder of the CiviForm Drive or edit Drive files.



Email alias for general inquiries into CiviForm ( forwards here). Join if you want to be involved in outreach.

Only members can post, only members can view.

Slack Channels

Slack should be used by individuals actively contributing to and / or maintaining CiviForm.

Note: If we find that collaborators at civic entities cannot use Slack, we should reassess this approach.

Slack ChannelPurposeWho should join?


All general announcements



Introduce yourself to the CiviForm community

Everyone (optional)


For any and all engineering discussions

Software Engineers, PMs (optional)


For deep dive discussions on PR reviews

Software Engineers


For bot updates from github (e.g. new issue created, new PR)

Software Engineers, PMs


For off topic fun



For PM and UX discussions


#civic-entity (e.g. #seattle)

For topic-specific discussions with a given civic entity.

Anyone from the specified civic entity and their designated collaborators.

Slack Norms:

  • Should add descriptions of purpose directly to channels in Slack.

  • Use threads to centralize discussions on a particular topic

  • Use @channel and @here judiciously

  • If you’ve never used Slack before, watch this 4 min intro video for the basics

Shared Drive

NOTE: If your Google Workspace domain (e.g. does not allow you to create external documents, use and rename an existing ‘Untitled Document’ in the CiviForm Project Drive.

CiviForm Project Shared Google Drive

  • Created through Google Workspace.

  • Join the civiform-docs@ Google Group to access and edit documents.

CiviForm Project FolderPurposePermissions

For documents that are intended to be publicly visible and commentable.

Anyone on the internet with this link can view and comment.

For non-public files that other CiviForm contributors are collaborating on.

Restricted. Only people in the civiform-docs@ Google Group can view and edit.

Types of communications

Google Groups

  • I have an announcement for developers or technical contributors (“feedback on new technical design requested”) civiform-technical@

  • I have an announcement for an IT team managing a deployment (“new release, install update”, “critical security fix has been released”) civiform-announce@

  • I have a non-technical announcement for users or program administrators (“a new feature has been released”) civiform-announce@

  • I want to recognize or celebrate work (“We launched CiviForm in this city!”) civiform-announce@


  • I have an idea for a feature (“I think we should have an application tracker”)

  • I want to report a bug (“This feature isn’t working as expected”)

  • I want to follow the status of this Github issue (“what happened with that bug?”)


  • I want to discuss this PR (“I have some questions about this PR”) #pull-request-discuss

  • I want support on this issue (“I’m looking to pair with someone on this”) #engineering

  • I want to get to know other CiviForm contributors (“Who else is working on CiviForm?”) #introductions

  • I need eng help (“I’m having problems setting up CiviForm on my local” OR “This software build is broken”) #engineering

  • I have questions about CiviForm (“how do Trusted Intermediaries use CiviForm?”) #general

  • I want to chat with people who are working with a specific Civic Entity (“We are delayed for x weeks,” or “We need someone to recess the security audit”) #civic-entity

No Wrong Door Policy

  • I have a sensitive escalation (“I found a security issue”)

  • I have a non-sensitive escalation (“I have an incident” “Who’s on call?”)

Public Drive

  • I want feedback on this document (“I want feedback on this PRD”)

  • I want to learn about CiviForm (“What is CiviForm?”)

Last updated