SDKs & Libraries
Every SnipForm surface has an official client. Pick by where your code runs.
| Library | Runs in | Install | Use it for |
|---|---|---|---|
| Signals tracker | The browser | <script> tag | Sessions, events, revenue, identify, handing the session id to your backend |
| Forms HTML library | The browser | <script> tag | <snip-form> directive-driven forms |
@snipform/react | React 18+ | npm install @snipform/react | Server-validated forms as React state |
snipform/php-sdk | PHP 8.2+, Laravel 10+ | composer require snipform/php-sdk | Firing events from the backend, reading analytics, managing contacts, conversions and short links |
@snipform/html-intellisense | Your editor | npm i -D @snipform/html-intellisense | Autocomplete and validation for sf-* attributes |
| Shopify app | Your Shopify store | Shopify App Store | Carries the session id through the cart into checkout |
Which one fires events?
Section titled “Which one fires events?”| You are in | Call |
|---|---|
| The browser | signals('purchase', 9900, { order: 'X-1' }) on the tracker. Events → |
| A Laravel app | Snipform::event('purchase', 9900, ['order' => 'X-1']) on the facade. Laravel → |
| Any PHP backend | $client->session()->event([...]) with a stored session id. Session actions → |
| Anything else | POST /v2/property/session/event with a bearer token. API → |
Every path writes the same event to the same session. The server-side routes need the visitor’s session id, which only the browser knows; Session handoff covers how it gets there.