Add visual feedback to your SvelteKit app.
SvelteKit renders every page into src/app.html. Add the pinthread tag there, and comments work on every route, in development and after the build.
01 · Create a project
Sign up free with Google and create a project in the dashboard. Its Install tab shows the tag with your project key filled in. The Free plan costs $0 a month.
No SvelteKit app yet? Start one:
npx sv create my-app02 · Add the script tag
src/app.html
<script src="https://pinthread.dev/embed.js"
data-project="YOUR_PROJECT_KEY" defer></script>Paste it before </body>, outside the element that holds %sveltekit.body%. SvelteKit then keeps the tag when it hydrates the page.
Replace YOUR_PROJECT_KEY with the key from the Install tab. The key is public: it only tells the widget which project to load.
03 · Check that it works
Run npm run dev and open the address SvelteKit prints, such as http://localhost:5173. The pinthread button shows at the edge of the page, and the project’s Install tab changes from waiting to installed. Click the button, sign in, and pin a comment to any element.
Pages on localhost and 127.0.0.1 load pinthread for every project. For a deployed site, add its address under the project’s Settings.
Troubleshooting
The button disappears after hydration
The tag is inside the element that holds %sveltekit.body%. Move it after that element.
The button shows locally but not on your host
Add the deployed address under the project’s Settings. Local addresses work without this step.
Connect your coding agent
pinthread is also an MCP server. Claude Code, Cursor, or Codex can read every comment with its page and element, make the change, and reply in the thread.
Questions
Does pinthread work with SvelteKit client-side navigation?
Yes. The widget stays loaded when SvelteKit changes the route, and it shows the comments for the new URL.
Does pinthread work with adapter-static and prerendered pages?
Yes. The tag is in app.html, so every prerendered page includes it.
Other frameworks
- Next.jsnext/script in the App Router or Pages Router.
- ViteReact, Vue, or Svelte: one tag in index.html.
- AstroAn inline script in your base layout.
- NuxtA head script in nuxt.config.ts.
- AngularOne tag in src/index.html.
- HTMLStatic sites, site generators, and templates.
- All install stepsAccount, project, and invitations.