Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
71 lines (39 sloc) 3.43 KB


Code Climate

Seamless short URL plugin for NodeBB

Nobody likes itchy pants, do you? Neither do I. 😏

That's why these shorts are seamlessly woven into the NodeBB experience, your users won't feel a thing.


  1. Preferably, install SmoothShorts from the list of available plugins in your NodeBB ACP.

Manual installation via npm install nodebb-plugin-smoothshorts is possible, but doesn't guarantee compatibility with your NodeBB version.

  1. Activate the plugin in ACP/Extend/Plugins.

  2. Setup plugin (and hash already existing posts/topics) in ACP/Plugins/SmoothShorts.

  3. Go click 'em! :D


Copy Button

Given that the client's browser supports the execCommand('copy'), SmoothShorts will add an icon next to post links, which copies the short URL with a single click. The context menu method is always available.

SmoothShorts one-click button

NOTE: If you are using NodeBB >=1.0.0, you have a more suitable icon (.fa-hashtag) available. The plugin's default .fa-external-link ensures backwards compatibility. You can change the icon in the settings.

Context Menu

Once a user opens the browser's context menu upon a topic link, the href value of that link gets replaced with its assigned hash:

SmoothShorts on a topic link

This also works on posts:

SmoothShorts on a post link (Not all themes have those links; same goes for teasers. Posts are hashed, regardless of used theme.)

The now copied address is of the form (default, see URL Format). Visiting it will redirect to the associated post or topic:

SmoothShorts resolving a hash

Settings (ACP/Plugins/SmoothShorts)

###- Modifier key

Users would have to press Ctrl/Alt/Shift while opening the context menu to replace the link. ###- URL Format

Define the format of your short URLs! Use :hash as a placeholder for topic/post hashes. (e.g.,,

NOTE: Changing the URL format requires a NodeBB restart to apply the route hashes are accepted on.

###- Copy Button

Pick the icon for the copy button from the fontawesome icon set.

Q/A & Known Issues

###Why not use a service like or

Coming in 0.4.0!

For two reasons:

1. While investigating, I noticed that they impose limits on calls to their API. No need to hate them for it; in fact, they have every right to do so, protecting themselves against bots and such. But unfortunately, as hashing is triggered by every user creating a topic/post, a single spam attack on your NodeBB could make you run out of those API calls; just like that.

2. Links to posts in NodeBB are not structured like /topic/topicslug/postID, but rather /topic/topicslug/positionInTopic. Which means that if you purge a post, your already created short urls would get all mixed up.

You can’t perform that action at this time.