Open-source revenue intelligence for product-led growth.
Turn your PostHog product data into buying signals, score every account, and route the warmest leads to your CRM — no data engineering required.
The open-source alternative to Pocus and Common Room.
Website · Pricing · Integrations · Blog
Live demo
Your product already knows which accounts are about to buy, expand, or churn — the signals are sitting in PostHog. But they never reach the people who act on them: by the time usage data becomes a dashboard, the moment has passed, and sales is still working off gut feel and lead forms. Commercial tools that close this gap (Pocus, Common Room) are closed-source, expensive, and want to own your data. Beton Inspector is the open-source alternative: run it yourself, point it at your own PostHog and CRM, and own the whole pipeline.
Beton Inspector connects to your product analytics (PostHog) and turns raw usage data into actionable revenue signals. Instead of guessing which accounts are ready to buy, expand, or churn, Beton detects concrete behavioral patterns — trial conversion intent, power user emergence, feature adoption velocity — and scores each account automatically.
The signals and scores flow into your CRM (Attio, HubSpot, Pipedrive, Zoho), giving your sales team a prioritized list of accounts with context on why they should reach out and when.
Key value: Your product data already contains the buying signals. Beton Inspector surfaces them without requiring data engineering or custom dashboards.
Prefer managed hosting? See Beton Cloud pricing — $0.50 per tracked user, free trial, no credit card required.
- 20+ Signal Detectors — Trial intent, power users, feature adoption, engagement drops, and more
- Account Scoring — Health, expansion potential, and churn risk on a 0–100 scale (concrete grades: M100, M75, M50, M25, M10)
- PostHog Integration — Reads events, persons, and group data from your PostHog data warehouse
- CRM Sync — Routes scored accounts and signals to Attio, HubSpot, Pipedrive, or Zoho with full context
- Webhooks & n8n — Route signals to custom destinations via webhooks or n8n workflows
- Multi-tenant — Workspace-based isolation with Supabase Row Level Security
- Metered Billing — Optional Stripe integration for SaaS billing (can be disabled for self-hosting)
- Agent System — AI-powered data exploration that learns your schema and business model
Beton Inspector is fully self-hostable under AGPL-3.0. Leave DEPLOYMENT_MODE=self-hosted
(the default) and all billing/Stripe features are disabled — unlimited use, no payment dependency.
- Docker + Docker Compose (recommended), or Node.js 20+ for local dev
- PostgreSQL — via Supabase (recommended) or any PostgreSQL instance
- PostHog account with API access
git clone https://github.com/getbeton/inspector.git
cd inspector
cp .env.example .env
# Edit .env and set at minimum:
# NEXT_PUBLIC_SUPABASE_URL your Supabase project URL
# NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anon key
# ENCRYPTION_KEY 64-char hex (generate below)
# AGENT_SECRET 64-char hex (generate below)
# DEPLOYMENT_MODE=self-hosted
# Generate the two secrets:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"# Reads .env, starts the app on :3000 (and an optional local Postgres on :5432)
docker compose up
# → http://localhost:3000npm install
npm run dev # next dev loads your .env
# → http://localhost:3000- Sign in and create a workspace.
- Add your PostHog credentials in Settings → Integrations.
- Pick a CRM destination (Attio, HubSpot, Pipedrive, or Zoho) — optional.
- Signals and 0–100 account scores (grades M100–M10) populate as events sync.
When self-hosting, set DEPLOYMENT_MODE=self-hosted (or leave it unset). This disables all billing features, giving you unlimited access with no Stripe dependency.
| Component | Technology | Details |
|---|---|---|
| Application | Next.js (TypeScript) | Full-stack — pages + API routes |
| Database | PostgreSQL (Supabase) | RLS-secured, multi-tenant |
| Auth | Supabase OAuth (PKCE) | Session cookies, workspace context |
| State | Zustand + React Query | Client state + server cache |
All code lives in src/. There is no separate backend — business logic runs as Next.js API routes.
src/
├── app/
│ ├── (auth)/ # Login, OAuth callback
│ ├── (dashboard)/ # Protected pages (signals, identities, memory, settings)
│ └── api/ # ~40 API route handlers
├── components/
│ ├── ui/ # Base UI primitives (base-ui + CVA)
│ ├── layout/ # Sidebar, header, navigation
│ ├── signals/ # Signal-specific components
│ └── billing/ # Billing UI (optional)
└── lib/
├── heuristics/ # Signal detection & scoring engine
│ └── signals/detectors/ # 20+ signal detectors
├── integrations/ # PostHog, Attio, Stripe clients
├── supabase/ # Client helpers + auto-generated types
└── email/ # Notification emails (Resend)
npm run dev # Start dev server
npm run build # Production build (must pass before committing)
npm run lint # ESLint
npm run typecheck # TypeScript checkWe welcome contributions! Please see CONTRIBUTORS.md for guidelines on how to get started.
To report bugs or request features, open an issue.
Beton Inspector is licensed under the GNU Affero General Public License v3.0.
This means you can freely use, modify, and distribute the software, but any modifications must also be made available under the same license, including when running a modified version as a network service.
- GitHub Issues — Bug reports and feature requests
- GitHub Discussions — Questions and community support
Beton is open-source revenue intelligence. Inspector is the flagship product. We also maintain:
- DryFit — synthetic analytics datasets for agent benchmarking
- openclaw-gtm-skills — company research pipeline for OpenClaw
- seqd — self-hosted email sequencer
Resources: