Analytics for early stage founders

Built for apps that change every day.

my-app
Pricing.tsx
  1. export default function Pricing() {
  2. return (
  3. <main className="pricing">
  4. <h1>Simple pricing</h1>
  5. <PlanCard plan="monthly" />
  6. <PlanCard plan="semi-annual" />
  7. <Faq />
  8. </main>
  9. );
  10. }
⎇ mainanalyticsff MCP connected

Analytics in sync with the product

Every deploy sits on the timeline next to what people did, so Claude can tell you whether a change moved the numbers.

my-app
DrawingToolbar.tsxDrawing tools and time in app

Drawing tools and time in app

+30% time in app60% of new users drew2× longer for users who drew

Minutes in the app, first week, by signup week

Dashed: average before 12 min, after 15.6 min

05101520Jul 27Aug 17Sep 14Drawing tools shippedWeek of Jul 27: 11.6 minWeek of Aug 3: 12.4 minWeek of Aug 10: 12.1 minWeek of Aug 17: 11.7 minWeek of Aug 24: 12.2 minWeek of Aug 31: 13.4 minWeek of Sep 7: 15.1 minWeek of Sep 14: 16.1 min

Minutes in the app since Sep 3

412 new users, first week

  • Used drawing tools19.5 min
  • Didn't9.8 min
⎇ mainanalyticsff MCP connected

Get to know every user

No funnels to build, no events to name, no dashboards to learn. Ask the question you actually have, in the editor you already use.

my-app
UpgradeButton.tsxPro vs. free users, first week

Pro vs. free users, first week

16× more trades

Trades placed

  • Pro142
  • Free9

Time in a trade

  • Pro15 s
  • Free1 min

Replays played

  • Pro12
  • Free2

Added a data key

  • Pro74%
  • Free11%
Pro userTradesAvg tradeFirst week
holmes.t@example.com21112 sCame from ChatGPT, traded ES and NQ every day, replayed 14 sessions
jose.l@example.com16818 sConnected a Databento key on day 1, mostly GC, upgraded on day 3
m.ly@example.com9714 sTraded on a phone every morning, upgraded on day 4
⎇ mainanalyticsff MCP connected

Keep the answers you check every week

Ask Claude to pin a chart or save an answer, like a nightly recap, to a dashboard. Charts run again every time you open them, and Claude rewrites a recap whenever you ask again.

analyticsff.com/dashboards/launch

Launch

Nightly recap

my-app · written by Claude · Sep 27

47 visitors and 6 signups, 2 of them from ChatGPT.

  • One visitor pressed Sign up with Email 3 times, then asked for a reset code 3 times, and never got in · session recording
  • Pricing was opened 14 times, and 3 people compared Monthly and Semi-Annual
  • No new errors

Written Sep 28, 8:02 AM UTC

Minutes in the app, new users

my-app · last 14 days

Daily visitors

my-app · $pageview · last 30 days

Signups

my-app · signed_up · last 30 days

96
signed_up events, last 30 days

Set up in one call

Install the SDK and call init. Everything people do is captured from then on, with no event code to write.

  1. Install

    Terminal
    $ npm install @ffanalytics/sdk
    app.ts
    import { init } from "@ffanalytics/sdk";
    
    init({ key: "pk_..." });

    Add release: commitSha to line up every event with the change that shipped it.

  2. Captured automatically

    • Page views, including page changes in single-page apps
    • Clicks on links and buttons, with their text
    • Uncaught errors, with the stack trace
    • Referrer, UTM tags, screen size and language

    Never reads what people type into inputs.

  3. Ask from your editor

    Terminal
    $ claude mcp add --transport http analyticsff \
      https://mcp.analyticsff.com/mcp

    Run /mcp in Claude Code to sign in, then ask about your product in plain words.

Try it on your own product

7 days free, then from $5 a month. Every plan has every feature.

See pricing