Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Social Marketing Handbook

On this page

Social activities

In addition to promoting corporate and field events, content marketing assets, company updates, etc., we also undertake some activities just for our social communities. These help us communicate with and nurture our social communities, so we're not always treating social as a way to extract value or information from our followers. You wouldn't stay in a relationship that one-sided in real life, so why would you with a brand?

Here are some examples of native social events and social activities. You can open an issue in the marketing project and mention @evhoffmann if you'd like to propose a social activity.

Social Takeover Notes

So you've been nominated for a short-term takeover of GitLab's social channels — here's a quick guide with everything you need to know.




tweet example


Signing off

Requesting Social Promotion

Open a separate issue for social

What to expect

While at the Event:


We use giveaways to encourage and thank our community for participating in marketing events such as surveys, user-generate-content campaigns, social programs, and more.

Giveaways Process


  1. Create an issue and tag Emily von Hoffmann (@evhoffmann) to determine the rules of engagement and Emily Kyle (@emily) for prizes.
  2. Create and publish an Official Sweepstakes Rules page


  1. Winners must sign an Affidavit of Eligibility & Liability, Indemnity, and Publicity Release. Use the "Affidavit of Eligibility - Sweepstakes" template found on the google drive.
  2. Announce the winners

Social Support & Logistics for Giveaways

Creating the Campaign


Day of giveaway

After the Giveaway

How to Create an Official Sweepstakes Rules Page

  1. Create a new folder in /source/sweepstakes/ in the www-gitlab-com project. Name the folder the same as the giveaway /source/sweepstakes/name-of-giveaway
  2. Add an file to the /name-of-giveaway/ folder
  3. Add the content of this template to the file.
  4. Replace all bold text with relevant information.
  5. Create merge request and publish.

Social Channels and Audience Segmentation

You can find a list of evergreen content assets their primary channel for promotion here.








Sometimes, posts that GitLab team-members propose for our blog may be a better fit for native publishing on LinkedIn. This is not a negative, it's usually due to the content team's strategic priorities at the time. Rebecca and Emily vH will recommend that you publish on your own LinkedIn, and if you agree, Emily vH will help you finalize the post and socialize it internally for best results.




GitLab has a Medium publication, and all GitLab team-members may be added as writers! To be added as a writer to the publication, import a blog post that you authored on to your personal Medium account, and submit it to the GitLab publication (by hitting edit -> submit to publication -> GitLab Magazine). Emily vH will approve you as a writer and help finalize the post before publishing.

If you submit original content (i.e., not originally published somewhere else) to the publication for review, she may edit and publish your post. We want to highlight writers wherever possible, so we highly encourage you to import posts to your personal Medium.






Defining Social Media Sharing Information for web pages

Social Media Sharing info is set by the post or page frontmatter, by adding two variables:

description: "short description of the post or page"
twitter_image: '/images/tweets/image.png'

## Ensuring your Post Will Have a Functional Card and Image

When you post a link on Facebook or Twitter, either you can see only a link, or a full interactive card, which displays information about that link: title, **description**, **image** and URL.

For Facebook these cards are configured via [OpenGraph Meta Tags][OG]. Twitter Cards were recently set up for our website as well.

Please compare the following images illustrating post's tweets.

A complete card will look like this:

![Twitter Card example - complete][twitter-card-comp]

An incomplete card will look like this:

![Twitter Card example - incomplete][twitter-card-incomp]

Note that the [first post] has a **specific description** and the image is a **screenshot** of the post's cover image, taken from the [Blog landing page][blog]. This screenshot can be taken locally when previewing the site at `localhost:4567/blog/`.

This information is valid for the entire website, including all the webpages for, handbook, and blog posts.


All the images or screenshots for twitter_image should be pushed to the www-gitlab-com project at /source/images/tweets/ and must be named after the page's file name.

For the second post above, note that the tweet image is the blog post cover image itself, not the screenshot. Also, there's no description provided in the frontmatter, so our Twitter Cards and Facebook's post will present the fall back description, which is the same for all

For the handbook, make sure to name it so that it's obvious to which handbook it refers. For example, for the Marketing Handbook, the image file name is handbook-marketing.png. For the Team Handbook, the image is called handbook-gitlab.png. For Support, it would be named handbook-support.png, and so on.


The description meta tag is important for SEO, also is part of Facebook Sharing and Twitter Cards. We set it up in the post or page frontmatter, as a small summary of what the post is about.

The description is not meant to repeat the post or page title, use your creativity to describe the content of the post or page. Try to use about 70 to 100 chars in one sentence.

As soon as you add both description and social sharing image to a page or post, you must check and preview them with the Twitter Card Validator. You can also verify how it looks on the FB feed with the Facebook Debugger.


To see it working, you can either share the page on Twitter or Facebook, or just test it with the Twitter Card Validator.