Domma CMS User Manual

Social Media Pro

Updated by Darryl Waterhouse on 16 October 2026 10 min read

Social Media Pro controls how your pages look when someone shares them, and posts them to Bluesky, Mastodon and LinkedIn for you. Open it from Social in the admin sidebar (Social).

What it does

  • Share cards - the title, description and picture Facebook, X, LinkedIn, WhatsApp and Slack show when a page is shared. Each card starts from the page's SEO values; you can change them for sharing only.
  • Drawn share images - any page with no picture of its own gets a 1200 x 630 image drawn in your site's colours, with the page title, the site name and (optionally) your logo and address.
  • Share and follow buttons - the [share /] and [follow /] shortcodes. Plain links: no scripts from the networks and no tracking.
  • Posting - to Bluesky, Mastodon and LinkedIn: straight away, at a set time, or kept as a draft. New blog posts and pages can be drafted (or posted) for you automatically.
  • Link tagging - links in posts carry utm_source, utm_medium=social and a campaign, so Analytics shows which network sent the visitor.
  • Calendar - with the Calendar plugin, scheduled and sent posts appear there as "Social posts".

Getting started

  1. Open Social in the sidebar.
  2. Press the cog at the top right (Social settings) and choose the design and colours of the drawn share image. Press Save.
  3. Open the Accounts tab and connect at least one network (see "Connecting accounts" below).
  4. Open the Posts tab and press New post to post about a page.
  5. To add share buttons to a page, put [share /] in its content.

Screens

The screen has three tabs. Each one has its own address, so you can bookmark it: #/plugins/social, #/plugins/social/posts and #/plugins/social/accounts.

If LinkedIn's connection is about to run out, has run out, or needs one more sign-in, a yellow banner with a Reconnect LinkedIn button shows above the tabs on every tab.

Share cards

Every page in the sitemap, with its address, title and state: from SEO (nothing changed here) or changed here.

  • All / Changed here - show every page, or only those with their own share card.
  • The search box finds pages by address or title.
  • Click a row (or press Enter on it) to open its share card.
  • Right-click a row, or use its menu button, for: Share card..., Post about it..., Open the page and Check on Facebook.

The share card panel shows:

  • As it will look - a preview drawn the way each platform draws a link, with any problems listed below it.
  • For Facebook, LinkedIn, WhatsApp and Slack - Title, Description and Image (1200 x 630). Leave a field empty to use the page's SEO value. Choose... picks an image from Media.
  • For X - Title, Description and Image. Empty uses the values above.
  • Draw an image when the page has none - switch off to stop the drawn image for this page only.
  • Links to ask Facebook or LinkedIn to read the page again.

Press Save. Your site shows the new card at once. The platforms keep a shared page's card for days, so after a change use the Facebook or LinkedIn link to ask them to read the page again.

Posts

The queue of drafts and scheduled posts, and the log of what went out.

  • Waiting - drafts, scheduled posts and failed posts.
  • Posted - what has been sent.
  • All - everything.
  • The number on the tab counts drafts and failed posts.

Each row shows the status (draft, scheduled, sending, posted or failed), the network, when, the page and the text. A failed post shows the reason.

Click a post that has not gone yet to edit it; click one that has gone to open it on the network. Right-click a row, or use its menu button:

  • Post it now - send it at once.
  • Edit... - change the words (line breaks are kept) and whether it waits as a draft or goes at a time.
  • Schedule it... (drafts and failed posts) or Change the time... - the same panel, opened at the time, which you pick in your own time.
  • Back to draft - stop a scheduled post from going.
  • Open the post - the post on the network, once sent.
  • Remove - takes it out of the list. A post that was already sent stays on the network.

Writing a new post

  1. Press New post. If no account is connected yet, you are sent to Accounts first.
  2. In Page, type or pick the page's address (for example /blog/my-post) and press Fill in. Its title, description and address fill a text box for each connected network.
  3. Change the words as you like. Switch off any network you do not want. The counter under each box shows the length against that network's limit: Bluesky 300, Mastodon 500, LinkedIn 3000 characters.
  4. In When, choose Now, At a time (then set Time) or Keep as a draft.
  5. Press Post now, Schedule or Save draft.

