Add visual feedback to your Angular app.
Every Angular app starts from src/index.html. Add the pinthread tag there, and reviewers can comment on every route the Angular router shows.
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 Angular app yet? Start one:
npx @angular/cli@latest new my-app02 · Add the script tag
src/index.html
<script src="https://pinthread.dev/embed.js"
data-project="YOUR_PROJECT_KEY" defer></script>Paste it before </body>, after <app-root>. The Angular build copies the tag into the built index.html.
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 npx ng serve and open http://localhost:4200. 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 tag is missing from the build
Check that angular.json uses src/index.html as the index file of your app.
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
Do I need to add pinthread to an Angular module or component?
No. The tag in src/index.html loads the widget once for the whole app, outside Angular.
Does pinthread follow Angular router navigation?
Yes. The widget stays loaded when the route changes, and it shows the comments for the new URL.
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.
- SvelteKitOne tag in src/app.html.
- NuxtA head script in nuxt.config.ts.
- HTMLStatic sites, site generators, and templates.
- All install stepsAccount, project, and invitations.