Add Upstep to any stack
A typed React SDK, a framework-agnostic script for everything else, and native React Native plus Flutter packages for mobile. Pick your platform below, then connect the built-in MCP server so Claude Code, Cursor, or any MCP client can triage what comes in.
Framework
React
Upstep ships a typed React SDK: a provider plus a drop-in widget component. No REST calls to wire up, no state to manage yourself.
View setupNext.js
The widget needs to run on the client, so wrap it in its own "use client" component and mount that once from your root layout, the same pattern Upstep uses to dogfood itself on this site.
View setupRemix
UpstepProvider only touches the DOM inside useEffect, so it's safe to render from Remix's root route without any client-only guard.
View setupGatsby
Use Gatsby's wrapRootElement API in gatsby-browser.js, the standard place to inject a provider that should persist across page navigations.
View setupVue.js
There's no Vue-specific package, but the vanilla widget is framework-agnostic, call it once when your root component mounts.
View setupNuxt
Nuxt renders on the server first, so mount the widget from a client-only plugin using Nuxt's .client.ts naming convention.
View setupSvelte & SvelteKit
Call Upstep.init() from onMount in your root layout, onMount only runs client-side, so it's safe with SvelteKit's SSR.
View setupAstro
Astro ships zero JS by default, so the simplest path is the plain script tag, drop it in your base layout and it loads once, on every page.
View setupAngular
Call Upstep.init() once from your root component's ngOnInit, it mounts the launcher button and stays mounted across route changes.
View setupBuild tool
No-code / CMS
WordPress
No plugin required, paste the script tag into your theme's footer using a header/footer plugin, or your theme editor directly.
View setupWebflow
Webflow has a built-in custom code slot for exactly this, no export or dev handoff needed.
View setupShopify
Add the script tag to your theme's layout file once, and every page of your storefront gets a feedback launcher.
View setupMobile
React Native
A dedicated React Native package with a provider, a launcher button, a bottom sheet, and an optional shake-to-report gesture, no web view involved.
View setupExpo
Upstep's React Native SDK has no custom native modules beyond react-native-safe-area-context, so it installs cleanly in a managed Expo project, no native linking or prebuild required.
View setupFlutter
A dedicated Flutter package with an inherited controller, a floating launcher, and a bottom-sheet feedback flow that talks to the same Upstep project as your web app.
View setup