Amplitude Setup — Brainforge Internal (2026)

Owner: Uttam Kumaran Data lead: Greg Stoutenburg Date: 2026-03-03 Status: Planning


Goal

Stand up Amplitude on the Brainforge platform and Webflow website so that Greg has a real, data-populated Amplitude instance to show prospects in sales demos. This is also a dogfood of our own Amplitude ramp-up methodology.

Primary demo outcome: pre-built Amplitude dashboards showing actual Brainforge product usage (feature adoption, user journeys, retention) that Greg can show in calls.

We also plan to use Amplitude Session Replays, Experiments, and Guides and Surveys where relevant for demos and product learning.


Surfaces

SurfaceTechInstrumentation path
Platform (The Forge)Next.js 15 — apps/platform/@amplitude/analytics-browser npm package
Website (brainforge.ai)WebflowAmplitude Browser SDK via Webflow custom code (CDN snippet)

We intentionally keep PostHog alongside Amplitude (dual-tracking by design, not an artifact of the Default project setup). No removal of existing tracking.


Phase 0 — Instance Setup (UI Only)

Who: Uttam Effort: ~half a day

Steps that require the Amplitude console UI (no agent can do these):

  • Copy the Browser SDK API key from Amplitude console → Settings > Projects > API Key
  • Create a second brainforge-dev Amplitude project for non-production testing
  • Configure data governance: block PII fields; raw email must not appear in event properties (user property only)
  • Add NEXT_PUBLIC_AMPLITUDE_API_KEY to Railway production environment

Phase 1 — Define Event Taxonomy

Who: Cloud agent creates draft; Greg reviews Effort: ~1–2 days

Cloud agent creates knowledge/clients/brainforge/resources/amplitude-event-taxonomy.md. The user properties below are inlined from Greg’s Default Event Tracking Plan (same source as the Google Sheet); adapt for Brainforge (Supabase auth, no workspace/org hierarchy) when implementing.

User Properties (from Default Event Tracking Plan)

Group properties (org-level; map to Brainforge only where we have org/tenant concepts):

PropertyDefinitionData typeSample values
planPlan tier an organization belongs toStringfree, pro, enterprise
company_sizeEmployee count range of user organizationString1-10, 11-50, 51-200, 201-1000, 1000+
org_regionGeographical region of organizationString
workspace_idWorkspace IDs associated with the orgString

User properties (implement where we have a source in Supabase or app):

PropertyDefinitionData typeSample values
internal_userUser is internal (e.g. Brainforge team) or not a normal userStringtrue, false
organization_nameCompany nameString
organization_idCompany idString
workspace_idWorkspace(s) user is associated withString— (user can be in multiple)
user_idUser unique identifierStringSupabase auth UID (primary identity)
acquisition_channelChannel that brought user to the platformStringorganic, invited, paid, referral
usernameUsernameString
utm_sourceUTM source captured at signupStringgoogle, linkedin, partner_blog
utm_mediumUTM medium captured at signupStringcpc, organic, referral, email
utm_campaignUTM campaign captured at signupStringspring_launch, webinar_q1
referring_domainDomain the user came from at first visitStringgoogle.com, linkedin.com
signup_methodMethod used to create accountStringemail, google_sso, saml
first_nameUser first nameString
last_nameUser last nameString
emailUser email address (user property only — never in event properties)String
countryUser countryStringUS, UK, DE
cityUser cityString
user_created_atTimestamp for when user was createdDate
is_email_verifiedWhether the user has verified their emailBooleantrue, false
industry_nameProgressive profilingStringSaaS, FinTech, Healthcare
user_job_roleUser job role or titleStringRevOps Manager, Sales Lead, Admin
subscription_statusStatus of user’s subscriptionStringtrial, active, churned, expired

For Brainforge platform today: prioritize user_id, email, name (or first_name/last_name), role from Supabase auth; add UTM/acquisition/signup_method when we capture at signup; add others as we have sources.

Page View Events (carried forward from PostHog)

