Join 2,200+ companies using Produktly to create exceptional feedback widgets that collect valuable insights to improve your customer experience on Gatsby.
Interactive onboarding for Gatsby static sites. Produktly helps you guide users through your Gatsby-powered content.
Capture customer feedback instantly with simple but effective feedback widgets. Improve your product by listening to your users.
Instant Feedback
Contextual Information
Integration Hub
Getting started with Produktly feedback widgets on your Gatsby project is quick and easy.
Get your unique script from Produktly.
Add the script to your gatsby-ssr.js or gatsby-browser.js.
Build tours using our visual editor on your live Gatsby site.
Improve user retention with guided walkthroughs.
Gatsby pre-renders pages at build time and hydrates them in the browser. The result is fast static HTML with React taking over once the JS bundle loads. Anything that targets a DOM element has to wait until hydration completes, or use a static target that exists in the pre-rendered HTML.
Gatsby also does client-side routing with @reach/router, so navigation between pages is in-app after the first load. Tours that depend on page reloads will only fire once unless they listen to history changes.
Use setHeadComponents in gatsby-ssr.js so the snippet gets injected into the pre-rendered HTML of every page.
// gatsby-ssr.js
import React from "react";
export const onRenderBody = ({ setHeadComponents }) => {
setHeadComponents([
<script
key="produktly"
dangerouslySetInnerHTML={{
__html: `
(function (w, d, f) {
var a = d.getElementsByTagName("head")[0];
var s = d.createElement("script");
s.async = 1; s.src = f;
s.setAttribute("id", "produktlyScript");
s.dataset.clientToken = "YOUR_TOKEN";
a.appendChild(s);
})(window, document, "https://public.produktly.com/js/main.js");
`
}}
/>
]);
};setHeadComponents inlines the script during build, so it lands in the static HTML and runs on first paint, no JS bundle required.
Loading in gatsby-browser.js misses the first render
gatsby-browser.js only runs after hydration. If you want the script available on first paint, put it in gatsby-ssr.js as shown.
Gatsby Link skips full page reloads
After the first page, Gatsby Link does soft navigation. Enable Produktly’s SPA redirect handling so cross-page tours keep firing.
Static queries hydrate after the page paints
If your tour targets a component fed by useStaticQuery, the element exists in the pre-rendered HTML but may be replaced during hydration. Use stable data-* attributes that survive both renders.
Gatsby teams pick Produktly because the snippet ships in static HTML and runs before the React bundle loads, no impact on Core Web Vitals. Setup is one onRenderBody hook, and the editor works against pre-rendered HTML the same way it works against any other site.
Product Tours
Product Tours software for Gatsby.
Announcements
Announcements software for Gatsby.
Checklists
Checklists software for Gatsby.
Smart Tips
Smart Tips software for Gatsby.
Tool Tips
Tool Tips software for Gatsby.
Roadmaps
Roadmaps software for Gatsby.
NPS Widgets
NPS Widgets software for Gatsby.
Micro Surveys
Micro Surveys software for Gatsby.
Changelogs
Changelogs software for Gatsby.
React
Best feedback widgets software for your React app.
Next.js
Best feedback widgets software for your Next.js app.
Vue.js
Best feedback widgets software for your Vue.js app.
Angular
Best feedback widgets software for your Angular app.
Svelte
Best feedback widgets software for your Svelte app.
Astro
Best feedback widgets software for your Astro app.
Nuxt
Best feedback widgets software for your Nuxt app.
Remix
Best feedback widgets software for your Remix app.