Scheduled posts go out within a minute of their time.

Bluesky and LinkedIn posts include a link card with the page's title, description and share image. Mastodon draws its own card from the page's share card.

Accounts

One card per network. The pill at the top right of each card shows who is connected, or not connected. Right-click a card's title, or use its menu button, to test the connection or disconnect it; LinkedIn's menu also connects, copies the redirect URL and can forget the app altogether. Passwords, secrets and tokens are kept on your server only and never shown again.

Connecting accounts

Bluesky

  1. In Bluesky, go to Settings > Privacy and security > App passwords and create an app password. Never use your main password.
  2. In Social > Accounts, enter your Handle (for example yourname.bsky.social) and the App password (it looks like abcd-efgh-ijkl-mnop).
  3. Leave Server as it is, unless your account lives on your own server (a PDS).
  4. Press Connect. The details are tried with Bluesky before they are saved.

Mastodon

  1. On your Mastodon server, go to Preferences > Development > New application.
  2. Give it a name and tick the write:statuses scope. Save it.
  3. Open the application and copy Your access token.
  4. In Social > Accounts, enter Your server (for example https://mastodon.social) and paste the Access token. The server must be an https:// address on the public internet; http:// and private or local addresses are refused.
  5. Press Connect. The token is tried with your server before it is saved.

LinkedIn

LinkedIn posting goes through a LinkedIn app that belongs to your site. Nothing passes through anyone else's app.

Before you start, check System > Site Settings > General > Site URL holds your site's real address (for example https://example.com). The redirect URL LinkedIn needs is built from it. If it is empty, the address you are signed in to the admin at is used, and that must be the address people use.

  1. Go to LinkedIn Developers and create an app. LinkedIn asks for a company page to link it to - any page you look after will do.
  2. On the app's Products tab, add Sign In with LinkedIn using OpenID Connect and Share on LinkedIn.
  3. In Social > Accounts, find the LinkedIn card and press Copy next to the redirect URL. It ends in /api/plugins/social-media-pro/accounts/linkedin/callback.
  4. On the app's Auth tab, add that address under Authorized redirect URLs. It must match exactly.
  5. From the same Auth tab, copy the Client ID and the Primary Client Secret into the Client ID and Client secret fields on the LinkedIn card.
  6. Leave Post as on Me - my LinkedIn profile (see below for company pages).
  7. Press Save app.
  8. Press Connect LinkedIn. You are taken to LinkedIn to sign in and allow access, then brought back to the Accounts tab with a message saying whether it worked.

The permissions the site asks LinkedIn for are openid, profile and w_member_social.

Good to know:

  • The Client ID is shown after saving. The secret is not. To keep the saved secret, leave Client secret empty.
  • Saving a different Client ID drops the existing connection; press Connect LinkedIn again.
  • Disconnect keeps the app's details, so reconnecting is one click. It does not withdraw the site's access on LinkedIn's side; you can do that in your LinkedIn account settings.

Posting as a company page

  1. On your LinkedIn app's Products tab, apply for the Community Management API. LinkedIn must approve it.
  2. Make sure you are an admin of the company page.
  3. In Post as, choose A company page (needs LinkedIn's approval).
  4. In Company page, enter the page's number. Open the page as an admin and copy it from the address, linkedin.com/company/12345/admin, or paste that whole address.
  5. Press Save app, then Reconnect. This sign-in adds the w_organization_social permission.

Until LinkedIn approves the app, post as yourself.

LinkedIn's 60-day sign-in

LinkedIn allows a connection for 60 days. The LinkedIn card shows the date it was connected and the date it runs out.

  • A week before it runs out you are warned: in a banner on every Social tab, on the Social sidebar badge and in Notifications.
  • Once it has run out, the notice turns critical, the badge turns red, and LinkedIn posts fail until you reconnect.
  • Press Reconnect (on the card or in the banner) and sign in to LinkedIn again. That starts a new 60 days.
  • If LinkedIn gives your app a refresh token (it does this only for its approved partners), the connection renews itself and the card says so.

Test asks the network who the saved account is, to check it still works.

Facebook, Instagram and X posting are not available yet.

Settings

Press the cog at the top right of the Social screen (Social settings). The Save button stays disabled while a field has a problem.

The drawn share image

  • Draw one for every page without a picture - on by default.
  • A live preview. Type a Preview title to try a long or short title.
  • Design - Bold (a gradient, the title large), Minimal (light, an accent bar) or Split (the site name on a colour band).
  • Font - Lato, DejaVu Sans, Nimbus Sans, URW Gothic, DejaVu Serif or Nimbus Roman.
  • Colour, Second colour, Text and Accent.
  • Show the logo (SEO settings) - uses the logo from SEO settings, or the site brand's logo. It must be a file in Media of 1 MB or less.
  • Show the site's address.

Share buttons

Tick the networks [share /] shows by default: X, Facebook, LinkedIn, WhatsApp, Bluesky, Reddit, Email and Copy link. All but Reddit are ticked to start with.

Posting new pages for you

  • When a new page appears, prepare a post - checked every few minutes. Pages already there when you switch this on are left alone.
  • Blog posts and Pages - which new pages count.
  • To Bluesky, To Mastodon, To LinkedIn - where the posts go. Choose at least one. Only connected accounts get a post.
  • Then - Keep it as a draft for me or Post it.
  • After (minutes) - how long to wait before the post goes, 0 to 1440. The default is 10.
  • The post - the text. {title}, {description}, {url} and {site} are filled in. It must contain {url}. Each post is kept within its network's length; the link is never cut.

The first check after switching on only records the pages that exist. Only pages that appear after that get a post.

  • Tag links so Analytics shows where visitors came from - adds utm_source (bluesky, mastodon or linkedin), utm_medium=social and the campaign. On by default.
  • Campaign - social by default. Letters, digits, -, _ and . only.

Shortcodes

Both shortcodes must be self-closing (end with /]). A bare [share] is not recognised.

Share buttons with the networks ticked in settings:

[share /]

Just some networks, with your own label:

[share networks="x,linkedin,copy" label="Pass it on" /]

The network names are x, facebook, linkedin, whatsapp, bluesky, reddit, email and copy. The label defaults to "Share". On phones and tablets the buttons can use the device's own share sheet.

Follow links to your profiles:

[follow /]
[follow label="Find us on" /]

[follow /] lists the addresses in SEO settings under Profiles elsewhere. It recognises X, Facebook, LinkedIn, Instagram, Bluesky, YouTube, TikTok, GitHub, Threads and Mastodon; other addresses show as plain links. With no profiles saved it shows nothing.

Permissions and roles

Social Media Pro adds one permission, Social (group Plugins), in System > Roles:

Action Label Allows
social.read View See share cards, posts, accounts and settings; open Social; test a connected account
social.manage Manage Change share cards and settings, write and send posts, connect and disconnect accounts

The Admin role has both by default.

Tips

  • After changing a share card, use the Facebook or LinkedIn link in the card panel so those platforms pick up the change sooner.
  • Start automatic posting with Keep it as a draft for me until you are happy with the template.
  • The Social sidebar badge counts failed posts and drafts waiting, plus one if LinkedIn needs attention. It turns red when a post has failed or LinkedIn has run out. With nothing waiting it shows how many posts there are instead. Its popover lists what is waiting.
  • A panel you leave with changes in it - a half-written post, a post you were editing, a share card or the settings - keeps them in this browser and brings them back the next time you open it. Closing a panel yourself asks before throwing changes away.
  • Notifications: "Social posts that failed" and "LinkedIn connection running out" are on by default. "Social posts drafted" is off by default; switch it on in Notifications if you want a notice for each automatic draft.

Limitations

  • Posting goes to Bluesky, Mastodon and LinkedIn only.
  • LinkedIn connections last 60 days unless LinkedIn issues a refresh token, which it does only for approved partners.
  • Posting as a LinkedIn company page needs LinkedIn's Community Management API approval.
  • The LinkedIn link card's picture is sent only when the share image is a PNG, JPEG or GIF. If it cannot be sent, the post goes without it.
  • Changing share cards needs Domma CMS 0.89 or later. On older versions a notice says so, and posting still works.
  • Automatic posting handles up to 10 new pages per check.