Skip to content

rubix-studios-pty-ltd/payload-dub

Repository files navigation

PayloadCMS + Dub Plugin

A Payload CMS plugin that integrates with Dub to automatically create and manage shortlinks for your content. This plugin synchronizes your Payload collections with Dub, ensuring that every published document gets a corresponding shortlink, tag, and color configuration.

npm version Release

Dub is the modern, open-source link attribution platform for short links, conversion tracking, and affiliate programs.

Create a Dub account: Dub

Installation

pnpm add @rubixstudios/payload-dub
// payload.config.ts
import { buildConfig } from 'payload/config'
import { payloadDub } from '@rubixstudios/payload-dub'

export default buildConfig({
  plugins: [
    payloadDub({
      collections: [
        { docs: 'posts', slugOverride: 'post' }, // Custom slug used for Dub folder and shortlinks
        { docs: 'insights', slugOverride: 'insight' }, // Custom slug only
        { docs: 'news' }, // Default behavior
      ],
      dubApiKey: process.env.DUB_API_KEY || '',
      siteUrl: process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000',
      domain: 'mycustomdomain.com', // Optional: custom Dub domain
      tenantId: '12345', // Optional: tenant identifier for Dub workspace
      isPro: false, // Optional: pro flag to enable disable pro features

      // Optional: overrides of dubCollection
      dubCollection: {
        overrides: {
          access: {
            read: ({ req }) => !!req.user,
            create: ({ req }) => !!req.user,
          },
          admin: {
            group: 'Marketing',
            defaultColumns: ['shortLink', 'externalId'],
          },
        },
      },
      dubTagCollection: {
        overrides: {
          access: {
            read: ({ req }) => !!req.user,
          },
          admin: {
            group: 'Marketing',
            defaultColumns: ['name', 'color'],
          },
        },
      },
    }),
  ],
})

Notes

If you do not provide overrides, the plugin defaults to:

  • dubLinks readable by all
  • Tags are readable, editable, and deletable by all users by default

Features

  • Automation: Generates and updates Dub shortlinks when documents are published or slugs change.
  • Folders: Collections are organised in folders (Pro).
  • Tags: Tags can be created and removed directly in Payload.
  • Sync: Keeps Payload and Dub data consistent with minimal overhead.
  • Configurable: Supports per-collection overrides for color, slug, and URL base.
  • Access Control: Access, field and admin overrides for complete CMS control.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support or inquiries:

Author

Rubix Studios Pty. Ltd.
https://rubixstudios.com.au

About

A Payload CMS plugin that uses Dub to auto-create and manage shortlinks for published documents.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 2

  •  
  •