Event NameTriggerKey Properties
Page ViewedEvery route changepath, referrer
Client Hub Viewed/client/[id]client_id
Meeting Viewed/meeting/[id]meeting_id
Demo Viewed/public/meeting/[id]meeting_id
AI Tool Viewed/ai-tools/*tool_name, path
Deals Page Viewed/deals
Deck Viewed/decks/*deck_id, deck_name

Feature Events (new)

Event NameTriggerKey PropertiesDemo question answered
User Signed InAuth sign-inproviderSession volume, retention baseline
User Signed OutAuth sign-outSession length signal
AI Agent Ran/agent/[id] interactionagent_id, agent_type, successAI adoption rate
Case Study Viewed/internal/marketing-assetsasset_id, asset_nameMarketing asset ROI
Search Performed/internal/zoom-searchquery_length, sourcePower user behavior
Linear Ticket Agent Used/ai-tools/standalone-linear-tickets-agentSpecific AI tool adoption

Naming Conventions

  • Event names: Title Case with spaces (e.g. Page Viewed, not page_viewed)
  • Properties: snake_case
  • No PII in event properties; user-level data in user properties only

Phase 2 — Instrument Platform + Website

Who: Cloud agent (platform); Uttam pastes snippet (Webflow) Effort: ~2 days

New files (mirror existing PostHog pattern)

apps/platform/src/lib/analytics/amplitudeClient.ts
apps/platform/src/components/analytics/AmplitudeProvider.tsx
apps/platform/src/components/analytics/AmplitudeRouteTracker.tsx

Modified files

FileChange
apps/platform/src/app/layout.tsxAdd <AmplitudeProvider> and <AmplitudeRouteTracker> alongside PostHog
apps/platform/src/contexts/AuthContext.tsxAdd amplitude.setUserId() + amplitude.identify() on sign-in; amplitude.reset() on sign-out
apps/platform/.env.exampleAdd NEXT_PUBLIC_AMPLITUDE_API_KEY=your_amplitude_api_key_here

Package

# run in apps/platform/
npm install @amplitude/analytics-browser

Webflow (UI required to paste)

Cloud agent produces a <script> block using the Amplitude Browser SDK CDN. Paste into: Webflow > Site Settings > Custom Code > Head Code.


Phase 3 — Validate

Who: Cloud agent creates checklist; Uttam/Greg runs QA in Amplitude UI Effort: ~1 day

Cloud agent creates knowledge/clients/brainforge/resources/amplitude-validation-checklist.md.

UI QA steps:

  • Open Amplitude > Data > Live Events — confirm events arrive within 30s of triggering
  • Trigger sign-in — verify User Signed In fires + user properties populate
  • Navigate 3–4 routes — verify Page Viewed fires with correct path
  • Confirm no raw email in event properties
  • Confirm Webflow page views appear in the same project

Phase 4 — Operationalize for Demos

Who: Greg (Amplitude UI for dashboards); Cloud agent (docs updates) Effort: ~1–2 days for dashboards; ~half day for docs

Demo Dashboards (Greg builds in Amplitude)

DashboardWhat it shows
Acquisition FunnelPage ViewedUser Signed In → first AI Tool Viewed
Feature AdoptionAI Agent Ran, Meeting Viewed, Deck Viewed over time
Retention CurveWeekly cohort retention from User Signed In
Top PagesPage Viewed broken down by path
Power UsersCohort: users with 5+ AI Agent Ran or Meeting Viewed events

Cloud Agent Tasks

  • Update standards/02-writing/Memos/examples/amplitude-ramp-up-memo.md with dogfooding addendum
  • Create standards/03-knowledge/engineering/setup/amplitude-setup.md

UI-Only Steps (Summary)

StepWhereWho
Get API keyAmplitude consoleUttam
Create dev projectAmplitude consoleUttam
Configure PII governanceAmplitude consoleUttam
Add env var to RailwayRailway dashboardUttam
Paste Webflow snippetWebflow editorUttam
QA events in Live EventsAmplitude consoleUttam / Greg
Build demo dashboardsAmplitude chart builderGreg

Linear Tickets

Phase 0

  • Amplitude: instance setup + API keys (UI) — Uttam

Phase 1

  • Amplitude: draft Brainforge event taxonomy — cloud agent
  • Amplitude: Greg signs off on taxonomy + demo requirements — Greg

Phase 2

  • Amplitude: install SDK + create amplitudeClient.ts abstraction — cloud agent
  • Amplitude: wire user identification into AuthContext — cloud agent
  • Amplitude: instrument platform routes + key feature events — cloud agent
  • Amplitude: generate Webflow snippet — cloud agent → Uttam pastes

Phase 3

  • Amplitude: create validation checklist — cloud agent
  • Amplitude: QA events in Amplitude UI — Uttam / Greg

Phase 4

  • Amplitude: build demo dashboards — Greg
  • Amplitude: update ramp-up memo with dogfooding notes — cloud agent
  • Amplitude: add setup guide to playbook — cloud agent

References