Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A React/Next.js dashboard component for visualizing and managing Tincre Promo API campaign data.

Free open-source Tailwind CSS and Next.js admin dashboard template with 8+ pages, dark mode, RTL, and authentication screens.
Promo Dashboard is a React dashboard component from Tincre that renders Tincre Promo campaign data inside a Next.js app and lets users manage, repeat, and inspect campaigns without leaving the page.
Promo Dashboard is an open-source React and Next.js component published as @tincre/promo-dashboard on npm. It accepts a campaignsData array of CampaignData objects plus optional settings and callback props, and renders a campaign dashboard UI with a campaigns table, campaign detail view, stats highlights, profile settings, and a loading frame. It is designed to work with the companion @tincre/promo-chat chat widget and the promo-button component, and it connects to the Tincre Promo API through environment variables.
The variables PROMO_CLIENT_ID, PROMO_CLIENT_SECRET, and PROMO_APP_ID are required, while PROMO_API_KEY is optional; all values are available in the Tincre.dev Dashboard after logging in and creating at least one app. The repository is maintained by Tincre and released under the Mozilla Public License 2.0.
CampaignData objects with fields including pid, email, adTitle, budget, description, target, adCopy, creativeUrls, adCallToAction, buttonText, isActive, currency, and stats.handleRepeatButtonClick copies the key fields of a campaign into new campaign data so a user can open the Promo Button and launch a similar campaign.handleCampaignTypeButtonClick lets you intercept clicks, with the eventName formed by lowercasing the type name and replacing spaces with hyphens, for example "Engagement campaign" becomes "engagement-campaign".profileSettingsData object with userName, fullName, and image, and a handleSubmitSaveButtonClick callback for the Save button in the Profile component.dashboardOptions customizes the support email local part and domain, collapses the table by default with isTableCollapsed, defines custom campaign types, and configures chat agent name, starting message, placeholder, and reCAPTCHA callback for the required PromoChat prop.isLoading prop to true shows the dashboard frame while data loads; omitting it or setting false renders the full dashboard.#promo-dashboard-save-button, #promo-dashboard-line-chart, and #promo-dashboard-campaigns-table can be targeted with Tailwind @apply rules in your global CSS file.handleRepeatButtonClick so a user can clone a campaign's ad title, budget, description, target, ad copy, call to action, and button text with one interaction.profileSettingsData and use handleSubmitSaveButtonClick to capture Save button clicks and manage settings outside the dashboard.The README's setup flow covers installing @tincre/promo-dashboard and @tincre/promo-chat, importing the PromoDashboard frontend component, adding backend functionality, creating an environment file such as .env.local, adding the variables to your deployment, and deploying. The component receives data through props rather than fetching it directly, so callers supply campaignsData and optional campaignDetailData; backend documentation is marked as coming soon.
The code is open-source under the Mozilla Public License 2.0, and the README states it is free to use for commercial or personal projects. You can reference the LICENSE file in the repository for full terms.
No. It is a presentational React component that receives campaignsData and optional campaignDetailData as props. The backend implementation that talks to the Tincre Promo API is documented in the Backend section, which is marked as coming soon.
PROMO_CLIENT_ID, PROMO_CLIENT_SECRET, and PROMO_APP_ID are required, and PROMO_API_KEY is optional. You can find these values in the Tincre.dev Dashboard after logging in and creating at least one app.
Yes. The PromoChat component from @tincre/promo-chat is a required prop, passed in by the consuming app so that the dashboard library does not have to include that dependency itself.
Yes, styling support is limited to prominent-color elements. The dashboard exposes IDs such as #promo-dashboard-save-button and #promo-dashboard-line-chart that you can restyle with Tailwind @apply rules in your global CSS file.
