From PostgreSQL wiki
Jump to navigationJump to search

PostgreSQL User Group Operating Manual

This is an incomplete document about how to start and run a PostgreSQL User Group. Please help us finish it!

Creating a New User Group

PostgreSQL User Groups (PUGs) are an essential part of Postgres advocacy activities. We encourage Postgres users to take an active role in engaging with their local communities and growing number of Postgres users. Those interactions make our community stronger and our database better. Where should you start? Here are a few steps to guide you through the process.

Starting your PUG

First, check that a user group doesn't already exist in your area on the official Postgres User Group page and on Here are a few guidelines to follow:

  1. Review the operating guidelines - Review the Recognized PostgreSQL User Group guidelines, which provide information on the community requirements for running a PUG
  2. Where to get help - there are over 600 Postgres enthusiasts on Postgres advocacy mailing list, who can help you setting up your group, attracting new members, providing ideas and keep it growing.
    • Join the pgsql-advocacy mailing list (it's low-traffic)
    • Email announcing that you would like to create a user group in your area and if need funds.
  3. Setting up a platform - is often used by our community as a platform for PUG interaction* - for announcing dates and topics of your next meetup, interacting with your community and posting follow up updates. It is a good start for your peers to get to know each other and for new members to join. You can also create a Facebook group or set up your own platform. Please consider your local specifics and popular platforms in your area.
    • register on,
    • create a new PUG. When creating a name for your PUG we suggest using the following format “Postgres [local geography] user group”, so that you’ll be easier to find.
  4. Wider community announcement - there is a high chance that in your local area there are other Postgres enthusiasts, like you, who would like to join your group, so you need to reach out to them and invite them to your group.
    • Ask advocacy mailing list to add your group to the official Postgres PUGs page on website,
    • Join other PUGs in your country, and make the announcement about your group on their platforms (there is a high chance that your local peers will be on those existing groups since there wasn’t a group in your area),
    • Additional places to announce your user group include (but not limited to): pgsql-general mailing list,, Postgres Slack channel, your local country mailing list (see Regional lists section), if you have thematic groups on your local platforms (e.g. groups on Telegram channels) post the news there as well. If you have an account on Facebook, Twitter or LinkedIn leverage those to spread the word.
    • Submit news about your new PUG to the main page (news section).

If you get need suggestions on how to attract more people to your group email or have any questions - contact advocacy mailing list.

  • Note that, as a rule, no longer offers mailing lists for PUGs since we find that they are not used.

Once you’ve created and announced your PUG you will have people joining your group online and you are ready to hold your first meet-up.

Holding your First Meet-up

A successful PUG meeting has three things:

  • A presentation Topic (think about what could be of interest for your audience)
  • A centrally-located venue
  • Food and drink (so people don't have to skip dinner)
  • Announcement (you will need to announce your Meet-up widely and remind about it, so that people who would like to attend won’t miss it)

Here is a bit more detail:

  1. Topic PUG Meet-ups are similar to any other meeting, event, conference or project - to be successful, focus on the audience. The narrower your focus, the better your meet-up will run; resulting in a stronger community. Think about what kind of professionals you are seeking to attract? Developers, DBA, those at the leadership roles in organisations? Those who already work with Postgres or those who are just starting? How can you help them? What content would they be interested in? If you need more guidance on this or ideas on whom to invite as speaker contact advocacy mailing list.
  2. Venue

    Venue is equally important as the topic that you choose for your Meet-up. Ideally, it needs to be central and well connected so that as many people as possible could attend. Naturally, this could be quite challenging from the budget perspective, however there are several option you can consider:

    • Your company (might be interested in sponsoring the event if it wants to attract Postgres talent or wants to position itself as Postgres-centric open-source focused company)
    • Another PostgreSQL-using organization in town (for the same reasons above)
    • Public community meeting spaces (they are cheap to hire and usually have all needed equipment)
    • A restaurant with an upstairs/back meeting room (a extra plus is that you won’t lose hungry participants, however, you will need to check if there is a projector available or consider having a more informal discussion rather than presentations.)
  3. Food and drink

    Food and drink are key to keeping participants coming to your Meet-up.

    Participants won’t expect that you treat them to a five-star dinner, however, if you hold your Meet-up after work (18:00 - 19:00 is ideal) having small snacks as well as an option to go to a restaurant nearby after a Meet-up is a fantastic opportunity to network and strengthen your community.

    Paying for food and drink:

    • It is possible to have food and drink sponsored by the Postgres community for your first Meet-up - ask advocacy mailing list.
    • You can also consider "passing the hat" for pizza or some other inexpensive food; make sure that attendees know about this in advance. Also, be prepared for the hat to not quite make up the cost of the food.

      For ordering food, consider that actual attendance tends to be 50% of RSVPs. Don't over-order. Also, remember that you will have attendees with dietary requirements (vegetarians, vegans, those with dairy or gluten intolerances).

      Once you have sorted the Venue, food and drink and your Topic/Speakers you are ready to spread the word about your Meet-up.

  4. Announcement

    Your platform (Facebook page, page, Telegram channel etc. ) whichever you have chosen as your meeting platform should have details about your next Meet-up (topic, speakers, location and how to get there etc.), however, you still need to attract potential participants to your platform to read that information.

    You can do that by announcing your first Meet-up on as many relevant channels as possible. Consider your audience, where do they hang out online? What do they read? What are their interests?

    Here are just a few ideas where you can announce your Meet-up:

    • PostgreSQL News and PostgreSQL Events
    • pgsql-advocacy mailing list
    • pgsql-general mailing list
    • Your own blog, if you have one
    • If you have a sponsor, consider their channels
    • Twitter,Facebook, LinkedIn
    • Check for other groups in your area on, some of them might have shared interests with your audience
    • Same channels you used for announcing your PUG

      Note that this "announcement blast" is only really appropriate for your first meeting. Once you reach a certain amount of participants and you run Meet-ups regularly the word will spread and your participants will be your advocates and will spread the word for you. ! Please do not post every meeting you have to all of the above locations.

Holding More Meetups

It's important, especially in your first year, to hold meetings regularly as much as possible. Once monthly or every three weeks is perfect. This way local users expect that your meeting will be taking place and will plan ahead. It will also make things easier for you for booking venues and seeking speakers as you'll know about the next date in advance.

This will mean holding some meetings where the attendance is only a few people. That's OK; building a new user group takes time. The second meeting of SFPUG had only 3 people and now it is a community of over 1000 people. The important thing is to have regular meetings so that the local users start to expect to be at your PUG every month.

Useful Links

Some additional links for PUG information:


Below are addtional notes for parts of this document which aren't yet cleaned up and organized. Please read through them for ideas!

  • Finding a place to meet and picking a regular time and day
    • Some ideas are: (Make reservations well in advance)
      • Library Conference Rooms
      • Restaurant Conference Rooms (advantage is everyone orders what they like)
      • Company Conference Rooms
      • Students may have access to school facilities (Be sure to get approval from school)
  • Announcing your meeting
    • Contact local school CS departments and clubs (in person is better that email)
    • Contact other local User Groups (e.g. Perl-Mongers)
  • Advertising your group
    • Create a PUG business card
    • Have Flyers posted announcing upcoming meetings at near by campuses
  • Meeting topics
  • Meeting structure suggestions
  • Meeting Checklist
  • Connecting with other user groups
  • Organizing a PGDay
  • PostgreSQL Advocacy resources

Brain Dump

> I have no problem inviting
> people to get together for a casual drink and talk about Postgres, but
> that's about as much of a plan as I have. 
Honestly, that could be the best way to start. There is no single
formula for what actually happens at a user group - because that is
highly dependent on who actually attends :)
  • PDXPUG's background story:

My first user group meeting in Portland was three people - one of whom was a *really* good friend that I conned into coming, and the other was a long-time Perl Monger, sort of a friend, and a maintainer of a Perl + PostgreSQL content management system. So, now, we regularly have 15 people. It takes a while to build up, but I have to say that running PDXPUG has been the most fun experience I've had with open source people. We regularly hack on stuff together, and are all pretty good friends at this point.

  • Tips on starting out:

The best places are existing user groups - do you have a Linux user group? Just send an email to that mailing list and ask about people interested in database stuff, and PostgreSQL in particular.

There may also be some other open source folks who work in the web space - PHP developers, Perl/Python folks and even Rubyists. Many of them would be interested simply to meet other people who know a bit more about PostgreSQL than they do. We get quite a few people who just drop in from time to time when they've got a problem they would like to talk to some database folks about.

Does the local university have a computer science department? Any database people in it? And, short of database people, who are the professors that teach the database courses? Sometimes you can get a friendly professor to advertise the group to students. We get masters and PHd students attending and even presenting at our meetings.

All the stuff I mentioned above can be accomplished by just sending out a few emails. Following up with phone calls can also be quite helpful, but is not typically necessary.

The secrets to success are:

  • Have the meeting at a regular time and place (once a month, at a certain day and time seems to work really well).
  • Advertise 2 weeks ahead, on Monday before the meeting, and then again on the day of the meeting
    • send your 2 weeks-ahead and Monday before the meeting announcements to all the local open-source friendly mailing lists - or at least the leaders of those mailing lists for distribution
    • Mondays/Fridays are bad nights for meetings, unless you have an extremely dedicated group, or are focusing on Friday happy hour
  • Have a particular topic to discuss, and a plan for holding people's attention for at least 20 minutes
  • Have time for socializing - at the pub, or at the place where everyone is meeting
  • Make sure that everyone goes around the room and introduces themselves somehow
    • Lots of geeks hate this, but in the end, they see how valuable it is
    • We try to make up a silly question -- like, "what is your favorite EXPLAIN operator?", "Chocolate or beer?"
    • Primarily, you're trying to get everyone to say their name, and then some little thing that will help you remember who they are
    • Do this EVERY time.
  • Make other announcements -- you could take them from the postgres weekly news, from stuff you know is going on around town, also just ask everyone that's present if they have any announcements to share.
  • Have the "meet and talk" portion of the get-together be in a place where everyone can *hear* each other. The pub is great, but unless you have a space that's off to the side and a bit quieter, you'll have a hard time.
  • After every meeting, post a paragraph or two about what happened. Some people go nuts and write a novel about what happened (which can be awesome!), but just a few sentences that confirm your existence, and that you had a good time is enough advertisement to convince a new person to show up next time.

There's really two things you're trying to accomplish with the meetings:

  1. Have everyone share a group experience
  2. Allow people to break off into smaller 2-3 person groups and *really* get to know each other

When you accomplish #1, then everyone has something that they can small talk about, and that leads to better group cohesiveness.

Finally, as far as topics go -- they do not matter as much as you would think. It is *definitely* enough to simply have people talk about what they do in their jobs - for just 20 minutes if they're not up for a 45-minute talk. We did something with EXPLAIN operators, where a member of the group would give a short description of an EXPLAIN operator and an example at the start. That was really cool, actually, and we learned a lot.

To get topics, I just ask people until they give in :) And, I do my best to get 2 talks lined up at a time, to save myself some work.

The key is - start having meetings, and just keep having them, even if only 3-4 people show up.