Skip to content

Comments widget

The Comments widget is Vuukle’s flagship — a threaded comment system with social/email login, GIFs, image upload, voting, sorting, and built-in moderation. This page is the complete reference.

Enable the widget

Add the install script, then add the widget anchor wherever you want comments to render:

<div id="vuukle-comments"></div>

Configuration — every option

All comment-widget settings nest under comments inside VUUKLE_CONFIG:

Complete config example
<script>
var VUUKLE_CONFIG = {
apiKey: 'YOUR_PUBLIC_API_KEY',
articleId: 'post-12345',
theme: {
color: '#FACC2B', // Accent color (hex)
darkMode: false, // Force dark theme
},
comments: {
enabled: true,
commentingClosed: false, // Read-only — see comments, can't post
maxChars: 3000, // Max chars per comment (1–3000)
countToLoad: 10, // Initial paint comments count
sorting: 'latest', // 'latest' | 'oldest'
hideCommentInputBox: false, // Hide editor; user clicks "Add comment" first
hideCommentInputBoxWithButton: false, // Hide editor AND the button (read-only display)
hideRecommendedArticles: false, // Hide "Talk of the town" cross-article row
hideMoreNews: true, // Hide "Show more articles" pagination
transliteration: {
language: 'en', // 'en' | 'hi' | 'mr' | 'ta' | 'ar' | ...
enabledByDefault: true,
},
auth: {
facebook: true,
google: true,
twitter: false,
disqus: false,
password: true, // Email + password
vuukle: true, // Vuukle native (any-site) login
sso: { // Single sign-on (your own user system)
onClick: openYourLoginModal, // Function called when user clicks "Sign in"
},
},
editorOptions: [
'image', 'gif', 'bold', 'italic', 'underline',
'url', 'blockquote', 'code', 'list',
],
toxicityLimit: 80, // 0-100. Lower = stricter. 100 disables.
spamLimit: 50, // Same scale.
customText: { // Override any visible string
'Add Comment': 'Add your thoughts',
'Replies': 'Discussion',
},
},
};
</script>

Option reference

Visibility & layout

OptionTypeDefaultWhat it does
enabledbooltrueMaster toggle. false renders nothing.
commentingClosedboolfalseRead-only mode — visitors see existing comments but cannot post.
hideCommentInputBoxboolfalseHides the editor until the user clicks an “Add comment” button.
hideCommentInputBoxWithButtonboolfalseHides editor AND the button. Display-only thread.
hideRecommendedArticlesboolfalseHides the “Talk of the town” cross-article recommendation row.
hideMoreNewsbooltrueHides the “Show more articles” pagination.
countToLoadnumber10Number of comments rendered at first paint.
sortingenum'latest'Initial sort order: 'latest' or 'oldest'.
maxCharsnumber3000Maximum characters per comment (1–3000).

Login methods

Under comments.auth. Set any method to false to remove its button.

OptionDefaultNotes
facebooktrueOAuth via Facebook.
googletrueOAuth via Google.
twittertrueOAuth via X/Twitter.
disqustrueOAuth via Disqus — useful for sites migrating from Disqus.
passwordtrueEmail + password (Vuukle-hosted).
vuukletrueUniversal Vuukle commenter account. Works across every Vuukle site.
ssoObject with onClick: function. See SSO overview.

To require login (no anonymous commenting): set auth.password: false, auth.vuukle: false, force users into either social or SSO.

Editor

comments.editorOptions is an array — order matters, toolbar buttons render in the order you list:

editorOptions: ['bold', 'italic', 'url', 'blockquote', 'image', 'gif', 'list']
ValueEnables
imageImage upload button
gifGIF picker (Giphy)
boldBold formatting
italicItalic formatting
underlineUnderline formatting
urlInsert link
blockquoteQuote block
codeInline code
listBullet / numbered lists

To disable image and GIF upload entirely:

editorOptions: ['bold', 'italic', 'underline', 'url', 'blockquote', 'code', 'list']

Auto-moderation

OptionRangeDefaultWhat it does
toxicityLimit0–10080Comments scoring above this number go to moderation queue. Lower = stricter. 100 disables.
spamLimit0–10050Same scale, for spam classifier.

The exact behavior when a comment exceeds the threshold (queue vs. auto-reject) is set in the dashboard — Site Settings → Comment Widget → Above threshold. See auto-moderation.

Theme

theme: {
color: '#FACC2B', // Accent (hex)
darkMode: false, // true forces dark, false forces light. Default: auto.
}

Translations

comments: {
customText: {
'Add Comment': 'Add your thoughts',
'Show more comments': 'Load more',
'Replies': 'Discussion',
'Most recent': 'Newest first',
},
}

See Language & transliteration for the complete list of overridable strings and supported languages.

Common configurations

Read-only thread (archived article)

comments: { commentingClosed: true }

Users see all existing comments but can’t post new ones. Useful for archived articles you’ve stopped accepting comments on.

Login required, your auth system

comments: {
auth: {
facebook: false, google: false, twitter: false,
disqus: false, password: false, vuukle: false,
sso: { onClick: openMyLoginModal },
},
}

Combined with Site Settings → Comment Widget → Login method → SSO only in the dashboard. See SSO overview.

Stricter moderation

comments: {
toxicityLimit: 50,
spamLimit: 30,
}

Plus in the dashboard, set Above threshold → Reject to drop bad comments without filling your queue.

Polite-mode editor (no images/GIFs)

comments: {
editorOptions: ['bold', 'italic', 'url', 'blockquote', 'list'],
}

Customize via the dashboard (no code)

The WordPress plugin and the Vuukle dashboard expose the same options as a UI. Open dashboard → your site → Site Settings → Comment widget to set defaults without editing your template.

This is the right place for per-site defaults — character limit, login methods, sort order, moderation thresholds. Use VUUKLE_CONFIG for per-article overrides.

SSO overview

Skip the Vuukle login. SSO →

Custom translations

Override every string in the widget. Language →

Was this page helpful?
Help us improve — drop a note or open the dashboard.