← FingerprintCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Fingerprint
Snapshot Sep 30, 2026 · 23:11 UTC · version 1.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "fingerprint-get-started",
"description": "Guide the user through the full Fingerprint Get Started flow — detect the project's tech stack, install frontend identification, add the server-side API verification step, then walk the remaining protection steps, applying the matching skill for each. Use when the user wants to add Fingerprint to an app, get started with Fingerprint, or set up device identification and fraud protection end to end.",
"included_files": [
{
"relative_path": "skill.json",
"size_in_bytes": 328
}
],
"skill_md_contents": "---\nname: fingerprint-get-started\ndescription: Guide the user through the full Fingerprint Get Started flow — detect the project's tech stack, install frontend identification, add the server-side API verification step, then walk the remaining protection steps, applying the matching skill for each. Use when the user wants to add Fingerprint to an app, get started with Fingerprint, or set up device identification and fraud protection end to end.\n---\n\n# Fingerprint — Get Started\n\nWalk the user through the complete Fingerprint **Get Started** flow (the same checklist as the\ndashboard), from first install to production-grade protection. Detect what's already done, then\napply or guide the matching skill for each remaining step. Do the steps in order; don't skip ahead\nunless the user asks.\n\nThis skill is an **orchestrator** — its job is to detect the stack and delegate to the per-stack\nand feature skills below. The actual SDK setup lives in those skills. In Claude Code, invoke a\nskill with the Skill tool; in other agents, load and follow the named skill.\n\n## How to run\n1. **Audit the project first.** Grep for existing Fingerprint usage so you don't redo finished\n work: look for `@fingerprint/`, `fingerprint-server-sdk`, `FingerprintProvider`,\n `useVisitorData`, `getEvent`, `FINGERPRINT_*` env var names, `tag` / `linkedId`. Build a quick\n status of which steps below are done.\n2. **Report the checklist** with each step marked done / not done.\n3. **Walk the not-done steps in order.** For each, explain what it does, then apply the matching\n skill and follow it. Steps that are dashboard-only (rules, request filtering, ad-blocker config,\n team invites) can't be done from code — give the user the exact dashboard actions and offer to\n make any companion code change.\n4. **After each step, tell the user how to verify it** (the dashboard Get Started page checks the\n same conditions — e.g. a received event, a Server API call, a tagged event).\n\n## Detect the stack (before steps 1–2)\nRead the project's manifests (don't guess from directory names):\n- **Node**: `package.json` `dependencies` + `devDependencies`.\n- **Python**: `requirements.txt`, `pyproject.toml`.\n- **No manifest at all**: an `index.html` is a static site — still a supported frontend, with no\n build step and no env vars (the public key goes in the agent's CDN import URL).\n- Check up to ~2 levels deep for monorepos (`apps/`, `packages/`, `pnpm-workspace.yaml`); a repo\n can have a separate frontend and backend.\n\nMap detected frameworks to skills:\n\n| Detected | Skill | Role |\n| --- | --- | --- |\n| `next` | `fingerprint-nextjs` | fullstack (covers both halves) |\n| `react`, `react-native` | `fingerprint-react` | frontend |\n| `vue`, `nuxt` | `fingerprint-vue` | frontend |\n| `@angular/core` | `fingerprint-angular` | frontend |\n| `svelte` (incl. SvelteKit) | `fingerprint-svelte` | frontend |\n| `solid-js`, `lit`, `alpinejs`, `htmx.org`, `jquery` | `fingerprint-javascript` | frontend |\n| `express`, `fastify`, `koa`, `@nestjs/core`, `@hapi/hapi` | `fingerprint-node` | backend |\n| `fastapi`, `django`, `flask` | `fingerprint-python` | backend |\n| *(no dependency matched above)* an `index.html` entry — plain HTML/JS, or a Vite/Webpack vanilla template | `fingerprint-javascript` | frontend |\n\n- If you detect **Next.js**, `fingerprint-nextjs` covers both the install and server steps.\n- Otherwise pick **one frontend** skill for step 1 and **one backend** skill for step 2.\n- Match on dependencies first. The last row is a fallback: only use it once you've confirmed none\n of the packages above are present. When several match (jQuery inside a React app), the framework\n SDK wins — it wraps the same agent with framework-native APIs.\n- A frontend with no framework SDK still has a curated skill — use `fingerprint-javascript` rather\n than the docs fallback.\n- If nothing matches a curated skill, fall back to the docs (start at\n `https://docs.fingerprint.com/llms.txt`).\n\n## The checklist\n\n### Quick start\n1. **Install Fingerprint (frontend)** — add visitor identification to the client and capture the\n first event.\n → Apply the matching frontend skill: `fingerprint-react` / `fingerprint-vue` /\n `fingerprint-angular` / `fingerprint-svelte` / `fingerprint-javascript` (no framework SDK), or\n `fingerprint-nextjs` (which also covers step 2).\n *Done when the client calls `getData()` and an event is received.*\n2. **Access detailed insights (backend / Server API)** — verify the event server-side and read\n Smart Signals.\n → Apply the matching backend skill: `fingerprint-node` / `fingerprint-python` for the\n verification flow, then `fingerprint-smart-signals` to act on the full signal set.\n *Done when the server calls `getEvent` and reads signals.*\n\n > **Strongly recommended for security-sensitive actions** (login, signup, checkout): the client\n > only identifies — a real trust decision needs the server to verify the event. This is the\n > recommended next step, not a hard requirement (Next.js does both in one skill).\n\n3. **Protect against ad blockers** — first-party custom subdomain or proxy integration.\n → Apply `fingerprint-proxy-integration`. *Done when the agent loads from your own domain.*\n\n### Beyond the basics\n4. **Build your first rule** — no-code automatic protection via the Rules Engine.\n → Apply `fingerprint-rules-engine` (dashboard setup + optional code to honor outcomes).\n5. **Tag an event with your data** — attach user/account/order IDs to events.\n → Apply `fingerprint-tagging`. *Done when a tagged event is received.*\n6. **Protect your public API key** — request filtering / allowed origins.\n → Apply `fingerprint-request-filtering` (dashboard setup; enumerate the app's real origins).\n7. **Invite your team members** — dashboard-only. Point the user to the dashboard team settings;\n there's nothing to change in code. Pricing isn't seat-based, so they can invite freely.\n8. **Upgrade to Pro Plus** — dashboard-only. New accounts trial **Fingerprint Pro Plus**; once the\n trial ends, the account is downgraded to the **Free** plan. If they want to keep Pro Plus\n features, point them to the dashboard billing/plan settings to upgrade before the trial ends.\n\n## How to verify the install (after steps 1–2)\n- **Preview the app**, trigger the action you wired up (e.g. load the page, submit a login/signup),\n and check that a new event appears on the **Events page in the Fingerprint dashboard**\n (https://dashboard.fingerprint.com). An event with an `event_id` confirms identification works\n end to end.\n- If no event shows up, the usual cause is an **ad blocker** eating the request during testing —\n disable it and retry. For production accuracy, do step 3.\n\n## Rules\n- Step 1 is complete once identification works (an event is received). The later steps are\n recommendations, not mandatory gates — for security-sensitive actions, strongly recommend step 2\n (server-side verification), but don't block step 1 on it.\n- Never read/print `.env`; reference env vars by name. Never put the secret key in client code.\n- Match the existing code style; make minimal, focused edits. Tell the user which packages to\n install rather than pinning versions yourself.\n- Region must match the workspace region (`us` | `eu` | `ap`) on every side.\n- If the user only wants one step, jump straight to that step's skill.\n"
}SHA-256: 4d3a8e7a071f26064c753b550ba41d73f8bc72da663f7e037a9a8b2f24a96a6b