# Community Outreach Working Group
5 Sep 2017
Tags: community
Summary: Announcing the Go Community Outreach Working Group (CWG).
OldURL: /community-outreach-working-group

Steve Francia & Cassandra Salisbury
spf@golang.org

## Announcing the Go Community Outreach Working Group

The Go project has grown considerably with over half a million users and
community members all over the world. To date all community oriented activities
have been organized by the community with minimal involvement from the Go
project. We greatly appreciate these efforts.

After talking to many community organizers we have heard consistent
feedback that they would like better collaboration between organizers and
the Go project. We are forming the Community outreach Working Group (CWG)
to help support these community efforts.

## The CWG Mission

The mission of the CWG is to act as a conduit between the broader Go
community, it’s organizers and the Go project. The CWG will help provide
the structures and community management necessary to create an online and
in person community that is enjoyable and rewarding to participate in. The
CWG leadership represents the Go project in these efforts.

**The CWG is responsible for:**

  - Defining programs to facilitate deeper collaboration across the community.
  - Facilitating the coordination of Go events
  - Establishing growth and expansion plans for the community
  - Project exposure and accessibility
  - Ecosystem Development

**Leadership:**

  - [Ashley McNamara](https://twitter.com/ashleymcnamara)
  - [Cassandra Salisbury](https://twitter.com/Cassandraoid)
  - [Francesc Campoy](https://twitter.com/francesc)
  - [Steve Francia](https://twitter.com/spf13)

## Plans for Action

The CWG has an [open GitHub repo](https://github.com/golang/cwg) we’ve created for complete transparency
of our efforts.  We have various [GitHub projects](https://github.com/golang/cwg/projects) which are acting as our
primary initiatives. Each project has a variety of [issues](https://github.com/golang/cwg/issues) tied to them
with assignees from our Leadership team and [our members](https://github.com/golang/cwg/issues/15).

.image cwg/project.png

If you’d like to get involved, we encourage you to comment on the issue
that interests you or [submit an issue](https://github.com/golang/cwg/issues/new) yourself!
