Artisan Build
USA
We run Scalpels, as well as a suite of other tools for developers and development teams.
Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.
Replace expensive subscriptions
Know which screens your desktop and mobile users actually reach, how long their sessions run, which release they are on and which PHP errors they hit. The server runs on hardware you already pay for, the device data lands in your own database, and your agents ask it questions over MCP.
Work in progress. Available to supporters.
Everything below comes from NativePHP's own signals and Laravel's exception handler. Telltale adds no native crash hooks and no new lifecycle events.
NativePHP Mobile screen-mounted, resumed and unmounted signals, and window focus and route changes on desktop.
A first event opens a session and thirty minutes of inactivity opens the next, with context captured once per session rather than per event.
App and client versions, version codes and the existing update-installed and auto-updater events, grouped by release.
Exception class, a scrubbed and capped message, normalised file and line, a capped trace and a grouping fingerprint.
Telltale::event() with bounded properties, an optional opaque identity, and a beforeSend callback that can scrub or drop anything.
Fifteen tools for active users, sessions, screen flow, funnels, retention, release adoption, error groups and ingest health.
An install is a random UUID generated on the device that resets on reinstall — never IDFV, never Android ID, never anything the platform assigns. The server uses the request IP to rate-limit and does not store it as analytics data, obvious email and phone patterns are scrubbed out of automatically captured strings, and optOut() stops capture and clears the outbox.
An opt-out middleware stamps X-Telltale-Session on the NativePHP app's own outbound Laravel requests, carrying the session UUID and a hashed install id — never the raw install id, the ingest value or the bearer token. So a slow screen on a device and the API call behind it are the same story, and requests to Telltale's own endpoints never carry it.
Telltale vs hosted app analytics
PostHog, Sentry and Firebase each cover far more than this, on more platforms, and two of them do the thing Telltale explicitly does not: native crash reporting. Telltale is for a team shipping a NativePHP app that wants the product-analytics and PHP-error slice on infrastructure it already operates.
| Feature | Telltale Telltale is MIT licensed and Experimental. v1.0.0 is tagged and the client installs from Packagist; native crash reporting is out of scope for v1. | PostHog Hosted product analytics, replay and flags, with a self-host option. | Sentry Hosted error and performance monitoring, with an official self-hosted distribution. | Firebase Google's mobile analytics and Crashlytics crash reporting. |
|---|---|---|---|---|
| NativePHP screens and sessions the row we rebuilt | Does this well:Purpose built | Partly, or with a caveat:Generic SDKs | Not built:Not its job | Partly, or with a caveat:Native SDKs only |
| PHP errors from the device the row we rebuilt | Does this well:Captured and grouped | Partly, or with a caveat:Server-side SDK | Does this well:Built in | Not built:Native only |
| Release adoption and retention the row we rebuilt | Does this well:Built in | Does this well:Built in | Partly, or with a caveat:Releases, not retention | Does this well:Built in |
| Native crashes, OOM and ANRs we did not build this | Not built:Out of scope | Partly, or with a caveat:Via error tracking | Does this well:Built in | Does this well:Built in |
| Session replay we did not build this | Not built:Not built | Does this well:Built in | Does this well:Built in | Not built:Not offered |
| Feature flags and experiments we did not build this | Not built:Not built | Does this well:Built in | Partly, or with a caveat:Tracks other providers | Does this well:Remote Config |
| A chart dashboard we did not build this | Not built:MCP, not charts | Does this well:Built in | Does this well:Built in | Does this well:Built in |
| Where the device data lives | Does this well:Your Cloud account | Partly, or with a caveat:Cloud or self-host | Partly, or with a caveat:Cloud or self-host | Works, but on their terms:Google's cloud |
| Cost of the next event | Does this well:Your infrastructure | Works, but on their terms:Per event, by tier | Works, but on their terms:Reserved or overage | Works, but on their terms:Plan and usage |
| Who is on call for the tool itself | Partly, or with a caveat:You are | Does this well:They are | Does this well:They are | Does this well:They are |
Ask what you actually open the analytics tab to find out. Moving loses little when all three of these are true.
Then Telltale keeps that slice next to the application it describes, and your agents can query it directly. Telltale is Experimental today, so start with one app and one release.
These are the parts we chose not to build, and we are not going to pretend otherwise.
Small, sharp tools are a deliberate scope, not an unfinished roadmap. Telltale will not grow into a growth platform.
Be honest about it
The repository is public and MIT licensed. These are the steps, and you are welcome to spend the afternoon doing them by hand.
Fork the Telltale repository into your own GitHub organisation.
Deploy the fork to Laravel Cloud with Postgres, a managed queue and the scheduler enabled, then set a permanent custom domain before you build the app — a URL shipped inside a build cannot be changed for that build.
Run composer require artisan-build/telltale-client in your NativePHP app, create an app in the Telltale UI, and set TELLTALE_URL and TELLTALE_INGEST in every mobile and desktop build environment.
Or become a supporter, and Scalpels deploys it for you. It forks it, provisions exactly what it needs on your Laravel Cloud account, and deploys it. The app and the infrastructure are yours either way — the only question is who spends the afternoon.
Deploy Telltale as a supporterAfter you buy, we will pay for an hour with one of these experts to help you get everything up and running.
USA
We run Scalpels, as well as a suite of other tools for developers and development teams.
Hone covers the Laravel backend the app calls — and Telltale's session header lands in those requests, so a slow screen and the API call behind it are one story. Reel does the same job for the web side of the same product, and Assay covers the AI runs inside it.