Skip to content

VUUKLE_CONFIG schema

This is the canonical reference for the VUUKLE_CONFIG object that drives every Vuukle widget on a page.

Top-level shape

interface VuukleConfig {
// Required
apiKey: string;
articleId: string | number;
// Article metadata (strongly recommended)
title?: string;
url?: string;
img?: string;
tags?: string;
author?: string;
// Global
language?: string; // e.g. 'en', 'es', 'fr', 'hi'
host?: string; // Required only for endlessMode
endlessMode?: boolean;
wordpressSync?: 'true' | 'false';
recommendationsWideImages?: boolean;
globalRecommendations?: boolean;
link?: string; // protocol/host base for recommendation URLs
theme?: {
color?: string; // hex
darkMode?: boolean;
};
// Widget-specific
comments?: CommentsConfig;
emotes?: EmotesConfig;
powerbar?: PowerbarConfig;
}

comments

interface CommentsConfig {
enabled?: boolean; // default true
commentingClosed?: boolean; // read-only mode
maxChars?: number; // up to 3000
countToLoad?: number; // default 10
sorting?: 'latest' | 'oldest';
hideCommentInputBox?: boolean;
hideCommentInputBoxWithButton?: boolean;
hideRecommendedArticles?: boolean;
hideMoreNews?: boolean;
transliteration?: {
language: string;
enabledByDefault?: boolean;
};
auth?: {
facebook?: boolean;
google?: boolean;
twitter?: boolean;
disqus?: boolean;
password?: boolean;
vuukle?: boolean;
sso?: { onClick: () => void };
};
editorOptions?: Array<'image' | 'gif' | 'bold' | 'italic' | 'underline' | 'url' | 'blockquote' | 'code' | 'list'>;
toxicityLimit?: number; // 0-100, 100 disables
spamLimit?: number; // 0-100, 100 disables
customText?: Record<string, string>;
}

emotes

interface EmotesConfig {
enabled?: boolean;
hideRecommendedArticles?: boolean;
size?: number;
firstImg?: string; firstName?: string;
secondImg?: string; secondName?: string;
thirdImg?: string; thirdName?: string;
fourthImg?: string; fourthName?: string;
fifthImg?: string; fifthName?: string;
sixthImg?: string; sixthName?: string;
disable?: number[]; // e.g. [3, 5]
customText?: Record<string, string>;
}

powerbar (ShareBar)

interface PowerbarConfig {
enabled?: boolean;
defaultEmote?: 1 | 2 | 3 | 4 | 5 | 6;
verticalPosition?: string; // e.g. '400px'
customText?: Record<string, string>;
}

Widget anchors

HTMLRenders
<div id="vuukle-comments"></div>Comments
<div id="vuukle-emote"></div>Emotes
<div id="vuukle-newsfeed"></div>Newsfeed
<div id="vuukle-newsletter"></div>Newsletter
<div class="vuukle-powerbar"></div>ShareBar (horizontal)
<div class="vuukle-powerbar-vertical"></div>ShareBar (vertical sticky)
<a class="vuukle-comment-count" data-id="ID"></a>Comment count for an article

For endless / infinite-scroll mode, append -{UNIQUE_INDEX} to each anchor — see infinite scroll install.

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